Das Thema hatten wir schon mal. Aber das originale Makro ist von GitHub verschwunden, bei vielen hat es einfach aufgehört zu funktionieren – und obendrein lief es früher nur im OrcaSlicer, nicht im Snapmaker Orca. Alles gefixt. Hier kommt das Update.
Das Problem
Standardmäßig zeichnet der Snapmaker U1 beim Start genau eine Purge Line – vorne links auf der Druckplatte, und nur für den ersten Extruder, der im Druck verwendet wird. Das bedeutet: Wenn ihr mit 4 Farben druckt, sind 3 Toolheads beim Start „kalt” und unvorbereitet.
Das ursprüngliche Makro, das dieses Problem gelöst hat, war als GitHub Gist veröffentlicht – und ist leider irgendwann einfach verschwunden. Warum auch immer.
Ich hatte das Makro noch. Ich habe es überarbeitet, damit es jetzt auch im Snapmaker Orca funktioniert (nicht mehr nur im OrcaSlicer), und stelle es euch zum Download bereit.
Props gehen an zero466cool, der das Makro ursprünglich geschrieben und veröffentlicht hat.
Was das Makro macht
Nach der Installation passiert Folgendes beim Druckstart:
- Jeder Toolhead, der im Druck verwendet wird, zeichnet eine eigene Purge Line
- Die Linien werden ans Ende der Druckplatte gezeichnet – in den Bereich hinter den Löchern, der sowieso nicht bedruckbar ist
- Die Temperatur wird automatisch ans jeweilige Filament angepasst
- Jeder Toolhead zieht seine Linie aus seiner Idle-Position heraus, mit einem kleinen Offset zur Kante
Ergebnis: Saubere, geprimte Nozzles für alle genutzten Extruder – bevor der eigentliche Druck beginnt.
Voraussetzung: Paxx12 Firmware
Um die Makros einzuspielen, braucht ihr die Paxx12 Firmware auf eurem U1 – sie legt einen Extended-Ordner in Klipper an, in dem ihr eigene Konfigurationsdateien ablegen könnt. Dieser Ordner bleibt auch bei Firmware-Updates und Werksreset erhalten (solange ihr ihn nicht manuell löscht).
💡 Ich habe es nicht mit der Standard-Firmware getestet. Theoretisch könnte es auch im Hauptverzeichnis funktionieren – aber ich kann das nicht garantieren.
Schritt 1: Makro in Klipper hochladen
- Ladet die Datei
30_back_purge_macro.cfgherunter → 30_back_purge_macro.cfg – Purge Lines Makro für Snapmaker U1 - Öffnet eure Klipper-Oberfläche (Mainsail oder Fluidd)
- Geht zu Machine (Mainsail) bzw. dem Konfigurationsbereich (Fluidd)
- Navigiert in den Ordner:
Extended → Klipper - Klickt auf Upload File und ladet die
.cfg-Datei hoch - Startet anschließend die Klipper-Firmware neu: Oben auf den Off-Button → Klipper Control → Restart
Schritt 2: Start G-Code im Slicer anpassen
- Öffnet Snapmaker Orca oder OrcaSlicer
- Geht zu Printer Settings → aktiviert oben den Advanced-Modus
- Wechselt zum Reiter Machine G-Code
- Öffnet den Machine Start G-Code
- Scrollt ganz ans Ende – dort findet ihr einen Eintrag auf Chinesisch, der genau eine Purge Line erzeugt
- Löscht diesen Abschnitt (ab dem Kommentar) und ersetzt ihn durch den G-Code Snippet – einfach aus dem Code-Block weiter unten kopieren
Der neue Abschnitt sieht in etwa so aus (für 4 Extruder):
; Purge Line pro benutztem Toolhead
{if is_extruder_used[0]}SM_PRINT_START_LINE_EXTRUDER_0 TEMP={first_layer_temperature[0]}{endif}
{if is_extruder_used[1]}SM_PRINT_START_LINE_EXTRUDER_1 TEMP={first_layer_temperature[1]}{endif}
{if is_extruder_used[2]}SM_PRINT_START_LINE_EXTRUDER_2 TEMP={first_layer_temperature[2]}{endif}
{if is_extruder_used[3]}SM_PRINT_START_LINE_EXTRUDER_3 TEMP={first_layer_temperature[3]}{endif}
Downloads
- 📥 Makro-Datei:
30_back_purge_macro.cfg→ 30_back_purge_macro.cfg – Purge Lines Makro für Snapmaker U1 - 📋 G-Code Snippet für den Slicer → direkt aus dem Code-Block im Post kopieren
Hinweis
Das ist ein Makro, das das Verhalten eurer Maschine verändert – ähnlich wie die Paxx12 Firmware selbst. Ich übernehme keine Garantie, falls etwas schiefläuft. Bei mir funktioniert es einwandfrei. Probiert es aus, aber seid vorsichtig.
Fragen? Einfach in die Kommentare unter dem Video oder hier im Blog.
Das dazugehörige Video
📺 Purge Lines ans Ende der Druckplatte auf YouTube ansehen
🔄 Update 24.05.2026 – Wichtige Korrektur vom Start G-Code
Community-Mitglied Michael (@krebs3D) hat einen wichtigen Bug im Start G-Code aus Schritt 2 gefunden: Wenn der Druck nicht mit Extruder 0 beginnt (z.B. mit Extruder 2 oder 3), wird die Purge Line trotzdem zuerst mit Extruder 0 gestartet – der zu diesem Zeitpunkt noch kalt ist. Klipper blockiert dann mit der Fehlermeldung “extruder below minimum temp”.
Michaels Lösung: Alle verwendeten Extruder werden zuerst gleichzeitig vorgeheizt (M104, nicht-blockierend), dann sequenziell gepurgt (M109, blockierend), und erst danach startet der eigentliche Druck mit dem korrekten Start-Extruder. @lucaslehmann794 hat den Fix bereits bestätigt: funktioniert einwandfrei. Danke an Michael! 🙏
Ersetzt den G-Code aus Schritt 2 durch diesen vollständigen Abschnitt:
; ==========================================
; STEP 1: ALLE BENÖTIGTEN EXTRUDER PARALLEL VORHEIZEN
; ==========================================
{if is_extruder_used[0]}
M104 T0 S{first_layer_temperature[0]}
{endif}
{if is_extruder_used[1]}
M104 T1 S{first_layer_temperature[1]}
{endif}
{if is_extruder_used[2]}
M104 T2 S{first_layer_temperature[2]}
{endif}
{if is_extruder_used[3]}
M104 T3 S{first_layer_temperature[3]}
{endif}
; ==========================================
; STEP 2: SEQUENTIELLES PURGEN (WARTEN AUF ENDTEMPERATUR PRO TOOL)
; ==========================================
{if is_extruder_used[0]}
M109 T0 S{first_layer_temperature[0]}
T0
SM_PRINT_START_LINE_EXTRUDER_0 TEMP={first_layer_temperature[0]}
{endif}
{if is_extruder_used[1]}
M109 T1 S{first_layer_temperature[1]}
T1
SM_PRINT_START_LINE_EXTRUDER_1 TEMP={first_layer_temperature[1]}
{endif}
{if is_extruder_used[2]}
M109 T2 S{first_layer_temperature[2]}
T2
SM_PRINT_START_LINE_EXTRUDER_2 TEMP={first_layer_temperature[2]}
{endif}
{if is_extruder_used[3]}
M109 T3 S{first_layer_temperature[3]}
T3
SM_PRINT_START_LINE_EXTRUDER_3 TEMP={first_layer_temperature[3]}
{endif}
; ==========================================
; STEP 3: ZURÜCK ZUM START-EXTRUDER FÜR DEN DRUCK
; ==========================================
M109 T{initial_extruder} S{first_layer_temperature[initial_extruder]}
T{initial_extruder}
G90
M106 S0
; ==========================================
Leave a Reply