Relevant für
Makros ermöglichen die Erstellung von Bedingungen und die Auswertung von mathematischen Gleichungen in den benutzerdefinierten G-Code-Feldern.
oder
In beiden Konstrukten kann auf die PrusaSlicer-Konfigurationsvariablen über deren Namen zugegriffen werden
und auf Elemente von Vektorvariablen kann mit Hilfe von eckigen Klammern zugegriffen werden
bezieht sich auf die Temperatur des ersten Extruders.
Mehrdimensionale Vektoren können derzeit nur als einfache Vektorvariable angesprochen werden, die einen String-Wert ergibt (z.B. wenn die extruder_variable[1] den String-Wert [n,0] ergibt -- kann in g-code ausgegeben werden, kann aber nicht in arithmetischen Operationen verwendet werden).
Strings werden durch doppelte Anführungszeichen und reguläre Ausdrücke durch Schrägstriche Strings werden nicht rekursiv geparst, d.h. geschweifte und eckige Klammern innerhalb von Strings werden in der Ausgabe erscheinen. Dies ermöglicht Konstrukte wie
Die folgenden Operatoren sind erlaubt:
Minimum
Maximum
Casting auf Ganzzahl
Runden / Auffüllen mit Nullen: wie oben, nur links mit Nullen gefüllt
Sie können Variablen innerhalb von eigen Skripten und in der Vorlage für den Namen der Ausgabedatei verwenden.
Sehen Sie sich die Liste aller PrusaSlicer Platzhalter an, gruppiert nach ihrem Anwendungsbereich.
Diese Werte sind skalar und können direkt referenziert werden.
Einige Variablen werden durch komplexe Formeln definiert. Zum Beispiel die perimeter_extrusion_width wenn auf Null gesetzt, nimmt den Wert von extrusion_width wenn ungleich Null, sonst die Standard perimeter_extrusion_width wird berechnet für die aktuelle layer_height. Diese Ersetzungen werden nur für die Ausdrücke der neuen Syntax (eingeschlossen in geschweiften Klammern {}) vorgenommen, während die Ausdrücke, die mit der alten Platzhalter-Syntax (eingeschlossen in eckigen Klammern []) geschrieben wurden, wortwörtlich interpretiert werden.
Diese Variablen sind Arrays und müssen als solche angesprochen werden (z.B. temperature[0]).
Diese Variablen können nur als einfache Vektoren angesprochen werden und können nicht in arithmetischen Ausdrücken verwendet werden.
Beispiele
Sie können den benutzerdefinierten G-Code "Vor Schichtwechsel" verwenden, um die Temperaturen am Hot End langsam zu senken. Zunächst kann man den if/elseif/else-Ausdruck verwenden:
Das gleiche Ergebnis kann durch einen kürzeren if/else/endif-Ausdruck zusammen mit einer linearen Interpolation erreicht werden:
Oder man kann den ternären Operator verwenden:
Wenn Sie ein Bett haben, das sehr lange braucht, um auf Temperatur zu kommen, können Sie ein wenig Wartezeit einsparen, indem Sie mit "Start G-Code" das Bett auf die Zieltemperatur minus 5 Grad aufheizen und dann mit dem Aufheizen des Hot End beginnen, während das Bett weiter auf den Zielwert aufheizt:
3 Kommentare
My Usecase is:
I often have multiple files for the same project.
The way my workflow is setup, they always have the same preif in the filename.
The filename is something like "$projectname__$partname.stl"
i would like to have one folder per project, so i would like to replace __ with /
Wenn filamant_type = PLA dann Extruder Temp 190
Wenn filament_type = PETG dann Extruder Temp 210, usw....
Das hier funktioniert nicht....
{if filament_type = PLA}M104 S190{endif}
es kommt die Meldung
Parsing error at line 7: Referencing a vector variable when scalar is expected{if filament_type = PLA}M104 S190 ; Extruder auf 190 Grad bei PLA{endif}
{if layer_z == 20}
M220 S130
M106 S255
{endif}