G-Code-Injector / postprocessor for Slic3r G-Code

Wie ja halbwegs bekannt sein dürfte erstelle ich meine G-Codes grundsätzlich mit Slic3r. Für mich erfüllt Slic3r, insbesondere die neue Variante aus Jupp’s Hause, alle Anforderungen.

Für den allseits bekannten, konkurrienden, kommerziellen und teuren Slicer verkomplizierAlles kann ich mich nicht einfach erwärmen. Wofür Geld ausgeben wenn ich doch die ganzen Jahre alles mit Slic3r ohne Probleme hinbekommen habe?

Eins kann Slic3r jedoch nicht. Höhenabhängige Veränderungen von Temperatur, Beschleunigung, Jerk, … sind nichtmals über Umwege wie modifier meshes möglich.
Im normalen Druckalltag sind diese Features jedoch auch kaum erforderlich.

Möchte man jedoch mal neue Filamente ausprobieren sind die allseits beliebten Temperaturtürmchen eigentlich eine feine Sache um relativ schnell einen guten Startpunkt für eine Feineinstellung der Parameter zu finden.
Aber auch solche Temperaturtests sind mit etwas Erfahrung und Fingerspitzengefühl ohne Türmchen mit automatisch steigender Temperatur hinzubekommen.

Unterschiedliche Geschwindigkeiten lassen sich ja noch im Slic3r per modifier meshes realisieren. Schwieriger wird es wenn es um Parameter wie Jerk, Beschleunigung, etc. geht.
Meist muss man ein ganze Armada an Würfelchen oder ähnlichen Testeilen drucken und alle miteinander vergleichen. Dabei gilt es dann auch noch darauf zu achten während der Klötzchenorgie möglichst nicht die Umweltparameter zu ändern bzw. gleich zu halten.

Praktischer wäre es ja solche Parameter in einem Druckteil zu variieren um den Test effizient, aussagekräftig und möglichst unverfälscht zu halten.

Beispieldruck um die Effekte einer steigenden Beschleunigung zu testen. Unten ACC3000 kontinuierlich steigernd auf ACC 7000 bei Jerk 20 und 60mm/s.

In den Foren wird gerne dazu geraten, nachträglich manuell den G-Code mittels eines Texteditors zu ändern. Viel umständlicher kann man das wohl nicht lösen.

Auf der Suche nach einer schöneren und effizienteren Lösung bin ich auf Thingiverse auf ein  Python Skript/Testobjekt zur Erstellung von Temperaturtürmchen aufmerksam geworden. Per Skript wird nach dem slicen alle x-Layer eine neue Drucktemperatur in den G-Code geschrieben, ein postprocessing des G-Code.

Mit meinen äußerst bescheidenen Programmierkenntnissen habe ich das Skript etwas abgewandelt und ergänzt.
Aktuell lässt sich zu Beginn eines Layer, auf einem definierbaren Layerraster, ein beliebiger G-Code mit einem beliebigen Parameter und einem automatisch aufsteigenden Wert injizieren

Das modifizierte Skript erlaubt es somit bei Slic3r generierten G-Code z.B. alle X-Layer:
– die Temperatur zu erhöhen
– die Beschleunigung zu steigern
– Jerk zu steigern
– Kühlleistung zu erhöhen
– …

Das Python-Skript sowie eine kurze Erklärung zur Bedienung finden sich auf Github.

Vielleicht finden sich ja auch noch begabtere Hände die den Code weiter voran treiben, insbesondere Github bietet ja tolle Möglichkeiten der gemeinsamen Weiterentwicklung.

Viel Spaß damit!

 

3 Gedanken zu „G-Code-Injector / postprocessor for Slic3r G-Code

  1. Fabian

    Kann man auch wunderbar über die custom gcode Funktion in slic3r prusa edition erledigen.
    Before layer change gcode.
    {if layer_num ==20}M104 S250; change temp to 250C at layer 20 {endif}
    {if layer_num ==40}M104 S255; change temp to 255C at layer 40 {endif}

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.