Jump to content
Ultimaker Community of 3D Printing Experts
mmuellerphoto

Timelapse mit Ausloeseknopf ...

Recommended Posts

Hallo zusammen!

 

Ich bin seit Ende letzten Jahres stolzer Besitzer eines UM2+ möchte gerne ein Timelapse Video erstellen. GoPro am Druckbett gefällt mir nicht, daher habe ich mich mal im Netz umgesehen und bin auf eine nette Variante mit "manuellem Auslöser" gestoßen. Als Software verwende ich Simplify 3D, der UM hängt über USB am Rechner.

 

Ich möchte nach jedem Layer mit meinem Druckkopf zum Auslöser fahren, auslösen, dann munter weiter drucken ... Meine bisherigen Fortschritte:

- Auslöser ist gebastelt

- Trockentests mit manuell eingegebenen GCodes funktionieren.

 

In Simplify 3D gibt es ja einen Scriptbereich der angegebene Codes nach jedem Layer durchführt - genau was ich brauche. Dort habe ich folgenden Code eingetragen inkl. Erklaerungen was ich mir dabei gedacht habe:

G1 E-[retract_distance] F[retract_speed] ; retract filament mit den werten aus den jeweiligen Einstellungen
G91 ; relative Position aktivieren
G1 Z1 ; Bett 1mm absenken um die vorhanden Layer nicht zu beruehren
G90 ; absolute Position aktivieren
G1 X223 Y218 F9000 ; schnell zum Ausloeser fahren
G1 Y223 F5000 ; Ausloesen
G1 Y218 F5000 ; Ausloesen fertig
G1 X[next_position_x] Y[next_position_y] F9000; zur nachsten Postion um zu weiter drucken

Im GCode sieht das nach dem Export bei mir z.B. so aus (nach ; layer2, ... kommen meine Anpassungen):

...
G1 X106.229 Y129.988 E10.6138
G1 X105.512 Y129.271 E10.6249
G1 X105.512 Y129.404 E10.6264
G1 X105.512 Y129.950 F1224
G1 X105.550 Y129.988
; layer 2, Z = 0.300
G1 E-8.0000 F1500 ; retract
G91 ; relative Position aktivieren
G1 Z1 ; Bett 1mm absenken
G90 ; absolute Position aktivieren
G1 X223 Y218 F9000 ; schnell zum Ausloeser fahren
G1 Y223 F5000 ; Ausloesen
G1 Y218 F5000 ; Ausloesen fertig
G1 X105.200 Y130.300 F9000; zurueck zum weiter drucken
M106 S255
G4 P500
M106 S191
; feature inner perimeter
G1 Z0.300 F1002
G1 X105.200 Y130.300 F6000
G92 E0.0000
G1 X105.200 Y92.700 E0.4116 F3060
G1 X117.800 Y92.700 E0.5496
G1 X117.800 Y130.300 E0.9612
G1 X105.800 Y130.300 E1.0926
G1 X105.200 Y130.300 F3060
G1 X104.720 Y130.780 F6000
...

Das Problem das ich jetzt habe: obwohl "mein" Retraction Befehl genau so aussieht wie der den S3D erzeugt, zieht der UM das Filament nach dem ersten Layer mehrere cm zurueck! Ich nahme mal an 8cm!? Habs jetzt nicht gemessen ... Die "normalen" Reatraction Befehle werden trotz gleichem Code korrekt ausgeführt. Habe ich irgendwas übersehen? Muss vor ...

G1 E-8.0000 F1500

... noch was, damit die Retraction wie "im Layer auch" durchgefuehrt wird?

Zur Veranschaulichung noch ein paar Bilder wie das bei mir aussieht.

 

Vielen Dank vorab für Eure Mühe!

 

Viele Grüße,

 

 

Micha ...

bild_524.jpg

bild_525.jpg

bild_526.jpg

Share this post


Link to post
Share on other sites

Hallo Micha,

 

1 hour ago, mmuellerphoto said:

Habe ich irgendwas übersehen?

 

Ja, das

G92 E0

Aber wenn das nach dein Script nicht mit G92 E0 von S3D weiter geht (weis nicht ob jeder Layer wie in dein Beispiel der Fall ist) wirst du einen klecks erhalten!

Vielleicht würde sich M83/M82 besser eignen

https://reprap.org/wiki/G-code#M82:_Set_extruder_to_absolute_mode

 

Script Anfang M83, Script Ende wieder auf M82 (was auch am gcode Anfang drin steht)

 

Aber mal eine frage gibt es da keine Software dafür.

Wenn man da mit den Druckkopf rumfährt wird das doch höchstwahrscheinlich deine druck Qualität etwas senken + Druckzeit erhöhen + ein Retract mehr!

 

Gruß

Gerd

  • Like 1

Share this post


Link to post
Share on other sites

Danke für Dein Feedback!

 

11 hours ago, zerspaner_gerd said:

Ja, das


G92 E0

 

 

Das habe ich vermutet, aber als ich das in mein Script eingebaut hatte ist irgendwas "komisches" am Anfang passiert was ich nicht zuordnen konnte und habe es wieder verworfen.

 

11 hours ago, zerspaner_gerd said:

Vielleicht würde sich M83/M82 besser eignen

https://reprap.org/wiki/G-code#M82:_Set_extruder_to_absolute_mode

 

Script Anfang M83, Script Ende wieder auf M82 (was auch am gcode Anfang drin steht)

 

Das schaue ich mir auch nochmals an ... den M82 hatte ich nicht auf dem Schirm. habe da noch grundsätzliche Verständnisprobleme wie und wann man relative und wann absolute Werte setzt und nicht setzte bzw. was wann als Wert angenommen und wann ausgeführt wird. Beschäftige mich ja auch erste seit gut einem Monat mit der ganzen Materie.

 

Denke ich komme auf keinen Fall um eine manuelle Anpassung des GCodes nach dem Exportdrumrum. Hatte / Habe die Hoffnung das alles schön automatisch an den UM zu schicken, direkt über USB, ohne vorher im Code zu editieren.

 

Leider scheint es in S3D aber noch keine Funktion zu geben wie "IF LAYER = 1 THEN TU DIES UND DAS ELSE MACH WAS ANDERES".

 

11 hours ago, zerspaner_gerd said:

Aber mal eine frage gibt es da keine Software dafür.

Wenn man da mit den Druckkopf rumfährt wird das doch höchstwahrscheinlich deine druck Qualität etwas senken + Druckzeit erhöhen + ein Retract mehr!

 

Sicherlich gibt es Software um Timelapse zu erstellen. Auch mit Ghosting und Kram. GoPro und Co machen das ja auch voll automatisch, aber ich mag halt nicht den Druckkopf ständig im Bild haben. Aufgrund der Lernkurve, die ich damit steigern möchte, ist mir die Qualität erst einmal nicht sooo wichtig. Ausserdem möchte ich ja nicht von jedem Druck ein Timelapse Video erstellen, sondern nur bei Bedarf nach Lust und Laune. Wenn man mal was cooles aufs Druckbett bekommt ... Sozusagen ... ;o)

 

Viele Grüße,

 

Micha ...

Share this post


Link to post
Share on other sites

Dass deine Druckqualität darunter leiden wird denke ich auch, die Vorgangsweise ist nicht wirklich optimal, da würde ich lieber den Druckkopf im Bild in Kauf nehmen.

 

Aber abgesehen davon, finde ich deine Umsetzung ziemlich cool, gefällt mir 🙂 

Share this post


Link to post
Share on other sites
3 minutes ago, Smithy said:

Dass deine Druckqualität darunter leiden wird denke ich auch, die Vorgangsweise ist nicht wirklich optimal, da würde ich lieber den Druckkopf im Bild in Kauf nehmen.

 

Aber abgesehen davon, finde ich deine Umsetzung ziemlich cool, gefällt mir 🙂 

 

Wie gesagt: der Lerneffekt und das eigentliche Video stehen bei der Geschichte im Vordergrund. Dessen bin ich mir bewusst ... Mir gefallen halt solch Videos: Satisfying 3D Print TimeLapse Compilation 7 und ich habe mich gefragt wie die das machen. Sowas weckt der Ehrgeiz in mir das auch zu "können" ... 😉

 

Ich bleib dran!

 

Viele Grüße,

 

Micha ...

Share this post


Link to post
Share on other sites
1 minute ago, Smithy said:

Du solltest aber dann auch auf jeden Fall eine analoge Uhr dazustellen, das schaut dann besonders toll aus.

 

Wenn du dein Setup fertig hast, bitte unbedingt ein Video hier zeigen.

 

Eine analoge Uhr? ... 😲 ... Wo soll ich DIE denn herbekommen!??? ... 😜

 

Wenn alles läuft wie ich mir das vorstelle kommt das Video ganz sicher!

 

Viele Grüße,

 

Micha ...

Share this post


Link to post
Share on other sites
32 minutes ago, tinkergnome said:

 

Höchstwahrscheinich mit der Software-Lösung, die Gerd im Hinterkopf hatte...

 

https://github.com/FormerLurker/Octolapse

 

Danke für den Hinweis ... Ja - scheint zu sein was ich versuche selber zu realisieren. Stolper aber von einem Problem in das nächste ... Schade das Octoprint nicht so wirklich funktionieren wollte bei mir. Jetzt wo ich weiss das es noch eine Firmware gibt die weitaus besser mit meinem UM und Octoprint harmonieren soll wäre das ein Versuch wert.

 

Ich probiere es aber noch weiter mit S3D ... vielleicht finde ich einen Weg!?!

 

Viele Grüße,

 

Micha ...

Share this post


Link to post
Share on other sites
10 hours ago, mmuellerphoto said:

Beschäftige mich ja auch erste seit gut einem Monat mit der ganzen Materie.

.............

das alles schön automatisch an den UM zu schicken, direkt über USB, ohne vorher im Code zu editieren.

 

Ich weiß jetzt nicht obst du den gcode schicken kannst (Octoprint) oder direkt über USB druckst.

Wennst du direkt über USB druckst (z.B. über S3D) ist das nicht ganz so Stabil angesehen,

  1. es können mehrere Geräte Probleme verursachen (PC, Programm, Drucker) die Fehldrucke auslösen können
  2. Drucker kann ins stocken geraten wenn USB Geschwindigkeit nicht ausreicht
10 hours ago, mmuellerphoto said:

habe da noch grundsätzliche Verständnisprobleme wie und wann man relative und wann absolute Werte setzt

 

Man muss auf jedenfalls erstmal schauen in was der gcode geschrieben (relativ/absolut) ist, das wird meist am Anfang des gcode angegeben

 

10 hours ago, mmuellerphoto said:

Leider scheint es in S3D aber noch keine Funktion zu geben wie "IF LAYER = 1 THEN TU DIES UND DAS ELSE MACH WAS ANDERES".

 

Nein gibt es nicht

Aber es gibt noch die Terminal Befehle für Nachbearbeitung (falls du diesen link noch nicht kennst https://forum.simplify3d.com/viewtopic.php?f=8&t=1959)

falls das auch nicht reicht kann man darüber auch z.B. ein Python , C++ oder Perl Script darüber aufrufen

 

23 hours ago, mmuellerphoto said:

M106 S255

G4 P500

M106 S191

 

Wenn ich das richtig sehe hast du die Einstellung "Gibt dem Ventilator seine volle Geschwindigkeit, wenn er aus dem Leerlauf anläuft" aktiviert.

Das ist nicht nötig da diese die Firmware von UM2 übernimmt, und das spart unnötige Verweilzeiten die auch die Druckqualität negativ beeinflussen können.

 

3 hours ago, tinkergnome said:

die Gerd im Hinterkopf hatte...

 

Nöö

Ich hatte nur die unnützen Druckkopf Bewegungen im Hinterkopf

Kannte aber auch solche Videos gar nicht wo der Druckkopf nicht im Bild ist

 

Grüße

Edited by zerspaner_gerd
  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, mmuellerphoto said:

Ich probiere es aber noch weiter mit S3D ... vielleicht finde ich einen Weg!?!

 

Gerd hat Dir ja schon die richtigen Hinweise für das Skript gegeben.

Man kann im Skript nicht rechnen, deswegen musst Du beim retract mit relativen Bewegungen arbeiten:

 

M83
G1 E-[retract_distance] F[retract_speed] ; retract
M82

 

...aber am Ende vom Skript musst Du den Retract auch wieder rückgängig machen, das fehlt irgendwie noch:

 

...
G1 X[next_position_x] Y[next_position_y] F9000
M83
G1 E[retract_distance] F[retract_speed] ; undo retract
M82

Das funktioniert so aber nur (bzw. ist nur notwendig), wenn die gcode-Option "Relative extrusion distances" im "Normalbetrieb" ausgeschaltet ist. Das scheint bei Dir aber der Fall zu sein.

 

 

  • Like 1

Share this post


Link to post
Share on other sites

Vielen Dank Euch für die vielen tollen Tipps! Bin einige Schritte weiter - noch nicht am Ziel, aber eben weiter! Sp sieht mein Ebenen-Wechsel-Script momentan aus ...

G92 E0.0000 ; extrudierten wert zuruecksetzen
M83 ; extruder in relativen mode
G1 E-[retract_distance] F[retract_speed] ; retract
G91 ; relative position aktivieren
G1 Z1 F1001 ; druckbett 1mm absenken
G90 ; absolute position aktivieren
G1 X223 Y210 F9000 ; schnell zum ausloeser fahren
G1 X223 Y223 F1000 ; langsam ausloesen
G1 X223 Y210 F1000 ; ausloesen fertig
G1 X[next_position_x] Y[next_position_y] F9000 ; zurueck zum weiter drucken
G91 ; relative position aktivieren
G1 Z-1 F1001 ; druckbett 1mm anheben
G1 E[retract_distance] F[retract_speed] ; duese wieder fuellen
G90 ; absolute position aktivieren
M82 ; extruder in absoluten mode

Die Druckqualität ist nicht so toll wie bei einem "normalen" Druck, aber zumindest sieht der Druck mittlerweile nach Druck aus. Grösste Herausforderung momentan: Wenn sich die Düse vom Druck - ich das Druckbett absenke, kommt immer noch ein wenig Filament aus der Düse und hinterlässt einen Miniklecks der zu kleinen "Blobs" bzw. Stringing führt, weil das Filament an der Düse hängen bleibt. Bei "solid layer" sind diese dann im Weg, oder werden "irgendwo hin gezogen". Habe den gleichen Druck mit identischen Einstellungen ausser dem Wechsel-Script gemacht und der ist super sauber. Aber wie gesagt ist alles schon wesentlich besser als gestern noch, und solche Probleme waren natürlich zu erwarten.

 

Grundsätzlich habe ich viel bei der Aktion gelernt bisher - auch Dank Eurer Hilfe - und das war ja auch ein Anliegen ... 😉

 

Hier mal wie versprochen ein erster kleiner Versuch: 20190115 h264 720p 25fps - UM2 Timelapse

 

Den GCode hänge ich mal als Attachment an. Mal sehen wann ich Zeit habe weiter dran zu "basteln" ...

 

Viele Grüße,

 

Michael

Retraction_Test_mmp.gcode

Share this post


Link to post
Share on other sites

Na sieht ja schon recht sauber aus. Du könntest noch eine Art Prime Tower daneben drucken, wie beim UM3, also ein Art Dummy Objekt um die Düse abzuputzen. Aber du müsstest das Objekt relativ nahe zum richtigen Objekt drucken damit es Sinn macht, dann hast es aber auch am Video drauf.

 

Und vielleicht kannst du bei deiner GoPro noch die Autobelichtung abschalten, dann müsste das leichte Flackern im Video eigentlich auch weg sein.

Share this post


Link to post
Share on other sites

Hübsch - aber Vorsicht mit dem G92 E0 am Anfang:

  • Das sollte nicht notwendig sein, wenn sowieso relative Koordinaten benutzt werden.
  • Das stört nur deshalb im Moment nicht, weil "Allow zeroing extrusion distances" aktiviert ist, stellt aber eine weitere Abhängigkeit von den gewählten gcode-Optionen dar.

 

Wenn ich das richtig verstanden habe, kümmert sich "Octolapse" zusätzlich darum, das die Foto-Pause möglichst nicht beim Drucken der äußeren Wände passiert, sondern z.B. in einer Infill-Section - da stört der Blob dann nicht so.

Das ist mit einem einfachen Layer-Change Skript aber nicht zu machen.

 

Share this post


Link to post
Share on other sites
36 minutes ago, Smithy said:

Und vielleicht kannst du bei deiner GoPro noch die Autobelichtung abschalten, dann müsste das leichte Flackern im Video eigentlich auch weg sein.

 

Die Aufnahmen sind mit einer DSLR gemacht ... Manuell Belichtet ... Das flackern ist (leider) normal. Die Blendenlamellen sind bei den Belichtungen nie ganz gleich geöffnet bzw. geschlossen - daher der Helligkeitsunterschied zwischen den Aufnahmen. Das alte Leid der DSLR-Timelapsefotografen.

 

36 minutes ago, tinkergnome said:

Hübsch - aber Vorsicht mit dem G92 E0 am Anfang:

  • Das sollte nicht notwendig sein, wenn sowieso relative Koordinaten benutzt werden.
  • Das stört nur deshalb im Moment nicht, weil "Allow zeroing extrusion distances" aktiviert ist, stellt aber eine weitere Abhängigkeit von den gewählten gcode-Optionen dar.

 

Danke für den Tipp - ist draussen und ohne geht es genauso!

 

Viele Grüße,

 

Micha ...

 

Share this post


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

    • Ultimaker Cura | a new interface
      We're not only trying to always make Ultimaker Cura better with the usual new features and improvements we build, but we're also trying to make it more pleasant to operate. The interface was the focus for the upcoming release, from which we would already like to present you the first glance. 
        • Like
      • 114 replies
    • "Back To The Future" using Generative Design & Investment Casting
      Designing for light-weight parts is becoming more important, and I’m a firm believer in the need to produce lighter weight, less over-engineered parts for the future. This is for sustainability reasons because we need to be using less raw materials and, in things like transportation, it impacts the energy usage of the product during it’s service life.
        • Like
      • 12 replies
×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!