Was ist G-Code?
Der G-Code (ursprünglich eine Abkürzung für Gerber Code, heute RS-274) ist die am weitesten verbreitete digitale Programmiersprache zur Steuerung von CNC-Maschinen (Computerized Numerical Control): 3D-Drucker, Fräsmaschinen, Laserschneidmaschinen. In der Welt des 3D-Drucks, bestimmt er jede Bewegung der Düse, die Temperatur, die Geschwindigkeit und den Filamentdurchsatz.
Stellen Sie sich den G-Code wie eine Partitur vor: Der Slicer (Cura, PrusaSlicer, OrcaSlicer) ist der Komponist, und der Drucker ist das Instrument. Wenn Sie diese Partitur verstehen, können Sie einen fehlgeschlagenen Druck analysieren, Ihre Einstellungen optimieren und sogar eigene Makros schreiben.
Aufbau einer G-Code-Zeile
Jede Zeile ist ein „Befehl“. Sie beginnt mit einem Buchstaben (der Adresse), gefolgt von einer Zahl. Die gängigsten Buchstaben:
- G → Befehl für geometrische Bewegung (G0, G1, G28…)
- M → Maschinenbefehl/Makro (M104, M109, M190, M104…)
- X, Y, Z → Position auf den Achsen (in Millimetern)
- E → Position des Extruders (Filamentdurchfluss)
- F → Vorschubgeschwindigkeit (feedrate, in mm/min)
- S → Parameterwert (häufig die Temperatur in °C)
Einfaches Beispiel:
G1 X10 Y10 Z0.2 E1.0 F1200 ; Bewegung zu (10,10) unter Abgabe von Filament
Das Semikolon ; leitet einen Kommentar ein, der vom Drucker ignoriert wird – sehr nützlich zur Dokumentation.
Die grundlegenden G-Befehle
G0 und G1 – bewegen
G0 ist eine Schnellbewegung (ohne Extrusion, „Travel“), G1 eine Bewegung mit Filamentauftrag. Der Unterschied ist entscheidend: Die Verwendung von G1 ohne E, wenn kein Filament aufgetragen werden soll, führt zu Fadenbildung (Stringing).
G0 Z0,2 ; fährt 0,2 mm nach oben (schnell)
G1 X100 Y100 E20 F1500 ; druckt an der Position (100,100)
G28 – Homing (Ursprung)
G28 bringt den Drucker zurück an seinen Ursprungspunkt (die Endschalter). G28 X Y betrifft nur die X- und Y-Achse. Dies ist fast immer die erste Zeile einer Datei.
G90 / G91 – absolute oder relative Position
G90: Die Koordinaten sind absolut (vom Ursprung aus). G91: relativ (bezogen auf die aktuelle Position). Die meisten Slicer arbeiten mit G90.
G92 — Position festlegen
G92 E0 setzt den Extruderkontroller auf Null zurück, ohne die Maschine zu bewegen. Unverzichtbar vor einem Spülen oder einem Rückzug.
Die wichtigsten M-Befehle
M104 / M109 – Düse vorheizen
M104 heizt ohne Wartezeit auf (die weitere Ausführung erfolgt während des Aufheizens), M109 heizt auf und hält die Solltemperatur. Beispiel: M109 S210 wartet auf 210 °C.
M140 / M190 – Heizt die Druckplatte auf
Identisch, jedoch für das Bett. M190 S60 wartet, bis die Druckplatte 60 °C erreicht hat (ideal für PLA).
M82 / M83 – Extruder absolut oder relativ
M82 (absolut): E ist eine kumulierte Position. M83 (relativ): Jedes E ist ein Inkrement. Neuere Marlin-Versionen verwenden in Slicern oft standardmäßig M83.
M204 / M205 — Beschleunigungen und Jerk
Diese Befehle regeln die Sanftheit der Bewegungen. Eine Verringerung des Jerk (M205 X Y) reduziert das „Ringing“ an scharfen Ecken.
M600 – Filamentwechsel
Wird für den manuellen Mehrfarbendruck oder für Pausen verwendet. Der Drucker hält an, Sie wechseln das Filament und setzen den Druck fort.
Ein konkretes Beispiel: der Anfang einer typischen Datei
Hier ist der von einem Slicer für einen kartesischen Drucker (Marlin) generierte „Start-G-Code“:
; Start-G-Code
M140 S60 ; Bauplatte vorheizen (nicht blockierend)
M104 S210 ; Düse vorheizen (nicht blockierend)
G28 ; Alle Achsen auf Nullposition
G1 Z5 F3000 ; etwas anheben
G1 X0 Y0 F3000 ; fährt zur Ecke
M190 S60 ; wartet auf die Druckplatte
M109 S210 ; wartet auf die Düse
G92 E0 ; Extruder zurücksetzen
G1 E10 F200 ; 10 mm spülen
G92 E0 ; erneut zurücksetzen
G1 Z0,2 F3000 ; auf die erste Schicht absenken
Dieser Befehlsblock stellt sicher, dass die Maschine auf Temperatur ist und vor dem ersten tatsächlichen Strich spült.
G-Code lesen und debuggen
Wenn ein Druck fehlschlägt, ist der G-Code Ihr bester Verbündeter. Öffnen Sie die Datei .gcode (es handelt sich um Text) oder betrachten Sie sie mit Cura / OrcaSlicer (Anzeige Schicht für Schicht).
- Die erste Schicht löst sich ab → Überprüfen Sie
Z0.2(zu hoch?) und die TemperaturM109. - Filamente fließen, ohne dass gedruckt wird → ein
G1ohneEoder ein falsch platziertesG92 E0. - Die Düse kratzt am Druckbett → falscher Ausgangs-Z-Wert in
G28/G92.
Einen bestehenden G-Code bearbeiten (ohne erneutes Slicen)
Müssen Sie auf halber Höhe eine Pause einfügen, um eine Schraube einzusetzen? Fügen Sie einfach Folgendes ein:
M600 ; Pause zum Einsetzen von Material
G1 Z50 F3000 ; Anheben für den Zugang
Fügen Sie diese Zeilen direkt vor der gewünschten Schicht ein (erkennbar an einem Kommentar ;LAYER:x in den meisten Slicern).
Fazit
Der G-Code ist nicht nur etwas für Ingenieure: Es ist eine einfache, gut lesbare und äußerst effiziente Sprache. Mit nur wenigen Befehlen (G0/G1 zum Bewegen, M104/M109 zum Aufheizen, G28 für den Ursprung, G92 zum Stoppen des Extruders) steuern Sie Ihren Drucker vollständig. Wenn Sie diese Grundlagen beherrschen, werden Sie vom „Slicer-Nutzer“ zum echten Meister Ihrer Maschine.
Um noch weiter zu gehen, erkunden Sie die G-Code-Referenzen von Marlin oder das RepRap-Wiki, in denen Hunderte von Befehlen je nach Firmware (Marlin, Klipper, RRF) aufgeführt sind.

