G-Code-Befehle im 3D-Druck
G-Code oder Gcode. Wahrscheinlich hast du diesen Begriff schon einmal gehört oder im Glossar gelesen, wenn du dich schon einmal mit 3D-Druck beschäftigt hast. In diesem Artikel erkläre ich dir, was ein G-Code ist und wofür er im 3D-Druck verwendet wird. Außerdem zeige ich Ihnen, welche G-Code-Befehle für Sie wichtig sind, wenn Sie mit dem 3D-Drucken beginnen wollen oder bereits damit begonnen haben.
G-Code-Was ist das und wofür wird er verwendet?
3D-Drucker können mit 3D-Modellen in den Formaten .stl, .obj usw. nicht viel anfangen, denn sie speichern die geometrische Form, aber nicht, wie der 3D-Drucker diese Form verarbeiten soll. „Wie schnell soll das Modell in Schicht Nummer 5 gedruckt werden? und ähnliche Fragen müssen für den 3D-Drucker beantwortet werden. Die Antworten stehen im G-Code, der Sprache des 3D-Druckers. Nur mit einem G-Code weiß der Drucker, was zu tun ist.
Der Slicer übersetzt das 3D-Modell in den G-Code und fügt auch maschinenrelevante Daten ein. Diese wurden genau für den verwendeten 3D-Drucker definiert. Das bedeutet, dass der G-Code, den Sie für Ihren 3D-Drucker-Bausatz wie den Creality CR-10 Drucker erstellt haben, bei Ihrem Freund mit einem Ultimaker 2 nicht funktioniert.
Dazu müssten die maschinenrelevanten Einstellungen überarbeitet werden. Dazu gehört z.B. die Größe des Druckbetts. Ist diese Einstellung falsch, startet der Drucker in der Mitte des Druckbetts und vielleicht sogar außerhalb des Druckbetts bei Ihrem Freund.
Es ist daher von Vorteil, über Grundkenntnisse der G-Codes zu verfügen, um fehlerhafte Codes zu verstehen und sie gegebenenfalls zu verbessern. Beachten Sie, dass einige Befehle mit dem Buchstaben G beginnen, während andere mit einem M beginnen.
Die häufig verwendeten G-Code-Befehle und ihre Bedeutung
Im Folgenden zeige ich Ihnen, was der jeweilige G-Code-Befehl aussagt, welche Individualisierungen möglich sind und wie ein solcher G-Code-Befehl aussehen kann.
G1-Der Linearbewegungsbefehl
Ihr 3D-Drucker führt in den meisten Fällen den Befehl G1 aus. Deshalb ist es nicht schlecht, ihn einmal genauer zu betrachten. G1 weist Ihren Drucker an, sich in einer geraden Linie zum nächsten Punkt zu bewegen. Sie können diesen Befehl verwenden, um eine oder mehrere Achsen zu steuern.
Hinweis: Der Extruder wird wie jede andere Achse gesteuert. Sie können also den Materialfluss (Extrusion) und den Rückzug des Filaments steuern.
Werte:
Wenn Sie X, Y und Z angeben, können Sie dem Drucker mitteilen, zu welchen Punkten er sich bewegen soll. Beachten Sie jedoch, dass diese Befehle je nach Art der Positionierung (absolut/relativ) ausgeführt werden und somit entweder die exakte Koordinate oder den Abstand zum aktuellen Punkt anfahren.
Wenn Sie einen E-Befehl hinzufügen, können Sie bestimmen, ob der 3D-Drucker auch auf dem Weg extrudieren soll und wenn ja, wie viel. Beachten Sie, dass sich die Extrusionslänge auf das Material bezieht, das von der Zuführung in die Düse gepresst wird. Wenn Sie also Ihrem Drucker sagen, dass er 10 mm extrudieren soll, ist die Länge, die aus der Düse kommt, nicht 10 mm, sondern viel länger. Das liegt daran, dass das Filament einen Durchmesser von 1,75 mm oder 2,85 mm hat und die Düse in der Regel nur 0,4 mm misst. Aus diesem Grund sind die E-Werte vom Slicer niedriger als der Abstand, den der Drucker überbrücken muss.
Der F-Befehl teilt Ihrem Drucker mit, mit welcher Geschwindigkeit er sich bewegen soll. Diese Geschwindigkeit wird immer in mm/min angegeben, auch wenn Sie im Slicer mm/s gewählt haben. Wundern Sie sich also nicht, wenn der G-Code die umgerechneten Werte enthält.
Viele 3D-Drucker benötigen nur die Werte für die Achsen, die tatsächlich bewegt werden sollen. Wenn nur die X-Achse bewegt werden soll, fügen Sie X und einen F-Wert für die Geschwindigkeit hinzu.
Beispiele:
G1 X0 Y0 F3000 | Fahren Sie auf dem Heizbett zum Punkt X=0, Y=0 mit einer Geschwindigkeit von 3000 mm/min. |
G1 Z10 F1000 | Fahren Sie die Z-Achse auf den Wert Z=10mm mit einer Geschwindigkeit von 1000 mm/min. |
G1 X30 E10 F1600 | Drücken Sie 10mm Filament in die Düse, während Sie auf dem Heizbett auf den Punkt X=30 mm mit einer Geschwindigkeit von 1600 mm/min fahren. |
G4 pausiert den Druck für eine bestimmte Zeit
Mit dem Befehl G4 haben Sie die Möglichkeit, Ihren Drucker für eine bestimmte Zeit anzuhalten.
Werte:
P000 – Der Drucker wartet für eine bestimmte Zeit in Millisekunden.
S000 – Der Drucker wartet für eine bestimmte Zeit in Sekunden (dieser Befehl gilt nur für Repetier, Marlin, RepRap Firmware und Smoothieware)
Beispiele:
G4 P500 ; 500 Millisekunden warten und in der Zeit nichts tun – Während dieser Zeit werden alle Druckerparameter wie Heizbetttemperatur etc. Während dieser Zeit werden alle Druckerparameter wie Heizbetttemperatur usw. beibehalten, so dass Sie sich keine Sorgen machen müssen, dass Ihr Druck ruiniert wird.
G21-change units in millimetres
Es sollte nicht allzu oft vorkommen, dass Sie diesen Befehl verwenden müssen, da fast alle 3D-Drucker standardmäßig in der Einheit arbeiten. Es kann jedoch nicht schaden, diesen Code im Hinterkopf zu behalten, wenn Ihr Drucker auf Zoll eingestellt zu sein scheint.
Werte:
Keine
Beispiel:
G21
G28-Die Referenzfahrt durchführen
Dieser Befehl sorgt dafür, dass Ihr 3D-Drucker die sogenannte Referenzfahrt durchführt. Bei der Referenzfahrt kehrt der Druckkopf zu seinem „Nullpunkt“ zurück, den er erreicht hat, wenn er die Endanschläge für alle Achsen (X, Y und Z) erreicht hat. Dies ist wichtig, da der Druckkopf bei jedem Druck den gleichen Startpunkt hat. Die Pfade im G-Code werden von diesem Startpunkt aus definiert. Ohne diesen Bezug auf einen bestimmten Punkt wäre der 3D-Druck nicht sinnvoll. Am Ende eines Druckvorgangs wird dieser Befehl ebenfalls häufig ausgeführt. Dies erleichtert das Entfernen der 3D-gedruckten Modelle.
Werte:
Wenn keine Werte angegeben werden, fährt Ihr Drucker bis zu den Endanschlägen aller drei Achsen. Sie können aber auch wählen, welche Achsen angefahren werden sollen, indem Sie einfach die Buchstaben X, Y oder Z hinzufügen.
Beispiele:
G28 | Homing für alle Achsen (X, Y und Z) |
G28 X Y | Homing für die X- und Y-Achse |
G28 Z | Homing nur für die Z-Achse |
G90 und G91 – Einstellen des Positionierungsmodus (Positioning Mode).
Ihr Drucker kann die Positionierung entweder absolut oder relativ durchführen:
– Absolute Positionierung: Hier geben Sie Ihrem 3D-Drucker die genaue Koordinate für X, Y oder Z vor, die er anfahren soll. Hierfür verwenden Sie den Befehl G90.
– Relative Positionierung: Damit teilen Sie Ihrem 3D-Drucker mit, wie weit er sich von seiner aktuellen Position (X,Y,Z) in der (X,Y,Z)-Richtung bewegen soll. Dies funktioniert mit dem Befehl G91.
– Die absolute Positionierung wirst du wahrscheinlich häufiger in deinen G-Codes finden, da der Slicer bereits die genauen Koordinaten für die drei Achsen kennt und sie zur Bestimmung der absoluten Position verwendet.
Werte:
Keine.
Beispiele:
G90 | Absolute Positionierung für alle drei Achsen verwenden |
G1 X10 F3000 | Auf dem Heizbett fahren zum Punkt X=10mm mit einer Geschwindigkeit von 3000 mm/min (F3000) |
G1 X20 F3000 | Antrieb auf dem Heizbett zum Punkt X=20mm mit einer Geschwindigkeit von 3000 mm/min. |
G91 | Relative Positionierung für alle drei Achsen verwenden |
G1 X10 F3000 | Von der aktuellen Position auf dem Heizbett 10mm nach rechts fahren mit einer Geschwindigkeit von 3000 mm/min. |
G1 X10 F3000 | Von der aktuellen Position auf dem Heizbett weitere 10mm nach rechts mit einer Geschwindigkeit von 3000 mm/min verfahren. |
G92-Bestimmung der aktuellen Position (Current Position)
Verwenden Sie diesen Befehl, wenn Sie die aktuelle Position Ihrer Achsen bestimmen wollen. Auf diese Weise können Sie Offsets in bestimmten Achsen kompensieren. Dieser Befehl wird oft in Verbindung mit dem Extruder, d.h. der E-Achse, verwendet, um die Position des Filaments zu bestimmen. Sie können die aktuelle Position des Filaments überschreiben und alle anderen Befehle, die sich auf den Extruder beziehen, nehmen diese Position als Referenzpunkt.
Werte:
Geben Sie die absolute Koordinate für die Achse an, die Sie mit dem G92-Befehl überschreiben möchten. Dies funktioniert für X, Y, Z und auch E. Wenn Sie eine Achse auslassen, wird ihr Wert nicht mit der aktuellen Position überschrieben.
Beispiele:
G92 E0 | Setzen Sie die aktuelle Filamentposition im Extruder auf E=0. |
G1 E10 F800 | Extrudiertes Filament mit einer Länge von 10mm |
M104 und M109 Befehle für die Temperatureinstellung des Extruders
Diese beiden G-Code Befehle werden verwendet, um die Temperatureinstellung des Extruders einzustellen.
– M104: Dieser Befehl beginnt mit dem Aufheizen des Extruders und ermöglicht die direkte Ausführung weiterer Befehle.
– M109: Mit diesem Befehl wird gewartet, bis die gewünschte Extrudertemperatur erreicht ist. Erst dann können weitere Befehle ausgeführt werden.
Der G-Code-Befehl M109 ist wohl häufiger zu sehen, da sonst der Druck beginnen kann, bevor die gewünschte Temperatur erreicht ist.
Sind die G-Codes bei jedem 3D-Drucker so?
Während M104 und M109 sehr häufig verwendet werden, gibt es auch Fälle, in denen andere Befehle verwendet werden. Dies geschieht zum Beispiel, wenn der Drucker .x3g-Codes statt .gcode-Dateien liest. Dann wird M133 anstelle von M109 verwendet. Einige 3D-Drucker (Flashforge Dreamer, Dremel oder ähnliche) verwenden dann den Befehl M6. Das hängt von der verwendeten Firmware ab.
Werte:
Mit dem S-Wert können Sie die Temperatur des Extruders in Grad Celsius einstellen (S190= 190 Grad Celsius).
Der T-Wert ist am besten geeignet, wenn Ihr 3D-Drucker mehrere Extruder hat und Sie eine bestimmte Temperatur auf den gewünschten Wert einstellen wollen. Normalerweise ist T0 der rechte Extruder, während T1 den linken Extruder beschreibt.
Beispiele:
M104 S190 T0 | Starten Sie die Heizung von T0 auf 190 Grad Celsius. |
G28 X0 | Die Referenzfahrt für die X-Achse durchführen, während der Extruder noch heizt. |
M109 S190 T0 | Warten Sie, bis T0 die Temperatur von 190 Grad Celsius erreicht hat, um weitere Befehle ausführen zu können. |
M106 Lüfterdrehzahlsteuerung (Set Fan Speed)
Mit dem Befehl M106 können Sie die Drehzahl des Bauteillüfters Ihres 3D-Druckers einstellen. Bitte beachten Sie, dass Ihr Drucker möglicherweise auch einen Lüfter hat, der den Extruder kühlt. Prüfen Sie also zunächst, ob Sie den richtigen Lüfter haben. Es ist auch möglich, dass Sie noch keinen Komponentenlüfter installiert haben.
Werte:
Hier bestimmt der S-Wert die Geschwindigkeit des Lüfters, wobei 0=aus und 255=100% mittlere Geschwindigkeit.
Beispiele:
M106 S255 | Setzen Sie die Lüftergeschwindigkeit auf 100%. |
M106 S127 | Setzen Sie die Lüftergeschwindigkeit auf ca. 50%. (255/2=127,5) |
M106 S0 | Schalten Sie den Lüfter komplett aus. |
M140 und M190-G Code Befehle für die Temperatureinstellung des Heizbettes (Bed Heating Commands)
Mit den Befehlen M140 und M190 bestimmen Sie die Temperatureinstellung des Heizbettes analog zu den Befehlen M104 und M109 wie oben beschrieben.
– M140: Dieser Befehl beginnt mit dem Aufheizen des Heizbettes und ermöglicht es Ihnen, andere Befehle direkt auszuführen.
– M190: Mit diesem Befehl wird gewartet, bis die gewünschte Temperatur des Heizbettes erreicht ist. Erst dann können weitere Befehle ausgeführt werden.
Beachten Sie, dass das Aufheizen des Heizbetts einige Zeit dauern kann. Wundern Sie sich nicht, wenn Ihr 3D-Drucker während des Drucks (bei M190) plötzlich pausiert, bis er weiterläuft.
Oft wird der M140-Befehl an den Anfang des G-Codes gestellt, um die anderen Befehle wie Referenzfahrt etc. ausführen zu können. Bevor der Druck beginnt, sollte jedoch ein M190-Befehl eingebaut werden, um eine stabile Temperatur für die erste Schicht zu gewährleisten.
Gilt dies für jeden 3D-Drucker?
Wie bei den Befehlen M104 und M109 hängt dies auch von der verwendeten Firmware ab. Wenn Ihr 3D-Drucker .x3g-Dateien liest, dann wird M134 statt M190 verwendet und Flashforge Dreamer, Dremel oder ähnliche Drucker verwenden M7.
Werte:
Mit dem S-Wert können Sie die Temperatur des Heizbettes in Grad Celsius einstellen (S30= 30 Grad Celsius). Da die meisten 3D-Drucker nur ein Heizbett haben, sind keine weiteren Einstellungen etc. erforderlich.
Beispiele:
M140 S50 | Heizen Sie das Heizbett zunächst auf 50 Grad Celsius auf. |
G28 | Die Referenzfahrt für alle Achsen durchführen und gleichzeitig das Heizbett auf 50 Grad Celsius aufheizen. |
M190 S50 | Warten bis die Temperatur von 50 Grad Celsius für das Heizbett erreicht ist, um dann weitere Befehle ausführen zu können. |