G Code Befehle eines 3D-Druckers

Veröffentlicht von

Die 10 wichtigsten G-Code Befehle im 3D-Druck

  • G28 – startet die Homing Sequenz, welche den Druckkopf und alle Achsen in Richtung der Endstops fahren lässt.

Beispiel G-Codes für G28

G28 ; home alle Achsen ( X , Y und Z)
G28 X Y ; home die Achsen X und Y
G28 Z ; home die Z Achse allein
  • G90 und G91 – Verfahre die Achsen im Absolut (G90) oder Relativen (G91) Positionierungsmodus

Beispiel G-Codes für G90 und G91

G90 ; definiert den Absolutpositionierungsmodus für die XYZ-Achsen
G1 X10 F3600 ; fahre auf Position X=10 mit der Geschwindigkeit F
G1 X20 F3600 ; fahre auf Position X=20 mit der Geschwindigkeit F
G91 ; definiert den Relativpositionierungsmodus für die XYZ-Achsen
G1 X10 F3600 ; fahre um die Strecke X=10 von der bisherigen Position auf die neue Position in Richtung +X
G1 X10 F3600 ; fahre weitere X=10 in Richtung +X
  • G1 – Dieser Befehl beschreibt eine lineare Bewegung zum nächst definierten Punkt

Beispiel G-Codes für G1

G1 X0 Y0 F2000 ; fahre zur Position X=0 und Y=0 in der gleichen Zeit mit der Geschwindigkeit von 2000 mm/min
G1 Z5 F1000 ; fahre die Z-Achse auf die Position von Z=5 mit einer Geschwindigkeit von 1000 mm/min
G1 X40 E20 F1800 ; Drücke 20mm Filament durch die Nozzle und fahre die X-Achse zur Position X=30 in der gleichen Zeit
  • G92 – setze die gegenwärtige Position als neue Ausgangsposition

Beispiel G-Codes für G92

G92 E0 ; die gegenwärtige Filament-Position wird auf E=0 gesetzt
G1 E10 F800 ; extrudiere 10mm Filament mit 800 mm/min
  • M104 und M109 – 3D Drucker Extruder Heizbefehle

Beispiel G-Codes für M104 und M109

M104 S195 T0 ; starte sofort (T0) mit dem Aufheizen des Hot-Ends auf 190°C Zieltemperatur, halte anschließend diese Temperatur
G28 X ; home die X-Achse, der Hot-End heizt währenddessen weiter auf, Achse verfährt
M109 S195 T0; heizt erst einmal auf 195°C auf, bevor weitere Befehle abgearbeitet werden
G28 X ; home die X-Achse, erst wenn die 195°C erreicht wurden, verfährt der 3D-Drucker die X-Achse
  • M106 – Geschwindigkeit des Bauteilelüfters einstellen

Beispiel G-Codes für M106

M106 S255 ; Lüfter auf max. Drehzahl stellen S0 = aus S255 =max Drehzahl Werte von 0 bis 255 möglich
M106 S127 ; Lüfter auf halbe Pulsung
M106 S0 ; Lüfter komplett aus

Marlin GCodes

G0, G01 Lineare Bewegung

Bsp.:

G0 [E] [F] [X] [Y] [Z]

Exxx = Länge des Filaments, welches in den Extruder geschoben wird, zwischen Start- und Endpunkt

Fxxx = maximale Geschwindigkeit zwischen Start- und Endpunkt

Xxxx = Koordinate für die X-Achse

Yxxx = Koordinate für die Y-Achse

Zxxx = Koordinate für die Z-Achse

Die beiden Befehle G0 und G01 stehen für eine lineare Bewegung, die ausgeführt werden soll. Der Befehl wird erst abgearbeitet sobald er in der Warteschlange an der Reihe ist und alle vorangegangenen Eingabebefehle abgeschlossen sind.
Eine lineare Bewegung verfolgt eine gerade Linie von einem Punkt zum Nächsten. Dabei wird sichergestellt, dass die angegebenen Achsen zur gleichen Zeit an den angegebenen Koordinaten angekommen sind (lineare Interpolation).

Mit dem Befehl G01 F1200 wird der Vorschub für alle darauf folgenden Bewegungen mit G01 festgesetzt, bis ein Annullierung oder Änderungsanweisung kommt.

Marlin behandelt G0 (schnelle lineare Bewegung) als Alias für G1 (schnelle Bewegung)

Die meisten G-Code-Generatoren verwenden per Konvention G0 für eine Bewegung ohne Extrusion und G01 für eine Bewegung, welche die Extrusion mit einschließt. G0 ermöglicht so eine schnellere uninterpolierte Bewegung, die viel weniger Berechnungen erfordert.

Standardeinheit ist mm kann mit z.B. G20 geändert werden.

Beispiele für G0 und G01

G0 X20 ; bewege die X-Achse zu 20mm
G00 F1500 ; setze die Feedrat auf 1500 mm/min
G01 X80.5 Y24.6 ; bewege die X-Achse zu 80.5mm und Y-Achse zu 24.6mm
G01 F1200 ; setzt die Feedrate auf 1200mm/min
G92 E0
G01 X40 Y30 E18.5 ; bewege das Werkzeug auf die Position X-Achse 40mm und Y-Achse 30mm, während dem verfahren zwischen Start und Endpunkt extrudiere 18.5mm Filament
G01 F1200 ; setze die Vorschubgeschwindigkeit auf 1200 mm/min
G92 E0
G01 X40 Y30 E18.5 F2500 ; fahre zu X und Y, extrudiere währenddessen soviel Filament und beschleunige so schnell wie möglich (vordefiniert über Druckereinstellungen) auf die Vorschubgeschwindigkeit von 2500 mm/min

G02, G03 Interpolierte Kreisbewegung

Bsp.:

G02 [E] [F] I J R [X] [Y] [Z]

Exxx = Länge des Filaments, welches in den Extruder geschoben wird, zwischen Start- und Endpunkt

Fxxx = maximale Geschwindigkeit zwischen Start und Endpunkt

Ixxx = Versatz der aktuellen X-Position als Kreisbogenmittelpunkt

Jxxx = Versatz der aktuellen Y-Position als Kreisbogenmittelpunkt

Rxxx = Radius von der aktuellen XY-Position ausgehend

Xxxx = Koordinate für die X-Achse

Yxxx = Koordinate für die Y-Achse

Zxxx = Koordinate für die Z-Achse

G02 fügt dem Interpreter eine Kreisbewegung im Uhrzeigersinn hinzu und G03 gegen den Uhrzeigersinn. Die Kreisbewegung beginnt an der aktuellen Position und endet bei den angegebenen XYZ-Koordinaten, welche jedoch durch die I, J und R Angaben um einen Mittelpunktversatz schwenken können.

IJ Klasse

  • I gibt einen X-Versatz an und J einen Y-Versatz
  • mindestens ein I oder J Parameter ist erforderlich
  • X und Y können weggelassen werden, um einen vollständigen Kreis zu erstellen
  • Zielkoordinaten X und Y werden nicht gegengeprüft, der Kreisbogen endet auf dem Zielwinkel
  • ein Mischen von I oder J mit R wird einen Fehler auslösen

R Klasse

  • R gibt den Radius an  oder Y ist erforderlich
  • das Weglassen der X und Y Parameter wird einen Fehler ausgeben
  • X oder Y müssen von der aktuellen XY-Position abweichen
  • wenn R mit I oder J gemischt wird, wird ein Fehler ausgegeben

Zusatzinfo: Die Bogenbewegung erzeugt mehrere kurze geradlinige Bewegungen, deren Länge durch die Konfigurationsoption “MM_PER_ARC_SEGMENT” (Standard 1mm) bestimmt wird. Jede Änderung der Z-Position wird über den gesamten Bogen linear interpoliert.

Beispiele für G02 und G03

G02 X100 Y50 I12 J12 ; Bewegung im Uhrzeigersinn von der gegenwärtigen Position zu X=100 und Y=50 mit dem Mittenversatz von der aktuellen Position um 12/12
G03 X100 Y50 I12 J12 ; Bewegung gegen den Uhrzeigersinn von der gegenwärtigen Position zu X=100 und Y=50 mit dem Mittenversatz von der aktuellen Position um 12/12
G02 I20 J20 ; Bewegung mit einem Mittenversatz (20,20) von der aktuellen Position als vollständigen Kreis im Uhrzeigersinn

G04 Verweilzeit

Bsp.:

G04 [P<time>] [S<time>]

Pxxx = Dauer der Verweildauer

Sxxx = Dauer der Verweildauer

Der Befehl G04 pausiert die Befehlswarteschlange und wartet eine definierte Zeit.

Weitere Informationen:
Wenn S als auch P enthalten sind, hat S immer Vorrang. M0 / M01 bietet eine unterbrechbare Verweilzeit (ab Marlin 1.1.0 und höher). Ein G04 ohne nachfolgende Argumente ist mit M400 gleichzustellen.

Beispiele für G04

G04 P500 ; verweile für eine halbe Sekunde

G05 Spline Definition

Bsp.:

G05 [E] I J P Q X Y

Exxx = Die geförderte Länge des Filamentes vom Extruder zwischen Start- und Endpunkt

Ixxx = in X inkrementeller Versatz vom Startpunkt zum ersten Kontrollpunkt

Jxxx = in Y inkrementeller Versatz vom Startpunkt zum ersten Kontrollpunkt

Pxxx = in X inkrementeller Versatz vom Startpunkt zum zweiten Kontrollpunkt

Qxxx = in Y inkrementeller Versatz vom Startpunkt zum zweiten Kontrollpunkt

Xxxx = Koordinate auf der X-Achse

Yxxx = Koordinate auf der Y-Achse

G05 erzeugt eine kubische B-Spline in der XY-Ebene allein mit der X- und Y-Achse. Die P und Q Parameter sind als Definition erforderlich. I und J sind bei dem ersten G05 Befehl zwingend erforderlich. Für nachfolgende G05 Befehle müssen entweder I und J oder keine weiteren Parameter angegeben werden. Wurden I und J nicht spezifiziert, wird die Startrichtung des Kubus automatisch mit der Endrichtung des vorangegangenen Kubuses übereinstimmen (als wenn I und J die Negation der vorangegangenen P und Q wären).

Info:
Es ist ein Fehler, wenn eine andere Achse als X oder Y angegeben wird.

Beispiele für G05

G0 X0 Y0
G5 I0 J3 P0 Q-3 X1 Y1 ; Bsp, um eine kurvige “N”-Form zu programmieren
G5 P0 Q-3 X2 Y2 ; ein zweites kurviges “N”, welches sich nahtlos an das Vorangegangne anbindet, kann nun ohne Angabe von I und J erstellt werden

G10 Rückzug

Bsp.:

G10 [S&lt;flag]

Sxxx = Vor dem Wechsel des Extruders mit G10 S1 einen Rückzug ausführen, nachfolgend G11 (nach Werkzeugwechsel) ausführen und den Retract zurücksetzen ( benötigt EXTRUDERS>1)

Info:
Erfordert: FWRETRACT
verwandte Codes: G11, M207, M208 und M209

Beispiele für G10

G10 ; retract

G11 Wiederherstellen

Bsp.:

G11

Zieht das Filament abhängig von den M208 Einstellungen zurück.

Info:
Erfordert: FWRETRACT
verwandte Codes: G10, M207, M208 und M209

Beispiele für G11

G11 ; recover

G12 Nozzle säubern

Bsp.:

G12 [P&lt;0|1&gt;] [S] [T]

P0/1 = Musterauswahl

Sxxx = Anzahl der Hübe (Hin- und Herbewegung)

Txxx = Anzahl der Wiederholungen

Info:
Grundeinstellung ist definiert durch: NOZZLE_CLEAN_STROKES, NOZZLE_CLEAN_START_POINT, NOZZLE_CLEAN_END_POINT und NOZZLE_CLEAN_PARK

Wenn NOZZLE_CLEAN_PARK aktiviert ist, kehrt die Düse nach dem Reiningungsvorgang automatisch wieder in die XYZ-Position zurück.

Beispiele für G12

G12 ; Strichmusster (standard)
G12 P1 S1 T3 ; Zick-Zack Muster mit 3 Widerholungen

G20 Zoll Einheit

Bsp.:

G20

Info:
Definiert die Einheiten als Zollig (Zoll) und nicht mehr metrisch. In diesem Modus werden alle G-Code-Parameter wie Positionen, Offsets, Geschwindigkeit, Beschleunigung usw. als Zoll interpretiert.

Beispiel für G20

G20 ; setzt Einheiten als Zoll

G21 Millimeter Einheit

Bsp.:

G21

Info:
Definiert die Einheiten als Metrische Einheit (Millimeter). In diesem Modus werden alle G-Code-Parameter wie Positionen, Offsets, Geschwindigkeit, Beschleunigung usw. als Millimeter interpretiert.

Beispiel für G21

G20 ; setzt Einheiten als Millimeter

G26 Gittervalidierungsmuster

Bsp.:

G26 [B] [C] [D] [F] [H] [K] [L] [O] [P] [Q] [R] [S] [U] [X] [Y]

Bxxx = Betttemperatur (wenn nicht definiert 60°C) für den Testdruck

Cxxx = weiter mit dem nächsten Punkt (sonst nicht)

Dxxx = Deaktivierung der Leveling-Kompensation (ansonsten aktiv)

Fxxx = Definition Filament-Durchmesser (ansonsten 1.75mm)

Hxxx = Hot-End-Temperatur (wenn nicht definiert 205°C) für den Testdruck

Kxxx = Heizelemente bleiben aktiv, wenn Testlauf beendet

Lxxx = Layer-Höhe, welche für den Testdruck genutzt wird

Oxxx = Ooze Menge (Standard 0,3mm), welche zu Beginn des Tests exdrudiert wird

Pxxx = Prime Länge

Qxxx = Retraction Multiplikator (Standard 1.0)

Rxxx = Anzahl der G26 Wiederholungen (standard 999)

Sxxx = Nozzle Größe (Standard 0.4mm)

Uxxx = zufällige Abweichung (U ohne Wert, Standard 50)

Xxxx = X Position (standard, aktuelle X Position)

Yxxx = Y Position (standard, aktuelle Y-Position)

Info:
Seit Marlin 1.1.7 wird G26_MESH_VALIDATION und HAS_MESH (AUTO_BED_LEVELING_UBL, MESH_BED_LEVELING, oder AUTO_BED_LEVELING_BILINEAR) für G26 benötigt.

G26 Gittervalidierungsmuster wurde entwickelt, um die Genauigkeit des Netzes mit einer netzbasierenden Nivellierung zu testen.
Mit dem Befehl G26 wird ein Einzelschichtmuster auf das gesamte Druckbett gedruckt, hiermit wird angezeigt, wie genau jeder einzelne Gutterpunkt definiert ist. G26 kann verwendet werden, um zu bestimmen, welche Bereiche des Gitters nicht perfekt sind und wie groß der jeweilige Gitternetzpunkt angepasst werden muss.

G27 Nozzle parken

Bsp.:

G27 [P&lt;0|1|2&gt;]

P0/1/2 = mögliche Z-Achsen Aktionen
P0: Wenn die aktuelle Z-Position niedriger als Z-Park ist, wird die Düse angehoben, um die Z-Park-Höhe zu erreichen.
P1: Unabhängig von der aktuellen Z-Position wird die Düse angehoben / abgesenkt, um die Z-Park-Höhe zu erreichen.
P2: Die Düsenhöhe wird um den Z-Park-Betrag erhöht, überschreitet aber niemals die Maschinengrenze von Z_Max_Pos.

Info:
Benötigt NOZZLE_PARK_FEATURE, die Parkposition wird definiert über NOZZLE_PARK_POINT.

Beispiele für G27

G27 ; fahre hoch zur Parkposition, wenn der gegenwärtige Z-Punkt niedriger ist.
G27 P2 ; hebe die Z-Achse immer auf den maximalen Punkt.

G28 Auto Home

Bsp.:

G28 [X] [Y] [Z]

P0/1/2 = mögliche Z-Achsen Aktionen
P0: Wenn die aktuelle Z-Position niedriger als Z-Park ist, wird die Düse angehoben, um die Z-Park-Höhe zu erreichen.
P1: Unabhängig von der aktuellen Z-Position wird die Düse angehoben / abgesenkt, um die Z-Park-Höhe zu erreichen.
P2: Die Düsenhöhe wird um den Z-Park-Betrag erhöht, überschreitet aber niemals die Maschinengrenze von Z_Max_Pos.

Info:
Benötigt NOZZLE_PARK_FEATURE, die Parkposition wird definiert über NOZZLE_PARK_POINT.

Beispiele für G27

G27 ; fahre hoch zur Parkposition, wenn der gegenwärtige Z-Punkt niedriger ist
G27 P2 ; hebe die Z-Achse immer auf den maximalen Punkt
Please follow and like us:

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.