Conditional gcode syntax in Slic3rPE 1.41.1
I'm trying to use conditional gcode syntax as described in the release notes for 1.38.2. I'm trying to generate a temperature calibration tower using the following syntax:
;BEFORE_LAYER_CHANGE
G92 E0.0
;layer_z is height of current layer in mm
;[layer_z]
{if layer_z == 91.6}M104 S220
{elseif layer_z == 81.6}M104 S225
{elseif layer_z == 71.6}M104 S230
{elseif layer_z == 61.6}M104 S235
{elseif layer_z == 51.6}M104 S240
{elseif layer_z == 41.6}M104 S245
{elseif layer_z == 31.6}M104 S250
{elseif layer_z == 21.6}M104 S255
{elseif layer_z == 11.6}M104 S260
{elseif layer_z == 1.6}M104 S265
{endif}
Attempts to generate gcode result in the following:
!!!!! Failed to process the custom G-code template before_layer_gcode
Parsing error at line 6: Not a variable name
{elseif layer_z == 81.6}M104 S225
^
!!!!! End of an error report for the custom G-code template before_layer_gcode
I've tried combining all of the lines into a single line with no better luck. This works, but is much more cumbersome:
;BEFORE_LAYER_CHANGE
}
; layer_z is height of current layer in mm
G92 E0.0
;[layer_z]
{if layer_z == 91.6}M104 S220{endif}
{if layer_z == 81.6}M104 S225{endif}
{if layer_z == 71.6}M104 S230{endif}
{if layer_z == 61.6}M104 S235{endif}
{if layer_z == 51.6}M104 S240{endif}
{if layer_z == 41.6}M104 S245{endif}
{if layer_z == 31.6}M104 S250{endif}
{if layer_z == 21.6}M104 S255{endif}
{if layer_z == 11.6}M104 S260{endif}
{if layer_z == 1.6}M104 S265{endif
Am I misunderstanding how elseif should work? I know Slic3rPE uses a different syntax from mainstream Slic3r.
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
Re: Conditional gcode syntax in Slic3rPE 1.41.1
The post you referenced had the conditional as
elsif
Not elseif.
{if condition1} text on condition1 {elsif condition2} text on condition2 {else} text on else {endif}
Re: Conditional gcode syntax in Slic3rPE 1.41.1
The post you referenced had the conditional as
elsif
Not elseif.
Hah! That was it. I've encountered both "elseif" and "elif" before and I guess my mind was doing auto-correct. I've never seen "elsif" before. Made the change and all is working perfectly now. Thanks!
and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan
Re: Conditional gcode syntax in Slic3rPE 1.41.1
Glad I could help.
It took me a couple looks to 'see' the error.
If I had a dime for every minute I've spent starting at code that should just work...