Mein Start- und Ende- GCode für den Anycubic i3 Mega

Man kann eigentlich in jedem Slicing-Programm - ich verwende zur Zeit ideaMaker von Raise3D, aber das geht natürlich auch in Cura von Ultimaker und anderen) einen GCode eingeben, der vor dem Druck (Start-GCode) bzw. nach dem Druck (Ende-GCode) ausgeführt werden soll.

Der Slicer fügt dann beim slicen, also dem Prozess, bei dem er das 3D-Modell in GCode-Befehle umwandelt, eben diese zuvor definierten GCode-Passagen in den geslicten GCode ein.

GCode ist eine Beschreibungssprache für den Drucker (und andere 3D-Geräte wie CNC-Fräsen etc.), die mit kurzen Befehlen angeben, wo der Druckkopf langfahren soll und bei 3D-Druckern auch, wie heiß der Druckkopf sein muss, wie heiß das Bett, wie das Filament zugeführt wird usw. usf.

Der Anycubic i3 mega benutzt die sogenannte Marlin Firmware und benutzt damit die Marlin GCode-Befehle.

Mit den richtigen GCodes kann man so seinen Drucker steuern, um einen besseren Druck zu bekommen oder das Handling ein bisschen komfortabler zu gestalten. Was ich mit meinen GCodes gemacht habe.

Mein Start-GCode

Wer keinen Start-Gcode hat, dürfte das Problem kennen: Bei Druckbeginn hat der 3D-Drucker eine kleine Wurst in der Düse, die er dann - je nachdem wann diese dann abreißt und auf der Druckplatte liegenbleibt - auf besondere Weise in der Druck einarbeitet, meist so, dass es hässlich aussieht. Entweder steht etwas über den Rand über und muss mit dem Seitenschneider abgezackt werden oder die ansonsten perfekte Grundplatte "ziert" eine querliegende Wurst.

Dafür kann man jetzt ein Skirt drucken. Dann fährt der Druckkopf ein paar mal um das eigentliche Objekt herum und druckt hier seine Bahnen. Darin werden dann noch anhänge Filamentreste in der meisten Fälle eingearbeitet oder bleiben hängen. Wenn es dann an der Druck des richtigen Objektes geht, ist das Filament bereits im Fluss und es gibt einen schönen Druck. Meistens.

Mit meinem GCode lasse ich den Druckkopf haarscharf und ganz langsam von der Ecke unten links ein bisschen nach rechts fahren. Vorher wird noch ein bisschen Filament herausgedrückt, damit es in Fluss kommt. Das bleibt dann an der Ecke hängen bzw. haftet am Bett durch die langsame Fahrt. Danach schließt sich eine rasante Fahrt des Druckkopfes an, die den Filamentfaden abreißen lässt. Der Start an der eigentlichen Druckposition geschieht dann sauber.

Im ideaMaker editiert man am besten die Einstellungen für das Filament und fügt dort unter Custom GCode seinen Start- und Ende- GCode ein. Dabei können die rechts angegebenen Variablen im GCode benutzt werden (geschweifte Klammern sind mit anzugeben):



Mein GCode sieht komplett so aus: ; Druck Start Melodie ; StarTrek M300 S1396 P714 M300 S932 P238 M300 S2489 P1428 M300 S2349 P476 M300 S932 P357 M300 S1567 P357 M300 S2093 P357 M300 S2793 P952 G21 ; metrische mm G90 ; absolute positionierung M82 ; extruder auch im absoluten Modus M106 S0 ; am Anfang Luefter aus M107 G28 X0 Y0 ; auf HOME Poition X/Y G28 Z0 ; und Z Home M117 Filament nachfuellen... ; M117 sind Meldungen auf das Display, geht beim i3 mega leider nicht ; sonst fehlt was bei zu kleinen Skirts G1 Z10.0 F2400 ; auf 10 mm hoch G92 E0 ; extrudierte Laenge zuruecksetzen G1 F200 E10 ; ca. 4mm extrudieren G92 E0 M117 Filament abstreifen... G1 Z0.1 F2400 ; auf 0.1mm gehen G1 X10 F100 ; langsam nach rechts, damit es anhaftet G1 X30 F7200 ; dann 2cm ganz schnell nach rechts, damit er es verliert G1 Z2.0 ; dann wieder ein Stueck hoch ;G1 X100 F7200; und dann nochmal schnell nach rechts G1 F{travel_xy_speed} ;Skirt sollte gedruckt werden, da das Filament erst ein wenig später flüssig kommt M117 Drucke... G90; absolute positionierung G5 Was im einzelnen passiert, ist den Kommentaren zu entnehmen. Das sollte gut erklärt sein. Schaut euch auch das Video am Ende des Artikels an, dass wird ganz schnell, was vor sich geht.

Wichtig ist, zu wissen, dass ideaMaker im absoluten Positionierungsmodus arbeitet und seinen GCode generiert. Dieser wird mit G90 gesetzt. Wenn wir jetzt den relativen Modus mit G91 setzen, weil dieser einfacher zu handeln ist, weil sich die zu machenden Angabe immer relativ zur letzten Position beziehen, dann dürfen wir nicht vergessen, am Schluss auch wieder auf den absoluten Positionierungsmodus mit G90 zurückzugesetzen. Sonst fährt der Druckkopf sonstwo hin und hinterlässt uns im dümmsten Fall einen Kratzer im Druckbett. So etwas ist sehr ärgerlich, besonders, wenn man bei jedem Ausdruck diesen Kratzer in der Grundplatte wiederfindet.

Octoprint ist so klug, anzumerken, wenn dadurch der gültige Druckraum verlassen wird. Diese Warnung sollte man nicht ignorieren, sondern zum Anlass nehmen, seinen GCode noch einmal zu überprüfen. Verdächtig ist auch, wenn das Objekt im Preview des Slicers nicht komplett oder seltsam gerendet ist.

Mein Ende GCode

Am Ende eines Druckvorgangs soll der Druckkopf aus dem Weg gefahren werden und die Platte ganz nach vorne. So kommt mehr Luft unter die Druckplatte und sie kühlt schneller ab. Außerdem lässt sich so der Druck einfacher entnehmen, es ist nichts im Weg.

Das Heizbett, die Nozzle-Heizung und die Motoren sollen natürlich auch ausgeschaltet werden, alles andere wäre Stromverschwendung, jetzt wo der Druck fertig ist.

Ganz zum Schluss spielt noch eine kleine Melodie, damit ich weiß, dass der Druck jetzt fertig ist und ich ihn bald von der Platte nehmen kann, weil er in so 5 bis 10 Minuten abgekühlt ist.

Mein Ende-GCode sieht komplett so aus: M104 S0 ; Extruder aus M140 S0 ; Heizbett aus M107; Luefter aus G91 ; relative Positionierung G1 E-1 F300 ; etwas Filament retracten, damit nichts am Druck kleben bleibt G1 Z+0.5 E-5 ; X-20 Y-20 F{travel_xy_speed} ; Druckkopf anheben und noch mehr Filament zurückziehen G28 X0 ;Y0 ; Kopf nach abs. Home fahren (X/Y) = Kopf aus dem Weg und Druckplatte vor G1 Y180 F2000 ; Feeding-Rste setzen M84 ; Motoren aus G90 ; absolute Positionierung (falls doch noch Befehle danach kommen) ;M300 P300 S4000 ; ein langer Ton für Druckende ;Ende Druck Melodie ;MauroPicottoKomodo M300 S1567 P181 M300 S0 P363 M300 S1396 P181 M300 S1567 P181 M300 S0 P363 M300 S1396 P181 M300 S1567 P181 M300 S1396 P181 M300 S1567 P181 M300 S0 P363 M300 S1396 P181 M300 S1567 P181 M300 S1174 P181 M300 S2349 P181 M300 S0 P363 M300 S1174 P181 M300 S2349 P181 M300 S0 P363 M300 S1174 P181 M300 S2349 P181 M300 S1174 P181 M300 S2349 P181 M300 S0 P363 M300 S1174 P181 M300 S2349 P181 M300 S1396 P181 M300 S1567 P181 M300 S0 P363 M300 S1396 P181 M300 S1567 P181 M300 S0 P363 M300 S1396 P181 M300 S1567 P181 M300 S1396 P181 M300 S1567 P181 M300 S0 P363 M300 S1396 P181 M300 S1567 P181 M300 S880 P181 M300 S1760 P181 M300 S0 P90 M300 S1760 P181 M300 S0 P90 M300 S880 P181 M300 S1760 P181 M300 S0 P90 M300 S1760 P181 M300 S0 P90 M300 S2093 P181 M300 S2349 P181 Auch hier ist alles mit Kommentaren erklärt und damit verständlich sein.

Spaß mit Melodien

Witzig finde ich auch, dass man mit M300 Sxxx Pxxx Töne ausgeben kann. Beim Anycubic i3 Mega kommen die dann irgendwo aus Richtung Display. Allerdings ist der Piepser nicht für alle Tonhöhen geeignet.

Der GCode-Befehl dafür ist wie folgt definiert: M300 [P] [S] Parameters [P] Duration [S] Frequency Ich habe euch ein paar Melodien nachfolgend zusammengestellt. Probiert doch einfach selbst, wie es sich bei euch anhört und was euch am besten gefällt. ;Zelda Theme M300 S987 P600 M300 S1479 P900 M300 S987 P300 M300 S987 P150 M300 S2217 P150 M300 S2489 P150 M300 S2637 P150 M300 S2959 P1200 M300 S2959 P300 M300 S2959 P225 M300 S3135 P225 M300 S1760 P225 M300 S1975 P1200 M300 S1975 P150 M300 S1975 P225 M300 S1760 P225 M300 S3135 P225 M300 S1760 P450 M300 S3135 P225 M300 S2959 P1200 M300 S2959 P600 M300 S2637 P300 M300 S2637 P225 M300 S2959 P150 M300 S3135 P1200 M300 S2959 P300 M300 S2637 P300 M300 S2349 P300 M300 S2349 P150 M300 S2637 P150 M300 S2959 P1200 M300 S2637 P300 M300 S2349 P300 M300 S2217 P300 M300 S2217 P150 M300 S2489 P150 M300 S2793 P1200 M300 S3322 P600 M300 S2959 P1200 ;MauroPicottoKomodo M300 S1567 P181 M300 S0 P363 M300 S1396 P181 M300 S1567 P181 M300 S0 P363 M300 S1396 P181 M300 S1567 P181 M300 S1396 P181 M300 S1567 P181 M300 S0 P363 M300 S1396 P181 M300 S1567 P181 M300 S1174 P181 M300 S2349 P181 M300 S0 P363 M300 S1174 P181 M300 S2349 P181 M300 S0 P363 M300 S1174 P181 M300 S2349 P181 M300 S1174 P181 M300 S2349 P181 M300 S0 P363 M300 S1174 P181 M300 S2349 P181 M300 S1396 P181 M300 S1567 P181 M300 S0 P363 M300 S1396 P181 M300 S1567 P181 M300 S0 P363 M300 S1396 P181 M300 S1567 P181 M300 S1396 P181 M300 S1567 P181 M300 S0 P363 M300 S1396 P181 M300 S1567 P181 M300 S880 P181 M300 S1760 P181 M300 S0 P90 M300 S1760 P181 M300 S0 P90 M300 S880 P181 M300 S1760 P181 M300 S0 P90 M300 S1760 P181 M300 S0 P90 M300 S2093 P181 M300 S2349 P181 ;Star Wars M300 S1396 P166 M300 S1396 P166 M300 S1396 P166 M300 S932 P1000 M300 S2793 P1000 M300 S2489 P166 M300 S2349 P166 M300 S2093 P166 M300 S1864 P1000 M300 S2793 P500 M300 S2489 P166 M300 S2349 P166 M300 S2093 P166 M300 S1864 P1000 M300 S2793 P500 M300 S2489 P166 M300 S2349 P166 M300 S2489 P166 M300 S2093 P666 M300 S0 P333 M300 S1396 P166 M300 S1396 P166 M300 S1396 P166 M300 S932 P1000 M300 S2793 P1000 M300 S2489 P166 M300 S2349 P166 M300 S2093 P166 M300 S1864 P1000 M300 S2793 P500 M300 S2489 P166 M300 S2349 P166 M300 S2093 P166 M300 S1864 P1000 M300 S2793 P500 M300 S2489 P166 M300 S2349 P166 M300 S2489 P166 M300 S2093 P666 ;StarTrek M300 S1396 P714 M300 S932 P238 M300 S2489 P1428 M300 S2349 P476 M300 S932 P357 M300 S1567 P357 M300 S2093 P357 M300 S2793 P952 ;How much is the fish M300 S1567 P206 M300 S1567 P206 M300 S1396 P103 M300 S1318 P103 M300 S1396 P413 M300 S1174 P310 M300 S1046 P103 M300 S1174 P206 M300 S1567 P206 M300 S1567 P206 M300 S1396 P206 M300 S1318 P206 M300 S1567 P206 M300 S1567 P206 M300 S1396 P103 M300 S1318 P103 M300 S1396 P413 M300 S1174 P413 M300 S1318 P206 M300 S1046 P206 M300 S1174 P827 M300 S0 P206 ;Bolero M300 S2093 P750 M300 S2093 P375 M300 S987 P187 M300 S2093 P187 M300 S2349 P187 M300 S2093 P187 M300 S987 P187 M300 S880 P187 M300 S2093 P375 M300 S2093 P187 M300 S880 P187 M300 S2093 P750 M300 S2093 P375 M300 S987 P187 M300 S2093 P187 M300 S880 P187 M300 S1567 P187 M300 S1318 P187 M300 S1396 P187 M300 S1567 P1500 M300 S1567 P187 M300 S1396 P187 M300 S1318 P187 M300 S1174 P187 M300 S1318 P187 M300 S1396 P187 M300 S1567 P187 M300 S880 P187 M300 S1567 P750 M300 S1567 P750 M300 S1567 P187 M300 S880 P187 M300 S987 P187 M300 S880 P187 M300 S1567 P187 M300 S1396 P187 M300 S1318 P187 M300 S1174 P187 M300 S1318 P187 M300 S1174 P187 M300 S1046 P375 M300 S1046 P375 M300 S1046 P187 M300 S1174 P187 M300 S1318 P375 M300 S1396 P375 M300 S1174 P750 M300 S1567 P1500 ;Coca-cola M300 S2959 P240 M300 S2959 P240 M300 S2959 P240 M300 S2959 P240 M300 S3135 P480 M300 S2959 P240 M300 S2637 P480 M300 S2637 P240 M300 S1760 P240 M300 S2959 P480 M300 S2349 P480 M300 S0 P960 ;Deutschlandlied M300 S1567 P750 M300 S880 P187 M300 S987 P375 M300 S880 P375 M300 S2093 P375 M300 S987 P375 M300 S880 P187 M300 S1479 P187 M300 S1567 P375 M300 S2637 P375 M300 S2349 P375 M300 S2093 P375 M300 S987 P375 M300 S880 P375 M300 S987 P187 M300 S1567 P187 M300 S2349 P750 M300 S1567 P750 M300 S880 P187 M300 S987 P375 M300 S880 P375 M300 S2093 P375 M300 S987 P375 M300 S880 P187 M300 S1479 P187 M300 S1567 P375 M300 S2637 P375 M300 S2349 P375 M300 S2093 P375 M300 S987 P375 M300 S880 P375 M300 S987 P187 M300 S1567 P187 M300 S2349 P750 M300 S880 P375 M300 S987 P375 M300 S880 P187 M300 S1479 P187 M300 S1174 P375 M300 S2093 P375 M300 S987 P375 M300 S880 P187 M300 S1479 P187 M300 S1174 P375 M300 S2349 P375 M300 S2093 P375 M300 S987 P750 M300 S987 P187 M300 S2217 P375 M300 S2217 P187 M300 S2349 P187 M300 S2349 P750 M300 S3135 P750 M300 S2959 P187 M300 S2959 P187 M300 S2637 P187 M300 S2349 P375 M300 S2637 P750 M300 S2349 P187 M300 S2349 P187 M300 S2093 P187 M300 S987 P375 M300 S880 P750 M300 S987 P93 M300 S2093 P93 M300 S2349 P187 M300 S2637 P187 M300 S2093 P187 M300 S880 P187 M300 S1567 P750 M300 S987 P187 M300 S880 P187 M300 S1567 P750 ;FunkyTown M300 S2093 P240 M300 S2093 P240 M300 S932 P240 M300 S2093 P240 M300 S0 P240 M300 S1567 P240 M300 S0 P240 M300 S1567 P240 M300 S2093 P240 M300 S2793 P240 M300 S2637 P240 M300 S2093 P240 M300 S0 P960 M300 S2093 P240 M300 S2093 P240 M300 S932 P240 M300 S2093 P240 M300 S0 P240 M300 S1567 P240 M300 S0 P240 M300 S1567 P240 M300 S2093 P240 M300 S2793 P240 M300 S2637 P240 M300 S2093 P240 ;SuperMario M300 S0 P600 M300 S1046 P450 M300 S1567 P150 M300 S0 P300 M300 S1318 P300 M300 S0 P150 M300 S880 P300 M300 S987 P150 M300 S0 P150 M300 S932 P150 M300 S880 P300 M300 S1567 P450 M300 S2637 P300 M300 S3135 P300 M300 S1760 P300 M300 S2637 P150 M300 S3135 P150 M300 S0 P150 M300 S2637 P300 M300 S2093 P150 M300 S2349 P150 M300 S987 P450 M300 S2093 P450 M300 S1567 P150 M300 S0 P300 M300 S1318 P300 M300 S0 P150 M300 S880 P300 M300 S987 P150 M300 S0 P150 M300 S932 P150 M300 S880 P300 M300 S1567 P300 M300 S2637 P300 M300 S3135 P300 M300 S1760 P300 M300 S2793 P150 M300 S3135 P150 M300 S0 P150 M300 S2637 P300 M300 S2093 P150 M300 S2349 P150 M300 S987 P300 ;Super Mario Bros Death Theme M300 S2093 P83 M300 S2093 P83 M300 S2093 P83 M300 S0 P333 M300 S987 P166 M300 S2793 P166 M300 S0 P166 M300 S2793 P166 M300 S2793 P250 M300 S2637 P250 M300 S2349 P166 M300 S2093 P166 M300 S0 P166 M300 S1318 P166 M300 S0 P166 M300 S1046 P166 Vielleicht wichtig noch zu bemerken, dass die einzelnen M300-Zeilen getrennt untereinander stehen müssen. Mehrere oder alle in eine Zeile zu schreiben funktioniert nicht und führt zu einem Absturz des Druckers.

Video

Wie sich mein Drucker nun mit den hier vorgestellten Start- und Ende- GCodes verhält, könnt ihr in diesem Video sehen: