G-Code Grundlagen: die wichtigsten Befehle und CNC-Programmierung in der Praxis

G-Code ist die Standardsprache zur Programmierung von CNC-Maschinen: ein Satz von Befehlen, die der Werkzeugmaschine sagen, wohin, wie schnell und auf welcher Bahn das Werkzeug fahren soll. Hier finden Sie G-Code von Grund auf erklärt, eine Liste der G- und M-Codes mit Beschreibung, ein Beispielprogramm Zeile für Zeile und die Grundlagen der CNC-Programmierung. Die Liste der G- und M-Codes gibt es als PDF im Kasten „Downloads“.
G-Code für CNC: was G-Code ist
G-Code ist die Sprache zur Programmierung numerisch gesteuerter Maschinen (CNC, Computer Numerical Control), in der Befehle für die Werkzeugbewegung und die Maschinenfunktionen geschrieben werden. Grundlage sind ISO 6983 und DIN 66025, die einen Standard-G-Code für die meisten Steuerungen festlegen, von der Fräse in der Werkstatt bis zum Bearbeitungszentrum.
Der Name kommt vom Buchstaben G, mit dem die wichtigsten Befehle beginnen, obwohl ein Programm auch die Adressen M, X, Y, Z, F, S und T enthält. Die Wurzeln reichen in die 1950er-Jahre und zum Standard RS-274 zurück; heute haben Fanuc, Siemens, Heidenhain und das offene LinuxCNC eigene Dialekte, doch der Kern nach DIN 66025 ist gemeinsam. Unter den CNC-Programmiersprachen ist G-Code das, was Englisch unter den natürlichen Sprachen ist.
Der Zweck des G-Codes ist einfach: die Geometrie der Zeichnung in geplante Werkzeugbewegungen und Befehle für Spindel, Kühlmittel und Werkzeugmagazin zu übersetzen. CNC-Bearbeitung heißt, dass die Maschine von einem Programm gesteuert wird, nicht von Handrädern. Ein fertiger G-Code läuft beim ersten und beim tausendsten Mal gleich, deshalb ist die Zerspanung wiederholbar und die Präzisionsfertigung planbar.
CNC-Programmierung: wie ein CNC-Programm entsteht
CNC-Programmierung heißt, die Geometrie eines Teils in G-Code-Anweisungen zu übersetzen, die die Steuerung versteht. Der Arbeitsplaner legt Arbeitsgänge und CNC-Werkzeuge fest, dann entsteht ein Programm mit den geplanten Werkzeugbewegungen und Maschinenfunktionen, und nach der Simulation geht es an die Maschine, wo der Bediener das erste Teil überwacht.
CNC-Maschinen werden auf drei Arten programmiert. Von Hand: Der Programmierer schreibt G-Code im Editor, was bei einfachen Teilen funktioniert. An der Maschine: Dialogsteuerungen (Heidenhain Klartext, Mazatrol) erzeugen Code aus Eingabemasken. Aus einem CAM-System: CNC-Software und CAD/CAM-Systeme berechnen Werkzeugbahnen aus dem 3D-Modell. In jedem Fall entsteht dieselbe Textdatei, daher bleibt das Lesen und Korrigieren von G-Code eine Kernkompetenz an der CNC-Maschine.
Aufbau des G-Codes: Satz, Zeile und Wort
Ein CNC-Programm ist eine einfache Textdatei, die die Steuerung Satz für Satz liest. Jede Zeile, Satz genannt, beschreibt einen Schritt: eine Bewegung, eine Maschinenfunktion oder eine Änderung der Einstellungen. Ein Satz besteht aus Wörtern, und jedes Wort ist eine Adresse, also ein Buchstabe, und ein Zahlenwert.
Die G-Code-Anweisung N30 G01 X50.0 Y20.0 F200 bedeutet: Satz 30, Linearbewegung nach X=50, Y=20 mit einem Vorschub von 200 mm/min. Man liest sie von links nach rechts wie einen Satz, und die Servoantriebe führen die Bewegung auf Tausendstelmillimeter genau aus.
G-Code-Befehle interpretieren
Wer die Adressen kennt, kann G-Code-Befehle leicht interpretieren: G wählt die Bewegungsart oder Betriebsart, M schaltet Maschinenfunktionen, X, Y und Z geben Koordinaten an, F den Vorschub, S die Spindeldrehzahl, T das Werkzeug und N die Satznummer. Wichtig ist die Modalität: Die meisten G-Befehle bleiben aktiv, bis ein Befehl derselben Gruppe sie aufhebt, daher können nach einem G01 die folgenden Sätze nur Koordinaten enthalten.
Das Koordinatensystem und der Maschinennullpunkt
Der Maschinennullpunkt ist ein fester, vom Hersteller festgelegter Bezugspunkt, meist am Ende des Verfahrwegs. Von ihm aus misst die Maschine nach jedem Einschalten und jeder Referenzfahrt ihr Koordinatensystem. Der Werkstücknullpunkt dagegen ist der Nullpunkt, von dem aus sich die Maße des Teils bequem angeben lassen, etwa eine Ecke oder eine Bohrungsachse.
Da der Maschinennullpunkt weit vom Teil entfernt liegt, wird eine Nullpunktverschiebung genutzt: G54-G59 speichern den Abstand zwischen Maschinen- und Werkstücknullpunkt, der beim Einrichten mit einem Taster gemessen wird. G53 schaltet kurzzeitig auf Maschinenkoordinaten zurück, G28 fährt zum Referenzpunkt, und das ältere G92 setzt den Nullpunkt im Programm. G90 bemaßt absolut vom aktiven Nullpunkt, G91 inkrementell von der aktuellen Position.
Eine Verwechslung von Maschinen- und Werkstücknullpunkt oder eine falsch eingetragene Verschiebung endet mit Ausschuss oder Kollision, daher werden die Programmeinstellungen vor dem Start immer geprüft. Bewegungen in Z kontrolliert zu fahren, erst auf sichere Höhe, dann eintauchen, schützt Werkzeug und Teil; deshalb wird die Fahrt zum Maschinennullpunkt zuerst in Z programmiert.
Die wichtigsten G-Befehle: Werkzeugbewegungen
Die wichtigsten G-Befehle sind vier Bewegungen, mit denen jeder Einstieg in die CNC-Programmierung beginnt. G00 ist der Eilgang, also das Positionieren von CNC-Werkzeugen außerhalb des Materials, G01 eine Linearbewegung mit programmiertem Vorschub, G02 und G03 die Kreisinterpolation im und gegen den Uhrzeigersinn. Diese Bewegungsbefehle reichen für die meisten Konturen aus.
Dank Kreisinterpolation lassen sich Bögen ohne Berechnungen des Bedieners fräsen, während die Arbeitsbewegung G01 das Werkzeug entlang der Kanten führt. G04 ist eine Verweilzeit, etwa am Bohrungsgrund. Seltener sind G05 und G06 (Hochgeschwindigkeitsbearbeitung, Spline), G07 (virtuelle Achsen) und G09 (Genauhalt): Das hängt bereits von der Steuerung und vom Maschinentyp ab.

Liste der G-Codes: CNC-G-Codes und ihre Funktion
Die Liste der G-Codes umfasst in den meisten Steuerungen einige Gruppen: Bewegungen (G00-G04), Einheiten und Bemaßung (G20/G21, G90/G91), Nullpunkte (G28, G53, G54-G59, G92), Werkzeugkorrektur (G40-G43), Zyklen (G76-G87) und Vorschubarten (G94-G97). Die Tabelle zeigt die G-Befehle mit Beschreibung nach ISO 6983 und DIN 66025.
| Code | Funktion |
|---|---|
| G00 | Eilgang außerhalb des Materials |
| G01 | Linearbewegung mit Arbeitsvorschub |
| G02 / G03 | Kreisinterpolation im / gegen den Uhrzeigersinn |
| G04 | Verweilzeit |
| G09 | Genauhalt im Satz |
| G20 / G21 | Zoll / Millimeter |
| G28 | Fahrt zum Referenzpunkt |
| G33 | Gewindeschneiden mit Vorschubkopplung |
| G40 / G41 / G42 | Abwahl / links / rechts Fräserradiuskorrektur |
| G43 | Werkzeuglängenkorrektur |
| G53 | Maschinenkoordinaten |
| G54-G59 | Werkstücknullpunktverschiebung |
| G76 | Feinbohren (Fräsen), Gewindezyklus (Drehen) |
| G79 | parametrischer Zyklus (einzelne Steuerungen) |
| G80 | Abwahl der Zyklen |
| G81 / G82 / G83 | Bohrzyklus: einfach / mit Verweilzeit / Tieflochbohren |
| G84 | Gewindebohren |
| G87 | Rückwärtsausdrehen |
| G90 / G91 | absolute / inkrementelle Bemaßung |
| G92 | Nullpunkt im Programm setzen |
| G94 / G95 | Vorschub mm/min / mm/U |
| G96 / G97 | konstante Schnittgeschwindigkeit / konstante Drehzahl |
| G98 / G99 | Rückzug auf Ausgangs- / Rückzugsebene |
Fräserradius- und Werkzeuglängenkorrektur
G41 und G42 verschieben die Bahn um den Fräserradius, sodass man die Teilekontur programmiert und nicht die Werkzeugmitte; G40 hebt die Korrektur auf, und G43 ergänzt die Längenkorrektur aus der Werkzeugtabelle. Nach dem Nachschleifen eines Fräsers genügt es daher, einen Wert in der Tabelle zu ändern.
Bohr- und Gewindezyklen
Ein Bohrzyklus fasst Anfahren, Bohren und Rückzug in einem Satz zusammen. G81 dient für flache Bohrungen, G82 ergänzt eine Verweilzeit am Grund, G83 zieht den Bohrer zum Spanbrechen zurück. G84 ist das starre Gewindebohren, G98 und G99 legen die Rückzugshöhe fest, und G80 beendet den Zyklus.
Einheiten, Vorschub und Spindeldrehzahl
G20 und G21 schalten zwischen Zoll und Millimeter um. G94 und G95 legen fest, ob der Vorschub pro Minute oder pro Umdrehung gilt, und G96 und G97 gehören zur Drehmaschine: Die konstante Schnittgeschwindigkeit passt die Drehzahl dem Durchmesser an.
M-Codes: die Funktionen der CNC-Maschine
M-Code ist die zweite Hälfte der Sprache: Befehle, die Maschinenfunktionen ohne Bezug zur Geometrie schalten, etwa Spindel, Kühlmittel und Werkzeugwechsel. Alle CNC-Maschinen verstehen die Kern-M-Codes, doch Nummern über M30 vergeben die Hersteller frei, daher prüft man ihre Bedeutung immer im Handbuch der jeweiligen Steuerung.
| Code | Funktion |
|---|---|
| M00 / M01 | Programmhalt / wahlweiser Halt |
| M03 / M04 | Spindel rechts / links |
| M05 | Spindel aus |
| M06 | Werkzeugwechsel |
| M08 / M09 | Kühlmittel ein / aus |
| M30 | Programmende mit Rücksprung |
Moderne CNC-Maschinen haben Werkzeugmagazine, der Werkzeugwechsel läuft daher automatisch: Der Satz T05 M06 holt Werkzeug Nummer 5 ohne Zutun des Bedieners.
G-Code-Beispiel: ein CNC-Programm Zeile für Zeile
Das Beispielprogramm hat 17 Sätze: Es setzt Millimeter, Absolutbemaßung und den Nullpunkt G54, fährt mit einem 10-mm-Fräser die Kontur eines Rechtecks 2 mm tief ab, wechselt das Werkzeug, bohrt eine Bohrung mit dem Zyklus G81 und endet mit M30. Ein typisches fertiges G-Code-Programm für eine Fräse.
%
O0006 (PLATTE 60x40)
N10 G21 G90 G54 (mm, absolut, Nullpunkt G54)
N20 T01 M06 (Fraeser 10 mm)
N30 S3000 M03 (3000 1/min rechts)
N40 G00 X-10.0 Y-10.0 Z5.0
N50 G01 Z-2.0 F100 (Eintauchen 2 mm)
N60 G01 X70.0 F300 (untere Kante)
N70 Y50.0 (rechte Seite, G01 aktiv)
N80 X-10.0 (obere Kante)
N90 Y-10.0 (zurueck zum Start)
N100 G00 Z50.0 (Rueckzug)
N110 T02 M06 (Bohrer 6 mm)
N120 S1500 M03
N130 G00 X30.0 Y20.0 (ueber der Bohrung)
N140 G81 Z-12.0 R2.0 F80 (Bohrzyklus)
N150 G80 G00 Z50.0 (Zyklusende)
N160 M05 M09 (Spindel und Kuehlmittel aus)
N170 M30 (Programmende)
%
Dieses kurze Programm zeigt das Wichtigste: Einstellungen am Anfang, Werkzeugbewegungen entlang der Kontur, einen Zyklus und ein sauberes Ende. Ein gutes Beispiel für Maschinencode, um mit der G-Code-Programmierung zu beginnen.
G-Code erzeugen und den NC-Code prüfen
Von Hand geschriebener G-Code lohnt sich bei einfachen Teilen, bei komplexen Formen übernehmen CAD/CAM-Systeme: Sie berechnen Werkzeugbahnen aus dem 3D-Modell, und ein Postprozessor übersetzt sie in den Dialekt der Steuerung. Auch einfachere Werkzeuge erzeugen G-Code: Der DraftSight G-Code-Generator erstellt Programme aus einer 2D-Zeichnung, Slicer für den 3D-Druck erzeugen G-Code für Drucker.
Unabhängig von der Quelle entsteht eine Textdatei, die sich von Hand korrigieren lässt. Vor dem Start lohnt sich eine Prüfung im Simulator: Die grafische Verifikation des NC-Codes findet Kollisionen und falsche Verschiebungen billiger als ein abgebrochener Fräser. Ohne Simulation fährt man nur triviale Programme; das erste Teil läuft mit reduziertem Vorschub.

Drehmaschinen, Fräsen und Laserschneiden: CNC-Bearbeitung mit G-Code
G-Code steuert Bewegungen überall dort, wo eine wiederholbare Maschinensteuerung zählt. Fräsen und Drehmaschinen sind die klassische Zerspanung, doch dieselbe Sprache steuert Laserschneiden, Plasmaschneiden, Wasserstrahlanlagen und Schleifmaschinen, sogar Industrieroboter und 3D-Drucker, jeweils im eigenen Dialekt und mit eigenen Zyklen für die typischen Aufgaben der Maschine.
Die Anwendung einer CNC-Maschine bestimmt, welche Befehlsgruppen genutzt werden: An der Drehmaschine dominieren G96 und Drehzyklen, an der Plasmaschneidanlage beschränkt sich die Bewegung auf zwei Achsen, ein Bearbeitungszentrum nutzt die volle Palette. Bei der Wahl der passenden CNC-Maschine sollte man Steuerung und verfügbaren Postprozessor prüfen.
Das Potenzial von CNC-Maschinen: Optimierung und Prozessautomatisierung
Die Optimierung von CNC-Maschinen beginnt im Code: kürzere G00-Wege, eine durchdachte Reihenfolge der Arbeitsgänge, weniger Werkzeugwechsel und passende Vorschübe können die Zykluszeit ohne Investition um Dutzende Prozent senken. Das volle Potenzial von CNC-Maschinen erschließt erst die Prozessautomatisierung: Stangenlader, Messtaster und Roboter, die Teile einlegen.
Jede eingesparte Spindelminute hat einen realen Wert, wie wir unter die teuerste Minute der CNC-Bearbeitung zeigen. Programmier- und Spindelzeit schlagen sich auch direkt im Teilepreis nieder, darauf beruht die automatische CNC-Kalkulation in MetronQ, berechnet für die Maschinen, die der Betrieb selbst anlegt und kalibriert: Maschinenpark und Kalibrierung.
Häufige Fragen zum G-Code
Worin unterscheidet sich G-Code für CNC von M-Code?
G-Code-Befehle beschreiben Geometrie und Bewegung: wohin, wie schnell und auf welcher Bahn das Werkzeug fährt. M-Code steuert die Einrichtungen der Maschine: Spindel, Kühlmittel und Werkzeugmagazin. So sind G00 und G01 Eilgang und Arbeitsbewegung, M03 startet die Spindel, M06 wechselt das Werkzeug und M30 beendet das Programm. Ein vollständiges CNC-Programm nutzt beide im Wechsel.
Sind die G-Codes auf Drehmaschine und Fräse dieselben?
Nicht ganz: Der Kern ist gemeinsam (G00-G03, G90, G91), aber Drehmaschinen arbeiten in den Achsen X und Z, nutzen G96 und G97 sowie eigene Drehzyklen, Fräsen haben Bohrzyklen und Radiuskorrektur in der XY-Ebene. Ein Programm von der Fräse läuft ohne Anpassung nicht auf der Drehmaschine, selbst beim gleichen Steuerungshersteller.
Wie funktioniert der automatische Werkzeugwechsel?
Ein Satz wie T03 M06 lässt die Maschine das aktuelle Werkzeug ins Magazin zurücklegen und Werkzeug Nummer 3 holen. Die Steuerung ergänzt die Längenkorrektur aus der Tabelle (G43), sodass jedes Werkzeug den richtigen Nullpunkt in Z hat. Dadurch bohrt, fräst und schneidet ein Programm Gewinde in einer einzigen Aufspannung.
Was legt Spindeldrehzahl und Vorschub fest?
Die Adresse S gibt die Drehzahl vor, zum Beispiel S3000, und M03 oder M04 startet die Spindel. Die Adresse F legt den Vorschub fest, in mm/min bei G94 oder mm/U bei G95. An Drehmaschinen hält G96 die Schnittgeschwindigkeit unabhängig vom Durchmesser konstant, G97 kehrt zur konstanten Drehzahl zurück. Der Satz N30 S3000 M03 startet die Spindel mit 3000 1/min.
Muss man bei der CNC-Bearbeitung G-Codes kennen, wenn man CAD/CAM hat?
Ja, zumindest passiv. Das CAM-System erzeugt das Programm, aber an der Maschine muss immer etwas korrigiert werden: Vorschub, Nullpunktverschiebung, Reihenfolge der Sätze. Der Postprozessor liefert eine Textdatei, und ein Bediener, der G-Codes versteht, erkennt einen Postprozessorfehler, bevor er einen Fräser oder ein Teil kostet.
Wozu dient die Optimierung von CNC-Maschinen auf Programmebene?
Für kürzere Zykluszeiten und geringere Werkzeugkosten: weniger Leerwege, weniger Werkzeugwechsel und Vorschübe passend zum Werkstoff. Kürzere G00-Wege und eine gut geplante Reihenfolge der Arbeitsgänge können die Zykluszeit ohne Investition um Dutzende Prozent senken. In der Serie multipliziert sich schon eine kleine Programmverbesserung mit der Stückzahl.
Downloads
Liste der G- und M-Codes - PDF-Übersicht
Die wichtigsten G- und M-Codes mit Beschreibung auf einer Seite: Satzaufbau, Bewegungen, Nullpunkte, Korrekturen, Zyklen und Maschinenfunktionen, dazu eine Checkliste vor dem Programmstart. A4, Hochformat.
Quellen
- 1.ISO 6983-1:2009 (Programmformat und Adresswörter)
- 2.DIN 66025 (Aufbau von NC-Programmen)
- 3.P. Smid, "CNC Programming Handbook", 3. Aufl., Industrial Press, 2008 (G- und M-Codes, Bearbeitungszyklen)
- 4.LinuxCNC-Dokumentation, linuxcnc.org (Dialekt RS-274/NGC).
Weiterlesen
Automatische CNC-Kalkulation
Preis aus dem 3D-Modell oder der Zeichnung, nach Ihren Maschinen und Sätzen. Sie geben ihn nur frei. 14 Tage kostenlos, ohne Karte.
Kostenloses Konto anlegen