Le macro permettono di creare condizioni e valutare equazioni matematiche nei campi del G-code personalizzato.
Costrutti
Valutazione condizionale
Valutazione dell'espressione
Sintassi Legacy Placeholder
or
All'interno di entrambi i costrutti, le variabili di configurazione di PrusaSlicer possono essere accessibili attraverso i loro nomi
e gli elementi delle variabili vettoriali possono essere raggiunti utilizzando le parentesi quadre
si riferisce alla temperatura del primo estrusore.
I vettori multidimensionali possono attualmente essere accessibili solo come una semplice variabile vettoriale risultante in un valore di stringa (ad esempio, se la extruder_variable[1] risultante in un valore di stringa [n,0] -- può essere inserita nel g-code ma non può essere usata in operazioni aritmetiche).
Le stringhe sono identificate da doppie virgolette e le espressioni regolari tramite slash Le stringhe non sono analizzate ricorsivamente, cioè le parentesi graffe e quadre all'interno delle stringhe appariranno nell'output. Questo permette a costrutti come
Operatori
Sono ammessi i seguenti operatori:
- Confronto
- Esempio:
- Logica booleana or, equivalently,
- Esempio
- Aritmetico
- Esempio: (Notare che first_layer_temperature è un vettore)
- Operatore ternario Questo ha bisogno di essere racchiuso tra parentesi per funzionare.
- Esempio: Questa espressione imposta la temperatura dell'estrusore a 230 o 200 a seconda che il primo strato debba essere superiore a 220°.
- Corrispondenza dell'espressione regolare
- Le espressioni regolari sono racchiuse tra slash /
- Esempio:
Funzioni
Minimum
Maximum
Casting a intero
Arrotondamento a un intero
Arrotondamento / riempimento con spazi: arrotonda la parte frazionaria a num_decimali di cifre (aggiungendo gli zeri finali se necessario), poi riempie a sinistra con spazi in modo che il numero abbia num_digit caratteri in totale (incluso un punto decimale se presente). L'ultimo argomento può essere omesso, il valore predefinito è zero.
Arrotondamento / imbottitura con zeri: come sopra, solo riempito a sinistra con zeri
Variabili (placeholder)
È possibile utilizzare le variabili all'interno degli script personalizzati e nel template del nome del file di output.
Controllare L'elenco di tutti i placeholder di PrusaSlicer, raggruppati in base al loro scopo.
Variabili scalari
Questi valori sono scalari e possono essere referenziati direttamente.
- printer_notes (string)
- layer_z (disponibile solo nel GCode di cambio di livello)
- layer_num (disponibile solo nel GCode di cambio di livello)
- toolchange_z (disponibile nel GCode di cambio attrezzo personalizzato dalla versione 2.4.0)
Alcune variabili sono definite da formule complesse. Per esempio, la variabile perimeter_extrusion_width se lasciata a zero prende il valore di extrusion_width se questa è non zero, altrimenti viene calcolato un perimeter_extrusion_width predefinito per l'attuale layer_height. Queste sostituzioni sono fatte solo per le espressioni della nuova sintassi (racchiuse tra parentesi graffe {}), mentre le espressioni scritte usando la vecchia sintassi segnaposto (racchiuse tra parentesi quadre []) sono interpretate alla lettera.
Vettore (array di variabili)
Queste variabili sono array e devono essere accessibili come tali (ad esempio temperature[0]).
- temperature
- first_layer_temperature
- bed_temperature (Si noti che questo è un vettore, anche se solo un valore ha senso: bed_temperature[0])
- first_layer_bed_temperature (come sopra!)
Vettore multidimensionale
Queste variabili sono accessibili solo come vettori semplici e non possono essere usate in espressioni aritmetiche.
- extruder_offset
- bed_shape
Esempi
Torre di temperatura
È possibile usare il G-code personalizzato "Before layer change" per diminuire lentamente le temperature dell'hotend. Prima, bisogna usare l'espressione if/elseif/else:
{endif}
Lo stesso risultato può essere ottenuto con un'espressione if/else/endif più breve insieme a un'interpolazione lineare:
Oppure si può usare l'operatore ternario:
Riscaldamento più rapido con riscaldatori del piano deboli prima della stampa
Se hai un piano che impiega molto tempo a raggiungere la temperatura, puoi risparmiare un po' di tempo di attesa usando "Start G-code" per riscaldare il piano alla temperatura di destinazione meno 5 gradi e poi iniziare a riscaldare l'estremità calda mentre il piano continua a riscaldarsi al valore target: