Makrók
A SuperSlicer kétféle makró létrehozását teszi lehetővé az egyéni G-kód szakaszokban:
Feltételes kiértékelés :
Kifejezés kiértékelése :
Mindkét konstrukcióban a SuperSlicer konfigurációs változói névvel (pl. layer_z
), a tömbváltozók elemei pedig szögletes zárójelek segítségével érhetők el (pl. a temperature[0]
az első extruder hőmérsékletére utal).
A többdimenziós tömbök jelenleg csak egyszerű tömbváltozóként érhetőek el, ami egy string értéket eredményez (pl. ha az extruder_offset
változó 0x0,nx0 értéket tartalmaz, akkor csak `extruder_variable[1]-ként érhető el, ami egy [n, 0] string értéket eredményez - G-kódban megjeleníthető, de nem használható aritmetikai műveletekben).
A karakterláncokat fordított vesszőkkel "string"
, a reguláris kifejezéseket pedig perjelekkel /
azonosítjuk. A karakterláncokat nem elemzi rekurzívan, azaz a szögletes zárójelek és a karakterláncokon belüli zárójelek megjelennek a kimeneten. Ez lehetővé teszi az olyan konstrukciókat, mint a `{"[zárójeles szöveg]"}".
Operátorok
A következő operátorok engedélyezettek :
Összehasonlítás
Példa :
{if layer_height == 0.2}; Csináljon valamit {endif}
Boole-logika vagy annak megfelelői,
Példa :
{if layer_height> 0.1 and first_layer_temperature [0]> 220}; Csináljon valamit {endif}
Aritmetikai
Példa :
M104 S {first_layer_temperature[0]2/3}
(Megjegyezzük, hogy a first_layer_temperature egy tömb)
Operátor terner
?
Példa :
M104 S {(first_layer_temperature [0]> 220? 230 : 200)}
Úgy tűnik, hogy ezt zárójelben kell elhelyezni, hogy működjön. Ez a kifejezés az extruder hőmérsékletét 230-ra vagy 200-ra állítja be, attól függően, hogy az első rétegnek 220° fölött kell-e lennie.
Szabályos kifejezések illesztése
A reguláris kifejezéseket perjelek (/) fogják körül. 1. Példa :
Funkciók
Skaláris változók
Ezek az értékek skalárisak és közvetlenül hivatkozhatók.
printer_notes (string)
layer_z (csak a rétegváltás G-kódjában érhető el)
layer_num (csak a rétegváltás G-kódjában érhető el)
Változók tömb alakban
Ezek a változók tömbök, és a tömbindex megadásával kell őket elérni.
temperature
first_layer_temperature
bed_temperature (jegyezzük meg, hogy ez egy táblázat, még akkor is, ha csak egy értéknek van értelme. : bed_temperature[0])
first_layer_bed_temperature (lásd a fenti megjegyzést )
Többdimenziós tömbök
Ezek a változók csak egyszerű tömbökként érhetők el, és nem használhatók aritmetikai kifejezésekben.
extruder_offset
bed_shape
Példák
Hőmérséklet fordulat
A "Rétegváltás előtt" egyéni G-kóddal lassan csökkentheti a hotend hőmérsékletét. Először is, használhatja az if/elseif/else kifejezést:
Ugyanezt az eredményt egy rövidebb if/else/endif kifejezéssel is el lehet érni lineáris interpolációval:
Vagy használhatja a terner operátort :
A kód eredménye a G-kód testreszabási ablakban a réteg módosítása előtt:
Last updated