Druckunterbrechung für Einlage einer Mutter

Na, ich hab mir einfach vor meinem geistigen Auge einen strahlenden Xare vorstellt und dann die entsprechenden Befehle in den Code reingeschrieben. Ach so, du willst wissen, welche. ;)

Also, Vorgehensweise:

1. Du erzeugst die Druckdatei wie gewohnt mit den Einstellungen im Plugin, also in dem Zustand, wie du sie mir gestern geschickt hast. Durch die Eingaben im Plugin wird dann der Code für die Druckpause reingeschrieben, nur eben mit dem Fehler, der die Wiederaufnahme des Drucks verhindert.

2. Du öffnest die .gcode-Datei mit einem Texteditor (Word Pad, TextEdit etc. - bitte NICHT mit einem Textverarbeitungsprogramm wie Word oder so; wichtig ist, dass der Dateiinhalt auch nach dem Speichern reiner Text bleibt, ohne irgendwelche Formatierungen, Header oder dergleichen).

3. Mit der Suchfunktion des Programms suchst du nach "pause" (ohne Anführungszeichen). Du findest dann solch eine Codepassage:

Code:
;added code by post processing
;script: PauseAtHeight.py
;current layer: 40
M83 ; switch to relative E values for any needed retraction
G1 F1500 E-5
G1 F300 Z9.2 ; move up a millimeter to get out of the way
G1 F9000 X120 Y120
G1 F300 Z15 ; too close to bed--move to at least 15mm
M104 S205 ; standby temperature
[B]M0; Do the actual pause[/B]
M109 S205 ; resume temperature
G1 F1500 E5
G1 F199.998 E2
G1 F1500 E-5
G1 F300 Z9.2
G1 F9000 X8 Y8
G1 F300 Z8.2 ; move back down to resume height
G1 F1500 E5
G1 F2400 ; restore extrusion feedrate
M82 ; switch back to absolute E values
G92 E629.68892

Die fette Hervorhebung ist von mir; diese Zeile (M0) ist die einzige, die uns interessiert. Da hat das Plugin nämlich eine Eingabe unterschlagen: Der Befehl M0 allein weist nämlich den Drucker an, solange zu pausieren, bis der Benutzer eine Taste drückt. Die von dir eingegebene Wartezeit von 15 Sekunden wird vom Plugin nicht gesetzt. Wäre ja eigentlich sogar optimal: Drucken bis Pause, Mutter einlegen, Taste drücken, weiterdrucken. Problem: Der Anycubic hat keine Taste, müsste also eine auf dem Touchscreen emulieren. Macht er aber nicht. Also muss zwingend die Wartezeit in den Code geschrieben werden, damit es nach der Pause wieder weitergeht. Für eine Wartezeit von 15 Sekunden bedeutet das, dem Befehl MO den Parameter S mit dem Wert 15 anzufügen:

Code:
M0 S15; Do the actual pause

Bitte genau so wie dargestellt, also mit Leerzeichen vor dem S und ohne Leerzeichen zwischen S und 15. Natürlich kannst du den Wert nach Belieben variieren, also für entsprechend andere Wartezeiten z.B. S10 oder S20 eingeben.

4. Jetzt wirfst du noch einen Blick auf den Code unmittelbar oberhalb der "added code"-Zeile: Da müsste in geringem Abstand oberhalb eine Zeile wie diese stehen:

Code:
;TIME_ELAPSED:961.927575

Das ist die vom Slicer berechnete Druckzeit in Sekunden (zuzüglich Aufwärmen und Homing), die bis zum Ausführen des Pausenscripts vergangen sein wird. Im Beispiel 962 Sekunden, also 16 Minuten 2 Sekunden. Diese Zeit merkst oder notierst du dir, damit du beim Druck später nicht schon Minuten vorher vor dem Drucker lauern musst.

5. Danach speicherst du die Datei und fütterst den Drucker damit. Komforthalber startest du bei Druckbeginn einen Timer (im 16-Minuten-Beispiel würde ich den auf 14 Minuten setzen), und wenn der piept, bewegst du dich zum Drucker, um im passenden Moment die Mutter einzulegen.
Der Drucker druckt dann nach dem Pausenende automatisch fertig, und du hast dein Teil mit eingelegter Mutter.

Ja, das wars auch schon...

Tschöö
Stephan
 

wersy

User
Der Michael hat auf jeden Fall den siebten Sinn, nämlich den Altersstarrsinn. :p Dass man damit Drucker anhalten kann, ist allerdings eine ungefähr genauso nutzlose Superkraft wie die Fähigkeit, den Zapfenstreich aus der Achselhöhle zu quietschen - man weiß nie, wofür das mal gut ist, aber wahrscheinlich für gar nichts. ;)

Gegen diese "Fähigkeit" scheint mein aber Eigenbau immun zu sein.
Nur vom Hinschauen ist der in 7 Jahren nicht stehen geblieben – und ich kann gar nicht sagen, wie lange ich den schon hypnotisiert habe…
Übrigens, der JGAurora ist jeweils nach x null gefahren, ohne Option, den Druck fortsetzen zu können.

Sicherheitshalber hypnotisiere ich den jetzt nur mit der Webcam, und besuche ihn im Keller erst, wenn er fertig ist ;)
 

Xare

User
Hallo Stephan,

mit dem Originalteil, in dem die Mutter rein soll, bin ich schon etwas weiter gekommen. Nur scheint was mit der Höhe nicht zu stimmen, da muß ich meine Zeichnung mal genau kontrollieren. Beim Mutter reinpopeln hat sich das Teil vom Heizbett gelöst. Aber er hat dann weiter versucht zu drucken, wenn ich ihm nicht den Strom abgesperrt hätte. Es funzt aber den Fehler muß ich noch suchen. Heute aber nicht mehr, es gibt was zum Essen. Ist auch wichtig.
Ich hoffe Dein erster Flugtag gestern war erfolgreich und ich werde berichten wenn ich erfolgreich bin oder nochmals Hilfe brauche.

ein mit Dank sich tief verneigender
Xare
 

Xare

User
Hallo Stephan,

der sich bereits tief vor Dir verneigte Xare hat nun endlich ein breites Grinsen, so breit, daß keine Corona-Maske mehr funktioniert.
Es hat ganz schön lange gedauert. Ja die eigenen Fehler zu finden ist immer das Schwierigste. Zuerst hat er mir in der Aussparung für die Mutter immer was reingedruckt was vorher nicht war. Bis ich draufgekommen bin, daß ich zwischendurch mir unbedingt eine kleine Malerwanne für eine kleine Schaumgummiwalze zeichnen und drucken mußte. Der Tränkbereich hat natürlich eine Schräge und da muß unbedingt eine Stützstruktur .... OK Funktion gelöscht und neu probiert. Läuft wunderbar - Druck unterbricht - Mutter wird eingelegt - nix mehr geht. Ja was ist denn das??? Es ist halt manchmal ein großer Unterschied zwischen "s" und "S" . Bei dem Code: M0 s15; Do the actual pause" war einfach das "s" zu klein.

Ein dickes Dankeschön nochmals
vom
Mutterreinlegendrucker :D
Xare
 
Gegen diese "Fähigkeit" scheint mein aber Eigenbau immun zu sein.
Nur vom Hinschauen ist der in 7 Jahren nicht stehen geblieben – und ich kann gar nicht sagen, wie lange ich den schon hypnotisiert habe…
Übrigens, der JGAurora ist jeweils nach x null gefahren, ohne Option, den Druck fortsetzen zu können.
Mir ist gestern tatsächlich zweimal der Prusa unter Hypnose erstarrt, allerdings auf sehr seltsame Weise: Bei der Wiederholung eines Druckjobs, der vorher schon erfolgreich gelaufen war, hat er beim Wiederholungsversuch jeweils den Skirt ganz normal und sauber gedruckt, dann aber mit dem Druckbeginn des eigentlichen Objekts einfach das Extrudieren und nach einigen Sekunden "leerer" Druckfahrt dann jegliche Aktivität eingestellt und einfach gewartet (worauf?). Da ich aber in meine eigenen telekinetischen Fähigkeiten nicht das geringste Vertrauen habe, verzichte ich auf den Gegentest "ohne Sicht" und nehme lieber den Extruder auseinander...

Bis ich draufgekommen bin, daß ich zwischendurch mir unbedingt eine kleine Malerwanne für eine kleine Schaumgummiwalze zeichnen und drucken mußte. Der Tränkbereich hat natürlich eine Schräge und da muß unbedingt eine Stützstruktur .... OK Funktion gelöscht und neu probiert.
U.a. wegen sowas habe ich mir angewöhnt, jeden Druckjob als 3MF zu speichern. So hat jedes Objekt seine eigenen Einstellungen, und ich kann die für andere Objekte reproduzieren, indem ich einfach das 3MF öffne, das alte Objekt rausschmeiße und das neue reinlade.
Bei dem Code: M0 s15; Do the actual pause" war einfach das "s" zu klein.
Schau mal an, den kannte ich noch nicht. Hatte nach deinem vorletzten Posting schon die Befürchtung, dass die Haltekraft des Betts nicht reicht, um die Mutter einzulegen - da wärst du mit dem Anycubic nämlich ziemlich in den Popo gepickt, weil man da ja keinerlei Haftvermittler benutzen kann; da hätte dann nur noch ein Brim geholfen. Aber was lange währt...

In diesem Sinne: Bitteschön - ich liebe es, wenn ein Plan funktioniert. ;)

Tschöö
Stephan
 
Ansicht hell / dunkel umschalten
Oben Unten