c't 25/2017
S. 174
Know-how
G-Code
Aufmacherbild

Bewegungsprogramm

G-Code verstehen, programmieren und mit Python generieren

G-Code, die Muttersprache von CNC-Maschinen wie Fräsen, Drehbänken und 3D-Druckern, ist eine der einfachsten Programmiersprachen überhaupt. Wir erklären die Basics, damit Sie .gcode-Dateien für schnellere Verarbeitung modifizieren und mit Python eigene erzeugen können.

Der Maschinencode für CNC-Fräsen, Drehbänke und 3D-Drucker ist eine für Menschen lesbare Programmiersprache, deren Standardbefehle mit dem Buchstaben G anfangen: der G-Code. In der Frühzeit der CNC-Maschinen wurden die Programme von CNC-Programmierern direkt in dieser Sprache geschrieben, ähnlich wie in der Frühzeit der Computer viele Entwickler in Assembler programmiert haben. Inzwischen produzieren CAM-Prozessoren für Fräsen und Slicer für 3D-Drucker den meisten G-Code, vergleichbar mit Compilern, die Maschinencode für CPUs schreiben. Die G-Code-Generatoren erlauben aber nicht alles, was man mit G-Code programmieren kann. Für einige Spezialfälle lohnt es sich, G-Code per Hand zu programmieren oder mit eigenen Skripten zu erzeugen. Schwer ist das nicht, da G-Code nur aus wenigen Befehlen besteht, die alle ähnlich funktionieren.

Mit dem Wissen aus diesem Artikel verstehen Sie sämtlichen G-Code, den Slicer wie Cura, Skeinforge oder Slic3r erstellen – und können ihn modifizieren, um beispielsweise in einem Druck verschiedene Düsentemperaturen für Ihren 3D-Drucker auszuprobieren und anschließend die beste auszuwählen. Für weitere Teststücke wie ein Kalibrierungskästchen (Einstellen der Schrittzahl für X-, Y- und Z-Motoren und Einstellen der Betthöhe) oder einen Geschwindigkeitsturm (Ermitteln der maximalen Druckgeschwindigkeit Ihres 3D-Druckers) haben wir ein paar Python-Skripte auf GitHub geladen, die Sie über ct.de/yww8 finden. Die Skripte nutzen eine kleine von uns erstellte Bibliothek namens gcodehelpers.py, die Sie nutzen können, um mit wenig Aufwand G-Code für eigene Testdrucke zu generieren. Das Erzeugen von G-Code mit einem Programm ist besonders für 3D-Drucker relevant, da der Code eines aussagekräftigen Teststücks schnell mal ein paar tausend Befehle enthält.