Jump to content

out of printing area...?


Leporello

Recommended Posts

Posted (edited) · out of printing area...?

Hallo zusammen,

 

ich würde gerne den 3D Druck etwas automatisieren und habe dieses tolle video gefunden:

 

in den ersten Sekunden sieht man schon was ich erreichen möchte.

 

Ich selber habe zwar einen Ultimaker 2+ aber sollte ja auch funktionieren.

Nun habe ich auch eine Art Auswurfbewegung in den gcode geschrieben. Die Bewegung

sieht so aus:

 

 

G0 X110 Y180 Z125 F500; fährt Druckkopf nach hinten
G4 P10000; pausiert Druck für 10 Sekunden
G0 X110 Y180 Z80 F500; fährt Druckkopf runter

G0 X110 Y10 Z80 F8000; Auswurf

 

Aber wenn ich das zu druckende Modell hinzufüge, welches ja durch den Rausschiebevorgang

mit dem Printhead kollidieren soll, bekomme ich die Fehlermeldung "out of print area"

und der Druck bricht ab. Kann es sein dass die Meldung also auch bei Kollisionen kommt? Komisch nur

dass das in dem Video nicht so ist und funktioniert? Wäre über jeden Tipp sehr dankbar

 

 

Edited by Leporello
  • Link to post
    Share on other sites

    Posted (edited) · out of printing area...?

    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 Falko
  • Link to post
    Share on other sites

    Posted · out of printing area...?

    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?

     

  • Link to post
    Share on other sites

    Posted · out of printing area...?

    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.

  • Link to post
    Share on other sites

    Posted · out of printing area...?

    Ok... dann ziehe ich meins zurück

  • Link to post
    Share on other sites

    Posted · out of printing area...?

    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...

     

     

  • Link to post
    Share on other sites

    Posted · out of printing area...?

    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ß

  • Link to post
    Share on other sites

    Posted · out of printing area...?

    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

     

  • Link to post
    Share on other sites

    Posted · out of printing area...?

    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ß

  • Link to post
    Share on other sites

    Posted (edited) · out of printing area...?

    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 Leporello
  • Link to post
    Share on other sites

    Posted · out of printing area...?

    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ß

  • Link to post
    Share on other sites

    Posted (edited) · out of printing area...?
    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
    • Like 1
    Link to post
    Share on other sites

    Posted · out of printing area...?

    "...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#

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • Introducing the UltiMaker Factor 4
        We are happy to announce the next evolution in the UltiMaker 3D printer lineup: the UltiMaker Factor 4 industrial-grade 3D printer, designed to take manufacturing to new levels of efficiency and reliability. Factor 4 is an end-to-end 3D printing solution for light industrial applications
        • 3 replies
      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
        • 26 replies
    ×
    ×
    • Create New...