Hi,
vorab moin an alle im Forum und ein fettes danke an die Erfinder und Nutzer von Repetier. Ich möchte es nicht mehr missen.
Ich habe ein Frage, da ich derzeit nicht weiss wie ich mein Problem am besten löse. Vielleicht gibt es das schon al Thema, jedoch habe ich es über die suche nicht finden können und entschuldigen bitte diesen langen post. Ich hoffe jemand findet trotzdem die Lust und Zeit ihn zu lesen und zu kommentieren :-)
Zu meinem Wunsch:
Wenn der Filamentsensor ausgelöst hat würde ich gerne den Druckkopf anheben, Filament entladen und die Druckkopf nach Zeit XY abkühlen lassen. Zu dem ganz würde ich dann ein @dialog öffnen mit der Frage ob das Filament eingelegt ist oder nicht und ein Button dafür das Material ein bisschen mehr zu extrudieren
Zum Einlegen hätte ich folgenden Gedanken:
Filament bis an den Extruder schieben -> per Dialog bestätigen -> schnelles einziehen bis kurz vor Düse -> langsam extrudieren, bis entweder Zeit XY oder per @dialog Button "Material vorhanden" -> Überschüssiges Material von der Düse per Hand entfernen -> Original Z-Position wieder anfahren -> Fluss auf ca. 120% anheben -> Geschwindgkeit auf 30% minimieren -> 2 Layer so drucken -> Fluss und Geschwindigkeit wieder auf 100%
Zu meinem Aufbau:
Ich habe verschiedenen Drucker entweder erfrage ich den Filamentstatus anhand der GPIOS am Pi ab oder per Firmware (am/im Drucker verbautem Sensor) und der Antworten-auf-Ereignis-Funktion.
Alle drucker arbeiten mit einem angepasstem Marlin Firmware (von den Herstellern aus). Bei einem funktioniert es auch, wenn ich ein M600 sende, jedoch Druckt dieser dann mit kaltem Hotend, wenn ich auf Fortsetzen beim Server drücke.
Meine Gedanken zum Lösungsansatz:
Gibt es im Repetier-Server ein Befehl um den Code in den Feldern "Filament entfernen" und "Filament einlegen" unter der registerkarte G-Code - Ereignissabhänig zu tätigen?
Wenn Ja wäre der gedanke den @Dialog bei Antworten auf Ereigniss oder bei GPIO G-Code einzutragen
Code für Filament entfernen:
G91 ;relativ
G0 Z5 ;move up head
G0 E-200 ;unload Filament
G90 ;absolut
Code für Filament einlegen:
G91 ;relativ
G0 E190 ;loading fast
G1 E12 F300 ;loading slow
G0 Z-4.5 ;head goes down
G1 Z-0.5 F300 ;head goes down slow
M220 S30 ;Print speed at 30%
M221 S120 ;set Flowrate at 120%
G90 ;absolut
->> und hier eins meiner Probleme wie kann ich repetier-Server sagen, dass er nach z.B.: 2 Layern oder Zeit XY wieder bei M220 und M221 100% einstellt.
Code für @dialog wo auch immer dieser dan Eingtragen würde
@dialogStart "Filament Wechsel" "Filament"
@dialogButton Load Filament "@FilamentEinlegen"
@dialogButton Extrude more Material "G91 G1 E5 F100"
@dialogButton Start "@continue"
@dialogButton Stop Print "@stopPrint"
@dialogButton Cancel
@dialogShow
Mein erster Gedanke war den unteren Part von dem Filament-Einlegen-Code in die Spalte bei Ereignissabhängig - Fortsetzen zu schreiben und nicht zum Filament-einlegen-Code
M220 S30 ;Print speed at 30%
M221 S120 ;set Flowrate at 120%
jedoch habe ich dass dann ja bei jedem Fortsetzen..und ich habe weiterhin das Problem mit dem wechsel auf die 100%. Am sinnigsten wäre wahrscheinlich ein Feld für einen Startcode nach einem Filamentwechsel oder kann ich in den @dialogButton auch einen Mehrzeiligen G-Code schreiben? Wenn ja wie wäre die Formatierung/Zeilenumbrüche?
Weitere Probleme
Wie euch aufgefallen ist habe ich nirgendwo stehen, dass das Hotend abkühlen soll. Das habe ich aus diesem Grund weg gelassen, da ich einfach nicht weis wie ich die eigentliche Temperatur zwischenspeichern könnte um diese dann wieder zu aktivieren.
Ich bin echt kein Profi in sowas. Ist mein Wunschdenken so machbar oder bleibt es ein Wunschdenken?
Danke schonmal an alle die sich mit dem Post und der Lösung beschäftigen wollen :-)