threedom - 3D-Druck Blog

G Code Befehle im 3D-Druck

G-Code bzw. GCode. Diesen Begriff hast du sicher schon einmal gehört oder im Glossar gelesen, wenn du dich schon ein wenig mit dem 3D Druck befasst hast. In diesem threedom-Knowledgebase-Artikel erzähle ich dir kurz, was denn ein G-Code überhaupt ist und wofür er im 3D-Druck verwendet wird. Zudem zeige ich dir auf, welche G-Code Befehle für dich wichtig sind, wenn du mit dem 3D-Drucken anfangen möchtest oder schon angefangen hast.

G-Code – Was ist das und wofür wird er verwendet?

3D Drucker können mit den 3D Modellen in den Formaten .Stl, .obj etc. nicht viel anfangen, da in ihnen zwar die geometrische Form gespeichert ist, aber nicht, wie der 3D-Drucker mit dieser Form umgehen soll. “Wie schnell soll das Modell in der Schicht Nummer 5 gedruckt werden?” und ähnliche Fragen müssen für den 3D-Drucker beantwortet werden. Die Antworten befinden sich im G-Code, der somit die Sprache des 3D-Druckers darstellt. Erst mit einem G-Code weiß der Drucker, was er zu tun.

Der Slicer übersetzt das 3D-Modell in den G-Code und fügt zudem noch maschinenrelevante Daten ein. Diese wurden exakt für den verwendeten 3D-Drucker definiert. Das heißt, dass der G-Code, den du für deinen Creality CR-10 Drucker erstellt hast, bei deinem Freund mit einem Ultimaker 2 nicht funktionieren wird. Dazu müssten die maschinenrelevanten Einstellungen überarbeitet werden. Zu diesen gehört zum Beispiel die Größe des Druckbetts. Ist diese Einstellung falsch gewählt, startet der Drucker bei dir in der Mitte des Druckbetts und bei deinem Freund vielleicht sogar außerhalb dessen.

Deswegen ist es von Vorteil, wenn man ein Basiswissen in Bezug auf G-Codes hat, um so fehlerhafte Codes verstehen und bei Bedarf auch verbessern zu können. Beachte, dass manche Befehle mit dem Buchstaben G und wiederum andere mit einem M beginnen.

Die häufig verwendeten G-Code Befehle und ihre Bedeutung

Im Folgenden werde ich dir aufzeigen, was der jeweilige G-Code Befehl aussagt, welche Individualisierungen durch welche Werte möglich sind und wie so ein G-Code Befehl aussehen kann.

G28 – Führt das Homing durch

Dieser Befehl sogrt dafür, dass dein 3D-Drucker das sogenannte Homing durchführt. Beim Homing fährt der Druckkopf zurück zu seinem “Nullpunkt”, den er erreicht hat, wenn er die Endstops für alle Achsen (X, Y und Z) angefahren hat. Das ist ein wichtiger Vorgang, weil der Druckkopf dann für jeden Druck denselben Startpunkt hat. Die Wege im G-Code werden von diesem Startpunkt aus vorgegeben. Ohne diesen Bezug zu einem bestimmten Punkt, würden könnten 3D-Drucke nicht vernünftig durchgeführt werden. Zum Ende eines Drucks wird dieser Befehl ebenfalls oft ausgeführt. Das ermöglicht das einfache Herunternehmen der 3D-gedruckten Modelle.

Werte:
Werden keine Werte angegeben, so wird dein Drucker die Endstops aller drei Achsen anfahren. Du kannst jedoch auch selbst bestimmen, welche Achsen er anfahren soll durch das einfach Hinzufügen der Buchstaben X, Y oder Z.

Beispiele:
G28 ; Homing für alle Achsen (X, Y und Z)

G28 X Y ; Homing für die Achsen X und Y

G28 Z ; Homing nur für die Z-Achse

 

G90 und G91 – Den Modus für die Positionierung einstellen (Positioning Mode)

Dein Drucker kann die Positionierung entweder absolut oder relativ durchführen:

  • Absolute Positionierung: Hiermit gibst du deinem 3D-Drucker die Exakte Koordinate für X, Y oder Z vor, die er anfahren soll. Dazu nutzt du den Befehl G90.
  • Relative Positionierung: Hiermit sagst du deinem 3D-Drucker, wie weit er sich von seiner aktuellen Position (X,Y,Z) in (X,Y,Z)-Richtung bewegen soll. Das klappt mit dem Befehl G91.

Du wirst wahrscheinlich die absolute Positionierung in deinen G-Codes häufiger finden, da der Slicer die exakten Koordinaten für die drei Achsen bereits kennt und diese für die Ermittlung der absoluten Position nutzt.

Werte:
Keine.

Beispiele:
G90 ; Nutze die absolute Positionierung für alle drei Achsen
G1 X10 F3600 ; Fahre auf dem Heizbett zum Punkt X=10mm mit einer Geschwindigkeit von 3600 mm/min (F3600)
G1 X20 F3600 ; Fahre auf dem Heizbett zum Punkt X=20mm mit einer Geschwindigkeit von 3600 mm/min

G91 ; Nutze die relative Positionierung für alle drei Achsen
G1 X10 F3600 ; Fahre von der aktuellen Position auf dem Heizbett 10mm nach rechts mit einer Geschwindigkeit von 3600 mm/min
G1 X10 F3600 ; Fahre von der aktuellen Position auf dem Heizbett weitere 10mm nach rechts mit einer Geschwindigkeit von 3600 mm/min

 

G1 – Der Befehl für die Lineare Bewegung

Den G1-Befehl führt dein 3D-Drucker die meiste Zeit aus. Deswegen ist es nicht schlecht, sich diesen mal etwas näher anzuschauen. G1 sagt deinem Drucker, dass er in einer Geraden zum nächsten Punkt fahren soll. Du kannst diesen Befehl nutzen, um eine Achse oder gleich mehrere Achsen zu steuern.

Beachte: Der Extruder wird wie jede andere Achse auch angesteuert. Somit kannst du den Materialfluss (Extrusion) und den Retract des Filaments ansteuern.

Werte:
Wenn du X, Y, und Z angibst, kannst du dem Drucker sagen, welche Punkte er anfahren soll. Beachte aber, dass diese Befehle ensprechend der Art der Positionierung (absolut/relativ) ausgeführt werden und somit entweder die genaue Koordinate anfahren oder den Abstand zum aktuellen Punkt.

Wenn du einen E-Befehl hinzufügst, kannst du bestimmen, ob der 3D-Drucker auf dem Weg auch extrudieren soll und wenn ja, wieviel. Beachte hierbei, dass sich die Extrusionslänge auf das Material bezieht, was vom Feeder in die Düse (Nozzle) gedrückt wird. Sagst du deinem Drucker also, dass er 10mm extrudieren soll, ist die Länge, die aus der Düse rauskommt nicht auch 10mm, sondern viel länger. Das liegt daran, dass das Filament ein Durchmesser von 1,75mm oder 2,85mm hat und die Düse meist nur 0,4mm. Aus dem Grund sind die E-Werte aus dem Slicer geringer als die Wegstrecke, die der Drucker überbrücken muss.

Der F-Befehl gibt deinem Drucker vor, mit welcher Geschwindigkeit er die jeweilige Bewegung ausführen soll. Diese Geschwindigkeit wird immer in der Einheit mm/min angegeben, selbst dann, wenn du im Slicer mm/s ausgewählt hast. Also nicht wundern, wenn im G-Code die umgerechneten Werte stehen.

Viele 3D-Drucker benötigen nur die Werte für die Achsen, die auch tatsächlich bewegt werden sollen. Wenn du möchtest, dass sich nur die X Achse bewegt, schreibst du X hinzu und einen F-Wert für die Geschwindigkeit.

Beispiele:
G1 X0 Y0 F2400 ; Fahre auf dem Heizbett zum Punkt X=0, Y=0 mit einer Geschwindigkeit von 2400 mm/min
G1 Z10 F1200 ; Bewege die Z-Achse auf den Wert Z=10mm mit einer Geschwindigkeit von 1200 mm/min
G1 X30 E10 F1800 ; Drücke 10mm Filament in die Düse während du auf dem Heizbett zum Punkt X=30 mm mit einer Geschwindigkeit von 1800 mm/min fährst.

 

G92 – Festlegung der aktuellen Position (Current Position)

Nutze diesen Befehl, wenn du die aktuelle Position deiner Achsen definieren möchtest. So kann man Verschiebungen (Offsets) in bestimmten Achsen ausgleichen. Häufig wird dieser Befel in Verbindung mit dem Extruder also der E-“Achse” verwendet, um die Position des Filaments zu bestimmen. Du kannst hiermit die aktuelle Filamentposition überschreiben und alle weiteren Befehle in Bezug auf den Extruder werden diese Position als Bezugspunkt nehmen.

Werte:
Bestimme die absolute Koordinate für die Achse, die du mit dem G92-Befehl überschreiben möchtest. Das geht für X, Y, Z und auch E. Wenn du eine Achse weg lässt, wird deren Wert auch nicht mit der aktuellen Position überschrieben.

Beispiele:
G92 E0 ; Stell die aktulle Filamentposition auf E=0 im Extruder.
G1 E10 F800 ; Extrudiere Filament mit einer Länge von 10mm

 

M104 und M109 – Befehle für die Temperatureinstellung des Extruders

Diese beiden G-Code Befehle dienen dazu, die Temperatureinstellung des Extruders einzustellen.

  • M104: Dieser Befehl beginnt mit dem Aufheizen des Extruders und erlaubt das direkte Ausführen von weiteren Befehlen.
  • M109: Dieser Befehlt führt dazu, dass erst gewartet wird, bis die gewünschte Temperatur des Extruders erreicht ist. Erst danach können weitere Befehle ausgeführt werden.

Den G-Code-Befehl M109 sieht man wahrscheinlich öfter, da es ansonsten vorkommen kann, dass der Druck startet, bevor die gewünschte Temperatur überhaupt erreicht ist.

Sind die G-Codes für jeden 3D-Drucker so?

Während M104 und M109 sehr oft verwendet werden, gibt es auch Fälle, in denen andere Befehle zum Einsatz kommen. Das kommt zum Beispiel dann vor, wenn der Drucker .x3g Codes liest anstelle von .gcode-Dateien. Dann wird M133 anstelle des Befehls M109 genutzt. Manche 3D-Drucker wiederum (Flashforge Dreamer, Dremel oder ähnliche) verwenden dann den M6 Befehl. Das hängt dann von der verwendeten Firmware ab.

Werte:

  • Mit dem S-Wert kannst du die Temperatur des Extruders in Grad Celsius festlegen (S190= 190 Grad Celsius).
  • Der Einsatz des T-Werts eignet sich dann am besten, wenn dein 3D-Drucker mehrere Extruder hat und du einen bestimmten auf die gewünschte Temperatur bringen möchtest. Normalerweise ist T0 dann der rechte Extruder, wohingegen T1 dann den linken Extruder beschreibt.

Beispiele:
M104 S190 T0 ; Beginne mit dem Aufheizen von T0 auf 190 Grad Celsius.
G28 X0 ; Führe das Homing für die X-Achse durch, während der Extruder noch aufheizt.
M109 S190 T0 ; Warte bis T0 die Temperatur von 190 Grad Celsius erreicht hat, um dann weitere Befehle ausführen zu können.

 

M140 und M190 – Befehle für die Temperatureinstellung des Heizbetts (Bed Heating Commands)

Mit den M140- und M190-Befehlen bestimmst du die Temperatureinstellung des Heizbetts analog zum M104- und M109-Befehl wie im oben bereits beschrieben.

  • M140: Dieser Befehl beginnt mit dem Aufheizen des Heizbetts und erlaubt das direkte Ausführen von weiteren Befehlen.
  • M190: Dieser Befehlt führt dazu, dass erst gewartet wird, bis die gewünschte Temperatur des Heizbetts erreicht ist. Erst danach können weitere Befehle ausgeführt werden.

Beachte, dass das Aufheizen des Heizbetts einige Zeit in Anspruch nehmen kann. Nicht wundern, wenn dein 3D-Drucker während des Drucks plötzlich eine kleine Pause einlegt (bei M190) bis er dann wieder weiter macht.

Häufig wird der M140-Befehl häufig an den Anfang des G-Codes gesetzt, um dann die anderen Befehle wie das Homing etc. durchführen zu können. Bevor der Druck aber startet, sollte ein M190-Befehl eingebaut werden, um eine stabile Temperatur für die erste Schicht zu gewährleisten.

Gilt das für jeden 3D-Drucker?

Wie bei den M104- und M109-Befehlen gilt auch hier, dass dies von der verwendeten Firmware abhängig ist. Liest dein 3D-Drucker .x3g-Dateien dann wird M134 anstelle von M190verwendet und bei Flashforge Dreamer, Dremel oder ähnlichen Druckern ist M7 zu nutzen.

Werte:

Mit dem S-Wert kannst du die Temperatur des Heizbetts in Grad Celsius festlegen (S30= 30 Grad Celsius). Da die meisten 3D-Drucker nur über ein Heizbett verfügen, bedarf es keiner weiteren Anpassung etc.

Beispiele:
M140 S50 ; Beginne mit dem Aufheizen des Heizbetts auf 50 Grad Celsius.
G28 ; Führe das Homing für alle Achsen durch und heize gleichzeitig das Heizbett auf 50 Grad Celsius.
M190 S50 ; Warte bis die Temperatur von 50 Grad Celsius für das Heizbett erreicht ist, um dann weitere Befehle ausführen zu können.

 

M106 – Steuerung der Lüftergeschwindigkeit (Set Fan Speed)

Mit dem M106-Befehl kannst du die Geschwindigkeit des Bauteilelüfters deines 3D-Druckers einstellen. Beachte bitte, dass dein Drucker auch einen Lüfter besitzen könnte, der den Extruder kühlt. Du solltest also zunächst schauen, ob du den richtigen Lüfter steuerst. Es kann nämlich auch sein, dass du noch keinen Bauteilelüfter eingebaut hast.

Werte:
Hier bestimmt der S-Wert die Geschwindigkeit des Lüfters, wobei 0=Aus und 255=100% Geschwindigkeit bedeuten.

Beispiele:
M106 S255 ; Stelle die Lüftergeschwindigkeit auf 100%.

M106 S127 ; Stelle die Lüftergeschwindigkeit auf ca. 50%. (255/2=127,5)

M106 S0 ; Schalte den Lüfter komplett aus.

 

Fehlen deiner Meinung nach wichtige Befehle?

Schreib’ mir in die Kommentare.

Danke dir 🙂

 

Quellen:

www.simplify3d.com

3

Über den Autor:

Mein Name ist Sercan und ich möchte euch hier das Thema 3D-Druck näher bringen und aufzeigen, was man alles damit machen kann. Zudem werde ich euch mit wertvollen Tipps und Tricks sowie Anleitungen versorgen.

  Verwandte Artikel
  • No related posts found.

Kommentare

  1. Jens Greßmann  Juli 25, 2017

    Hi und danke für die ausführlichen Erklärungen.

    Mal ne Frage wie müssten die GCode Befehle aussehen, um einen Druck zu pausieren (evtl. nach dem Filamentwechsel zb.). Der Druckkopf sollte beim auslösen des Pause Befehls den Druck pausieren und zur einer bestimmten Koordinate fahren. Zuvor natürlich den Kopf vom Modell hoch fahren und dann seitlich weg.
    Dann stellt sich gleich noch die Frage wie man danach den Druck an der pausierten Position fortfährt.

    Danke

    Bye Jens

    antworten
    • Sercan  Juli 25, 2017

      Hallo Jens,
      vielen Dank für deine Fragen.
      Ich schreibe die Tage eine kleine Erweiterung des Artikels, da neue Befehle drin sind 🙂
      Beste Grüße
      Sercan 🙂

      antworten
      • Walter  Oktober 4, 2017

        Hi Sercan.
        Herzlichen Dank für deine tollen Erklärungen.
        Wann kommt die Erweiterung zu diesem Artikel heraus?
        Tschau Walter

        antworten

Schreibe einen Kommentar


*