oh ja interessanter thread. Das mit dem Runterkühlen der Druckplatte kann ich über
M140 S0; Befehl Druckbett soll auf 0 runterkühlen und Druck währenddessen fortsetzten,
steuern. Wenn er ca.20min vor Druckende anfängt die
Betttemperatur gegen 0 zu fahren, lässt sich das Modell einfach runterschubsen.
Aber meine Frage bleibt leider trotzdem: Gibt der Drucker "out of print area" aus wenn Kollision
droht oder kommt diese Meldung tatsächlich nur wenn er die Maße des Druckbetts verlässt?
Also das was du vor hast, funktioniert in der Praxis gar nicht einmal so schlecht. Ich habe das auch schon gemacht, wo ich einen Batch von gleichen Teilen gedruckt habe - auch auf einem UM2.
Wichtig ist, dass du das Bett abkühlst, ich habe nach dem Druck eine Pause eingefügt, wo der Drucker dann einfach 10 Minuten oder so gewartet hat. Dann habe ich das Teil mit dem Druckkopf weggeschoben. Ich habe leider den GCode von damals nicht mehr, aber ich habe das händisch gemacht. Also ein Teil gesliced, dann im Texteditor die Warte und "Eject" Passage hinzugefügt und dann das ganze einfach dupliziert und hintereinander zusammengefügt.
27 minutes ago, Leporello said:Aber meine Frage bleibt leider trotzdem: Gibt der Drucker "out of print area" aus wenn Kollision
droht oder kommt diese Meldung tatsächlich nur wenn er die Maße des Druckbetts verlässt?
Nein, die Meldung kommt nur wenn du das Druckbett verlässt, eine Kollision wird nicht erkannt. Es gibt eine einzige Ausnahme, wenn du mehrere Teile nicht gleichzeitig, sondern hintereinander druckst, dann erkennt Cura schon ob sich das noch ausgeht bzgl. Höhe und auch ob der Drucker mit dem Druckkopf noch durchkommt. Aber wie gesagt, das ist nur dann wenn du die Option gewählt hast und mehrere Teile auf einmal am Druckbett hast.
Ok... dann ziehe ich meins zurück
Hallo Smithy,
ja das mit der dem Start des Runterkühlens habe ich auch schon per Texteditor
in den gcode eingefügt. Wenn der Druck dann fertig ist hat er schon ganz gut
runtergekühlt. Dann lasse ich den Druckkopf noch etwas warten bevor er
nach vorne fahren soll um das Teil rauszuschieben.
Ausschnitt gcode:
...
...
G1 F819.3 X110.998 Y107.532 E8.52522
G1 X113.72 Y107.532 E8.5552
G1 X113.922 Y107.578 E8.55748
G0 F7200 X113.81 Y107.553
;TIME_ELAPSED:34.642218
G1 F1500 E2.05748; FERTIG mit Druck erstes Teil
G0 X110 Y180 Z125 F500 ; Druckkopf fährt nach hinten
G4 P10000; pausiert Druck für 10 Sekunden
G0 X110 Y180 Z80 F500; Druckkopf fährt nach unten
G0 X110 Y10 Z80 F8000; Druckkopf soll nach vorne fahren für Auswurf
M140 S0
M107
M82 ;absolute extrusion mode
M104 S0
;End of Gcode
;SETTING_3 {"extruder_quality": ["[general]\\nversion = 4\\nname = Fine #2\\ndef
;SETTING_3 inition = ultimaker2_plus\\n\\n[metadata]\\nsetting_version = 9\\npos
;SETTING_3 ition = 0\\ntype = quality_changes\\nquality_type = normal\\n\\n[valu
;SETTING_3 es]\\ninfill_pattern = concentric\\ninfill_sparse_density = 100\\nmat
;SETTING_3 erial_print_temperature = 220\\nskirt_line_count = 3\\n\\n"], "global
;SETTING_3 _quality": "[general]\\nversion = 4\\nname = Fine #2\\ndefinition = u
;SETTING_3 ltimaker2_plus\\n\\n[metadata]\\nsetting_version = 9\\ntype = quality
;SETTING_3 _changes\\nquality_type = normal\\n\\n[values]\\nadhesion_type = skir
;SETTING_3 t\\nlayer_height = 0.2\\n\\n"}
; hier beginnt Druck des 2. Teils
;FLAVOR:Marlin
;TIME:34
;Filament used: 0.00855748m
;Layer height: 0.2
;MINX:103.708
...
....
Vielleicht muss ich die 4 Auswurfzeilen nach dem END of gcode setzten
um das "out of printing area" zu vermeiden? Dann brauche ich vielleicht noch einen
Befehl um das Filament wärende des Wartens minimal einzuziehen...
zerspaner_gerd 383
Hallo,
On 9/22/2022 at 4:39 PM, Leporello said:Vielleicht muss ich die 4 Auswurfzeilen nach dem END of gcode setzten
um das "out of printing area" zu vermeiden?
Nein, ich würde alles dazwischen schreiben sodass es nur einmalig am ende der Datei vorhanden ist
Und zusätzlich würde ich den Programm Kopf auch nur einmal, also am Anfang der Datei behalten, und auch nicht mit kopieren.
Soweit ich weiß liest die Firmware daraus etwas und wenn das zweimal vorhanden ist wer weis was da passiert
Wenn du dann immer noch den Fehler bekommst würde ich dir vorschlagen du lädst mal den ganzen umgeschriebenen gcode Hoch statt diese Schnipsel.
Der Fehler kommt nur wenn der Drucker Werte ließt die außerhalb des Druckbereichs liegen, das kann aber auch vorkommen wenn man mit unterschiedliche Kodierungen etc. den gcode ändert/speichert und dann entstehen irgendwelche Hieroglyphen die der Drucker dann weglässt und den Rest dann zusammenfügt z.B. X10 Y200 entsteht dann X10200.
Gruß
funktioniert jetzt alles soweit. 🙂 Weiß jemand wie ich die Wiederholung (ingesammt 26x) als Loop programmieren kann. Würde sehr ungern den gcode 26x kopieren, da große Datei und später unübersichtlich.
Habe es so probiert aber der Drucker ignoriert das scheinbar:
M808 L26; Startmarker Loop, habe ich direkt ab den Beginn des gcodes gesetzt. L26 steht für 26 Wiederholungen...
.....
....
....; hier passiert Druck und dann Auswurf des 2. Teils
M808; Endmarker Loop
Kann es sein dass Ultimaker den code nicht unterstützt? Oder vielleicht habe ich was vergessen? Würde mich über einen Tipp sehr freuen. Vielleicht gibt es ja auch eine Alternative....
@zerspaner_gerd:
Vielen Dank auch für deine Antwort! Habe es schon hinbekommen, nur die Wiederholungen würde ich jetzt gern noch
irgendwie eleganter einbauen als den kompletten code immer hintereinader zu kopieren....
Grüße,
Leporello
zerspaner_gerd 383
Und was war die Ursache von den Fehler.
1 hour ago, Leporello said:M808 L26; Startmarker Loop, habe ich direkt ab den Beginn des gcodes gesetzt. L26 steht für 26 Wiederholungen...
Kann mir nicht vorstellen das die veraltetet UM Firmware so was kann
Ich kann mir höchstens vorstellen das die oben genannte Variante (siehe geteilter Link) evtl. funktionieren kann.
Somit Brauchst du nur ein Haupt Programm wo evtl. auch das abkühlen und runterschieben enthält und dann nur mit M32 das "Unter Programm" wo das Teil dann jeweils druckt.
Somit braucht du nur 26mal eine Zeile kopieren
Ich kann mir vorstellen das einer der Befehle geht (M32 oder M24, M23)
https://reprap.org/wiki/G-code#M32:_Select_file_and_start_SD_print
Da an die alten UM2 auch mit raspberry mit Octoprint gesteuert werden kann muss es da ja Befehle geben, Bin ich der Meinung.
Du wirst es nur durch Testen herausfinden
Gruß
hi zerspaner_gerd,
so hat es funktioniert. Sorry sind noch viele Kommentare im gcode, daher etwas unübersichtlich.
Das grün markierte ist ja eigentlich auch nur ein Kommentar, aber scheint für den Speicher wichtig
zu sein. Vielleicht klappt es jetzt weil ich die Auswurfzeilen dahinter gesetzt habe...
Nur das mit dem Loop scheint einfach nicht zu klappen. Weder M32, M23, M24. Wie würdest du ihn
schreiben? Ich wundere mich auch etwas warum es da so viele Befehle für ein und dieselbe Aktion
gibt?
G1 F1500 E1022.92777
G1 F1200 X115.133 Y57.561 E1022.94066
G0 F7200 X115.083 Y57.64
;TIME_ELAPSED:9885.736250
G1 F1500 E1016.44066 ; Druckende erstes Teil
;M107; schaltet Lüfter aus
;M104 S0 ;extruder heater off
;M140 S0 ;heated bed heater off (if you have it)
G91 ;relative positioning
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more
G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way
;M84 ;steppers off
G90 ;absolute positioning
;Version _2.6 of the firmware can abort the print too early if the file ends
;too soon. However if the file hasn't ended yet because there are comments at
;the end of the file, it won't abort yet. Therefore we have to put at least 512
;bytes at the end of the g-code so that the file is not yet finished by the
;time that the motion planner gets flushed. With firmware version _3.3 this
;should be fixed, so this comment wouldn't be necessary any more. Now we have
;to pad this text to make precisely 512 bytes.
M82 ;absolute extrusion mode
M104 S80; Extruder auf Temperatur 80
G0 X100 Y180 Z125 F500; Druckkopf fährt nach hinten
G1 E-2 F300 ;Rückzug Filament um 2mm
G4 P180000; pausiert Druck für 3 Minuten
G0 X100 Y180 Z80 F500; Druckkopf fährt etwas nach unten
G0 X100 Y10 Z80 F9000; Druckkopf fährt nach vorne, Auswurf
;End of Gcode
; hier wird dann der komplette gcode kopiert um das 2. Teil zu starten. Loop geht ja leider noch nicht
Edited by Leporellozerspaner_gerd 383
M32 etc. ist jetzt keine Schleife etc. sondern nur ein Aufruf.
Ich würde es so versuchen
Eine Schleifen Funktion wird es bei Ultimaker Firmware nicht geben (persönliche Einschätzung)
M32 test_haupt.gcode
M104 S80; Extruder auf Temperatur 80
G92 E0 ; zero the extruded length
G0 X100 Y180 Z125 F500 ; Druckkopf fährt nach hinten
G1 E-2 F300 ;Rückzug Filament um 2mm
G4 P180000 ; pausiert Druck für 3 Minuten
G0 X100 Y180 Z80 F500 ; Druckkopf fährt etwas nach unten
G0 X100 Y10 Z80 F9000 ; Druckkopf fährt nach vorne, Auswurf
M32 test_haupt.gcode
...........
Ich würde halt im Dateiname auf jedenfalls keine Leerzeichen, Sondern oder umlaute schreiben, somit wäre schon eine Fehler Quelle ausgeschlossen
Und diesen Block müsste halt dann 26mal kopiert werden
Aber leider basiert die UM Firmware halt nur auf Marlin, somit weis man nie wie was übernommen wurde oder halt nicht.
Und eine Dokumentation seitens Ultimaker kenne ich auch nicht.
Das wirst du nur durch Probieren herausfinden oder halt 26x Kopieren.
Du musst auch mit den G91 Inkremental bzw. G90 Absolut Positionierung Aufpassen Solltest du aus versehen das G90 gelöscht haben werden deine X100 Y180 Inkremental zu der aktuellen Position dazugerechnet, da wird vermutlich auch out of printing area.. auslösen.
Des weiteren musst du auch mit die E-Werte aufpassen,
Du stehst bei Zeile:
G1 F1500 E1016.44066 ; Druckende erstes Teil
Bei E1016.44
Und die nächste Zeile ist dann:
G1 E-2 F300 ; Rückzug Filament um 2mm
Dir sollte somit das ganze Filament von E1016.44 auf E-2 zurück gedreht werden, soweit ich nichts übersehe.
Das kann man mit
G92 E0 ; zero the extruded length
vermeiden
Eine Andere Idee zum Testen
Du könntest mal deinen Drucker mal mit USB verbinden und dann mit einer Konsole (Pronterface, S3D etc.) die M-Befehle versuchen.
So bekommst du womöglich direkt eine Fehlermeldung das vielleicht M-Befehle gar nicht gibt oder nur die Schreibweise falsch ist.
In den anderen verlinkten Thread steh ja auch ein P vor den Dateiname, das kenne ich aber nur von RepRap Firmwaren.
Mein UM2 ist auch Firmware Technisch umgebaut, sonst würde ich auch kurz mal Testen
Gruß
tinkergnome 927
23 hours ago, zerspaner_gerd said:Somit Brauchst du nur ein Haupt Programm wo evtl. auch das abkühlen und runterschieben enthält und dann nur mit M32 das "Unter Programm" wo das Teil dann jeweils druckt.
Somit braucht du nur 26mal eine Zeile kopieren
Gute Idee, aber so klappt's leider nicht. Die 8kB "Hauptspeicher" sind nicht viel, deshalb ist immer nur eine Datei geöffnet.
D.h. nach dem Öffnen einer anderen Datei wird nicht wieder in die ursprüngliche Datei zurückgekehrt.
Man könnte höchstens am Ende der gcode-Datei Befehle einfügen, die die gleiche Datei wieder neu starten.
Dann hätte man immerhin eine Endlosschleife, aber keinen Zähler.
Oder man braucht wieder (z.B.) 26 Kopien der gcode-Datei, wird kreativ mit den Dateinamen und fügt am Ende jeweils nur zwei Zeilen ein, die die jeweils nächste Datei starten? 🤷♂️
M32 kennt der UM2 übrigens nicht, es ginge aber wahrscheinlich mit der "klassischen" Kombination von M23 und M24
Zusatz: wenn ich das richtig sehe, funktionieren alle relevanten GCodes nur mit den kurzen 8.3 Dateinamen aus der DOS-Welt (falls das noch jemand kennt... 🙂)
Also: kurze Dateinamen sind angesagt, wenn jemand damit experimentieren möchte!
59 minutes ago, zerspaner_gerd said:Aber leider basiert die UM Firmware halt nur auf Marlin, somit weis man nie wie was übernommen wurde oder halt nicht.
Und eine Dokumentation seitens Ultimaker kenne ich auch nicht.
Für den UM2(+) ist der komplette Firmware-Quelltext immerhin öffentlich. Besser als raten ist das auf jeden Fall. 🙂
https://github.com/Ultimaker/UM2.1-Firmware/blob/UM2.1_JarJar/Marlin/Marlin_main.cpp#L1241
Edited by tinkergnome
- 1
GregValiant 1,410
"...all relevant GCodes only work with the short 8.3 file names from the DOS world..."
That's the way it works on my Ender.
The line below works on my printer. The file is called and upon completion command returns to the calling file.
M32 P !MAIN~1.GCO#
Recommended Posts
Falko 45
Ich kann dir da eigentlich nicht helfen. Wenn du es aber zustande bringst, läufst du wahrscheinlich eher Gefahr dir den Printhead, die Stepper oder Glasplatte zu zerschießen. Wenn das Modell zu fest ist, rennt der Kopf im Grunde die ganze zeit gegen die Wand. Das kann mit Glück nur ein Error auf der XY-Achse geben, oder er macht immer weiter. Mit dem Problem hat sich einer meiner Drucker am Ende verabschiedet. Hört sich dann an wie ein Presslufthammer.
Auch wenn es klappen sollte, wird nach dem Xten mal auf der gleichen Stelle drucken nix mehr richtig haften und du musst erstmal alles sauber machen. Bei der Drahtbürste wird nach dem dritten oder vierten mal wahrscheinlich auch mehr, von davor, hängen bleiben als ab gehen.
Das Video ist einfach nur irgendwelcher Spielchen Content um halt irgendwas neues ins Netz zu stellen. Praktisch macht es wahrscheinlich weniger Sinn als einfach parallel zu drucken.
Edited by FalkoLink to post
Share on other sites