Macra umožňují vytvářet podmínky a vyhodnocovat matematické rovnice v sekcích vlastního G-codu.
Konstrukt
Podmíněné vyhodnocení
Vyhodnocení výrazu
Starší syntaxe zástupných znaků
nebo
Uvnitř každého konstruktu mohou být konfigurační proměnné PrusaSliceru dostupné prostřednictvím jejich jmen
a elementy vektorových proměnných mohou být zpřístupněny použitím hranatých závorek
odkazuje na teplotu prvního extruderu.
Multidimenzionální vektory mohou být přístupné pouze jako jednoduché vektorové proměnné odkazující na řetězec (např. když extruder_variable[1] ukazující na hodnotu řetězce [n,0] -- může být odeslán v G-code ale nemůže být použit v aritmetických operacích).
Řetězce jsou identifikované dvojitými uvozovkami a pravidelné výrazy lomítky Řetězce nejsou parsované rekurzívně tj. na výstupu se objeví složené i hranaté závorky uvnitř řetězců. To umožňuje konstrukty jako
Operátory
Povoleny jsou následující operátory:
- Porovnání
- Příklad:
- Booleova logika nebo ekvivalentně,
- Příklad
- Aritmetika
- Příklad: (Všimněte si, že first_layer_temperature je vektor)
- Ternární operátor Aby to fungovalo, musí to být uzavřené v závorkách.
- Příklad: Tento výraz nastaví teplotu extruderu na 230 nebo na 200 v závislosti na tom zda první vrstva má být nad 220°.
- Regulární výraz shody
- Regulární výrazy jsou uzavřeny v lomítkách /
- Příklad:
Funkce
Minimum
Maximum
Zaokrouhlení na celé číslo
Zaokrouhlení / doplnění mezerami: zaokrouhlí zlomkovou část na num_decimals číslice (v případě potřeby přidá na konec nuly) a poté doplní mezerami tak, aby číslo mělo stejný počet znaků num_digits (včetně desetinné tečky, pokud je přítomna). Poslední příkaz lze vynechat, výchozí hodnota je nula.
Zaokrouhlení / doplnění nulami: stejné jako výše, pouze ponechané vyplněné nulami.
Proměnné (zástupné symboly)
Můžete použít proměnné uvnitř skriptů a v šabloně názvu výstupního souboru.
Zkontrolujte Seznam všech zástupných symbolů PrusaSlicer, sdružené do skupin podle jejich zaměření
Skalární proměnné
Tyto hodnoty jsou skalární a může být na ně přímý odkaz.
- printer_notes (string)
- layer_z (přístupný pouze v G-code změny vrstvy )
- layer_num (přístupný pouze v G-code změny vrstvy )
- toolchange_z (k dispozici ve vlastním GCode toolchange od verze 2.4.0)
Některé proměnné jsou definovány složitými vzorci. Například perimeter_extrusion_width, pokud je ponechán na nule, nabývá hodnoty extrusion_width, pokud není nulová, jinak se pro aktuální perimeter_extrusion_width vypočítá výchozí layer_height. Tyto záměny se provádějí pouze pro výrazy nové syntaxe (uzavřené ve složených závorkách {}), zatímco výrazy zapsané pomocí staré syntaxe zástupných znaků (uzavřené v hranatých závorkách []) se interpretují doslovně.
Vektor (proměnné typu pole)
Tyto proměnné jsou polemi a musí být přístupné jako (např. temperature[0]).
- temperature
- first_layer_temperature
- bed_temperature (Všimněte si, že se jedná o vektor, i když smysl má pouze jedna hodnota: bed_temperature[0])
- first_layer_bed_temperature (stejné jako výše!)
Multidimenzionální vektor
Tyto proměnné mohou být přístupné pouze jako jednoduché vektory a nemohou být použité v aritmetických výrazech.
- extruder_offset
- bed_shape
Příklady
Teplotní věž
"Před změnou vrstvy" můžete použít uživatelský G-code k pomalému snižování teploty trysky. Jako první lze použít výraz if/elseif/else:
Stejného výsledku lze dosáhnout kratším výrazem if/else/endif spolu s lineární interpolací:
Nebo lze také použít ternární operátor:
Rychlejší zahřátí pomocí slabého vyhřívání podložky před tiskem
Pokud máte podložku, které trvá velmi dlouho, než se zahřeje na požadovanou teplotu, můžete si čekání trochu zkrátit tím, že pomocí "Start G-codu" zahřejete podložku na cílovou teplotu minus 5 stupňů a pak začnete zahřívat hot end, zatímco podložka pokračuje v zahřívání na cílovou hodnotu: