For scripting, in addition to NEWTOOL you can just use TOOL
ie
{IF TOOL = 1}G1 ASDF
{IF TOOL=0}G1 not ASDF
Found this helpful for custom mixing extruder profile.
For scripting, in addition to NEWTOOL you can just use TOOL
ie
{IF TOOL = 1}G1 ASDF
{IF TOOL=0}G1 not ASDF
Found this helpful for custom mixing extruder profile.
Hello Any news on this topic?
I mean, does S3D 4.0 have these same placeholders?
Is there some way to get the temperature at current layer to make a tool change script?
Thanks
I found this in 4.0 app
[toolchange_retract_distance]
[toolchange_prime_distance]
[retract_speed]
[travel_speed]
[current_position_x]
[current_position_y]
[next_position_x]
[next_position_y]
[next_position_z]
[previous_direction_x]
[previous_direction_y]
[previous_direction_z]
[next_direction_x]
[next_direction_y]
[next_direction_z]
[average_direction_x]
[old_tool]
[new_tool]
[toolchange_retract_speed]
[extruder0_temperature]
[extruder1_temperature]
[extruder2_temperature]
[extruder3_temperature]
[extruder4_temperature]
[extruder5_temperature]
[bed0_temperature]
[bed1_temperature]
[bed2_temperature]
[bed3_temperature]
[bed4_temperature]
[bed5_temperature]
[total_filament_used]
[extruder0_filament_used]
[extruder1_filament_used]
[extruder2_filament_used]
[extruder3_filament_used]
[extruder4_filament_used]
[extruder5_filament_used]
[total_filament_weight]
[extruder0_filament_weight]
[extruder3_filament_weight]
[extruder4_filament_weight]
[extruder5_filament_weight]
[total_filament_cost]
[extruder0_filament_cost]
[extruder1_filament_cost]
[extruder2_filament_cost]
[extruder3_filament_cost]
[extruder4_filament_cost]
[extruder5_filament_cost]
[total_print_time_sec]
[build_size_x]
[build_size_y]
[build_size_z]
[total_layer_count]
[fan_speed_percentage]
[progress]
[current_Z_position]
[current_layer]
12 hours ago, pieri70 said:I found this in 4.0 app
Bel lavoro Pieri70! These extruder[K]_filament_used are interesting, but in my opinion the most interesting are those with the = => =< and other simbols after the placeholders.
@neotko posted some screenshots some time ago, I tried to use some of those but without results, without a serious documentation it is quite hard to improve the profiles and the prints.
I recently discovered another thing by trial and error...you can do logic operations with "&&" and also inequalities work. For example:
{IF NEWTOOL=1 && [current_layer] = 1} Gxxxx whatever Gcode you want, will be inserted only if both conditions are met. I didn't try || as a logical "OR" operator, but I would guess if && works then || also works. Also, inequalities do work, for example:
{IF NEWTOOL=1 && [current_layer] < 10} Gxxxx
Also, I tried several ways of referencing the Primary Layer Height, and struck out on all of them. I don't know if that exists as a variable, but I can tell you these are NOT valid variables: [primary_layer_height]; [layer_height]; [first_layer_height]; [prime_layer_height]; [layer_height_z]; [delta_z] (OK clearly I was getting desperate here).
I discovered something else very bizarre. MERELY REFERENCING A VARIABLE NAME CAN ALTER THE GCODE. In other words, you might think that if your toolchange_prime_distance is a certain number, then you can type that number, or type [toolchange_prime_distance], and either way, that number will get inserted into the Gcode. And that generally works for that immediate variable reference. BUT ...it can cause the slicer SW to behave differently later. In other words, it "remembers" the fact that it resolved the variable name, and that memory might cause it to do something else.
In my particular case, referencing [toolchange_prime_distance] caused the software to believe that it had done a prime movement. If I merely put G1 E12 for example, this was not "remembered" as a prime movement. But if I put equivalently G1 E[toolchange_prime_distance}, then the software counted this as a prime movement, and behaved differently later (in my case, deleting a different, later prime movement).
The whole sad story is posted here:
https://forum.simplify3d.com/viewtopic.php?f=9&t=12966&p=49691#p49691
So - beware variable names. They are useful, but you have to verify they aren't messing up anything. The only way I know to do that is case-by-case, generate Gcode with and without the variable name and compare them.
Recommended Posts
tangent1 0
Thanks for this. Would [current_tool] or the like also work?
Link to post
Share on other sites