Was G-Code beschreibt

G-Code ist eine zeilenorientierte Befehlssprache für 3D-Drucker, CNC-Maschinen und verwandte Bewegungssysteme. Eine Zeile kann eine Bewegung anfordern, eine modale Einstellung ändern, eine Temperatur setzen oder eine controllerspezifische Funktion aktualisieren.

Ein Befehl ist für sich allein selten eindeutig. Das Ergebnis kann vom Einheitenmodus, Koordinatenmodus, Extrusionsmodus, von der Maschinenkonfiguration und von der Firmware abhängen, die die Datei interpretiert. Diese Referenz beschreibt deshalb sowohl die übliche Bedeutung als auch den Kontext, der sie verändern kann.

Grundgedanke

G-Code lässt sich besser als Familie verwandter Dialekte verstehen als als ein vollkommen einheitlicher Dateistandard für Drucker. Die grundlegende Bewegungssyntax überschneidet sich; verfügbare Befehle, Parameter, Standardzustände und Erweiterungen hängen jedoch von Zielfirmware und Konfiguration ab.

Eine Befehlszeile lesen

G1 X120 Y40 E1.6 F1800
G1

Fordert eine koordinierte lineare Bewegung an.

X / Y

Geben je nach G90/G91 die Zielposition oder die relative Strecke an.

E

Gibt je nach M82/M83 eine Extruderposition oder eine Extrusionsstrecke an.

F

Setzt den Vorschub. Druckdateien geben ihn normalerweise in Millimetern pro Minute an; spätere Bewegungen verwenden häufig den zuletzt gesetzten Wert weiter.

; ...

Leitet gewöhnlich einen Kommentar für Menschen oder Software ein. Slicer markieren damit Schichten und Merkmalstypen, die Bezeichnungen sind jedoch nicht standardisiert.

Ein Buchstabe besitzt keine vom Kontext unabhängige Einheit. X kann eine Koordinate und F ein Vorschub sein, während S je nach Befehl Temperatur, Lüfterleistung oder eine andere Einstellung bezeichnet. Parameterwörter müssen über den zugehörigen Befehl interpretiert werden.

Eine Druckdatei besteht meist aus drei Teilen

Vorbereitung

Setzt Einheiten und Positionierungsmodi, startet Heizungen, referenziert Achsen, wählt ein Werkzeug und kann Nivellierung, Reinigung oder Startmakros ausführen. Dadurch wird festgelegt, wie spätere Werte zu lesen sind.

Schichtweiser Hauptteil

Lange Folgen aus Bewegung, Extrusion, Retraktion, Lüfter- und Temperaturänderungen formen das Bauteil. Schichten und Merkmalstypen werden oft durch Slicer-Kommentare statt durch eigene Befehle markiert.

Abschluss

Schaltet Heizungen und Lüfter aus, hebt oder parkt den Druckkopf, gibt Motoren frei und kann ein maschinenspezifisches Endmakro aufrufen. Ein fehlender Abschluss kann die Maschine in einem unerwarteten Zustand zurücklassen.

; start: establish state
G21
G90
M83
G28

; body: travel, then print
G0 X40 Y20 Z0.20 F9000
G1 X80 Y20 E1.40 F1800

; end: stop active outputs
M104 S0
M140 S0
M107

Dies ist eine strukturelle Darstellung und keine vollständige Datei, die auf jeder Maschine ausgeführt werden kann. Referenzrichtung, Heizreihenfolge, Parkposition und Makronamen müssen zum konkreten Drucker passen.

Der Firmware-Kontext ist entscheidend

Marlin, Klipper, RepRapFirmware und CNC-Steuerungen überschneiden sich bei grundlegenden Bewegungsbefehlen, bilden aber keine vollständig austauschbare Sprache. Dasselbe Maschinenziel kann andere Befehlsnamen, Parameter oder Werteskalen erfordern.

SystemErweiterungsmodellWas zu prüfen ist
MarlinBefehle im RepRap-StilViele Funktionen sind Optionen zur Kompilierzeit; zwei Builds derselben Version können daher unterschiedliche Befehle bereitstellen.
KlipperStandardteilmenge + benannte ErweiterungenKlipper unterstützt bewusst eine gemeinsame Standardteilmenge, ergänzt Namen wie SET_PRESSURE_ADVANCE und erlaubt Makros, Verhalten hinzuzufügen oder zu überschreiben.
RepRapFirmwareG-Code überall + Makros und AusdrückeKonfiguration, Steuerung und Statusabfrage nutzen G-Code intensiv; neuere Versionen unterstützen außerdem Metabefehle und Ausdrücke.
LinuxCNC / RS274NGCCNC-Modalgruppen und KoordinatensystemeCNC-Konzepte wie Spindelsteuerung, Werkzeugkorrektur, Werkstückkoordinaten und feste Zyklen bedeuten keine druckertypische E-Achsen- oder Heizungslogik.

Firmware-Name, Version und Konfiguration bilden daher den Mindestkontext für Kompatibilität. Eine Dateiendung oder ein erfolgreicher Lauf auf einer anderen Maschine beweist keine identische Ausführung auf dem eigenen Drucker.

Eine unbekannte Datei prüfen

  • Slicer, Zielmaschine und Firmware bestimmen. Fehlt dieser Kontext, ist die Kompatibilität als unbekannt zu behandeln.
  • Einheiten, Achsenmodus, Extrusionsmodus, Referenzfahrt, Werkzeug- und Heizungseinrichtung lesen, bevor spätere Bewegungen interpretiert werden.
  • Änderungen von X/Y/Z getrennt von E verfolgen, um Leerfahrt, Druck, Retraktion und erneutes Fördern zu unterscheiden.
  • Semikolon-Kommentare als Hinweise des Slicers behandeln, nicht als zwingend ausgeführte Maschinenbefehle; unterschiedliche Slicer verwenden unterschiedliche Bezeichnungen.
  • Bei Makros, benannten Erweiterungen oder unbekannten M-Codes die offizielle Dokumentation der betreffenden Firmware-Version prüfen, statt aus der Nummer zu raten.
  • Zum Schluss kontrollieren, ob Heizungen, Lüfter und andere Ausgänge beendet werden und Parkbewegungen weder Grenzen überschreiten noch das Bauteil treffen können.

Inhalt jeder Befehlsseite

  • Eine knappe Definition und der Zustand, der zur korrekten Interpretation erforderlich ist.
  • Syntax und Parameterbedeutungen mit praktischen G-Code-Beispielen.
  • Firmware-Unterschiede und Fehler, die das Maschinenverhalten verändern können.
  • Eine transparente Aussage dazu, was der lokale Viewer prüfen kann und was nicht.

Was der Viewer anzeigen kann

Zeigt die Datei, nicht den Drucker

Der Viewer kann unterstützte Pfade und ausgewählte Dateidetails darstellen. Er kann weder die Druckereinstellungen nachbilden noch genau vorhersagen, was ein physischer Drucker tun wird.

Mit diesen Schlüsselbefehlen beginnen

Offizielle Quellen für diesen Leitfaden

Entwurfsstand vom 7. August 2026 auf Grundlage der folgenden Primärquellen. Gemeinsam erklären sie die geteilte Zeilenstruktur und die Unterschiede zwischen Controller-Dialekten.