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.
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 F1800G1Fordert eine koordinierte lineare Bewegung an.
X / YGeben je nach G90/G91 die Zielposition oder die relative Strecke an.
EGibt je nach M82/M83 eine Extruderposition oder eine Extrusionsstrecke an.
FSetzt 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
M107Dies 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.
Zustand verändert die Bedeutung
| Zustand | Befehle | Warum er wichtig ist |
|---|---|---|
| Achsenpositionierung | G90 / G91 | Nachfolgende X-, Y- und Z-Werte werden zu absoluten Positionen oder relativen Strecken. |
| Extrusionspositionierung | M82 / M83 | Die E-Achse kann einen von den Bewegungsachsen unabhängigen Modus verwenden. |
| Einheiten | G20 / G21 | Koordinaten und Bewegungsgeschwindigkeiten können als Zoll oder Millimeter interpretiert werden. |
| Vorschub | F | Viele Interpreter behalten den letzten F-Wert bei, bis eine spätere Bewegung ihn ändert. |
| Aktives Werkzeug | T0 / T1... | Bei Mehrwerkzeugmaschinen kann derselbe Temperatur- oder Extrusionsbefehl auf ein anderes Werkzeug wirken. |
| Koordinatenneusetzung | G92 | Die aktuelle physische Position kann ohne Bewegung neue logische Koordinaten erhalten. |
Persistenter Zustand wird häufig falsch gelesen. E1.6 allein beweist nicht, dass 1,6 mm hinzugefügt wurden: Unter M83 ist es der Zuwachs dieser Bewegung, unter M82 die neue kumulierte Position.
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.
| System | Erweiterungsmodell | Was zu prüfen ist |
|---|---|---|
| Marlin | Befehle im RepRap-Stil | Viele Funktionen sind Optionen zur Kompilierzeit; zwei Builds derselben Version können daher unterschiedliche Befehle bereitstellen. |
| Klipper | Standardteilmenge + benannte Erweiterungen | Klipper unterstützt bewusst eine gemeinsame Standardteilmenge, ergänzt Namen wie SET_PRESSURE_ADVANCE und erlaubt Makros, Verhalten hinzuzufügen oder zu überschreiben. |
| RepRapFirmware | G-Code überall + Makros und Ausdrücke | Konfiguration, Steuerung und Statusabfrage nutzen G-Code intensiv; neuere Versionen unterstützen außerdem Metabefehle und Ausdrücke. |
| LinuxCNC / RS274NGC | CNC-Modalgruppen und Koordinatensysteme | CNC-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
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.