diff --git a/configuration/macros/idex/toolheads.cfg b/configuration/macros/idex/toolheads.cfg index bdfc969b5..a2f34cd30 100644 --- a/configuration/macros/idex/toolheads.cfg +++ b/configuration/macros/idex/toolheads.cfg @@ -461,28 +461,38 @@ gcode: SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY G1 X{t0_act_x} F{speed} - {% if t0_distance >= t1_distance %} - # copy move - SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY - G1 X{t0_act_x + (t1_new_x - t1_act_x)} Y{new_y + yoffset} F{speed} + {% if toolshift %} - # move T0 - SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY - G1 X{t0_new_x + xoffset} F{speed} + {% if t0_distance >= t1_distance %} + # copy move + SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY + G1 X{t0_act_x + (t1_new_x - t1_act_x)} Y{new_y + yoffset} F{speed} - {% elif t0_distance < t1_distance %} - # copy move - SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY - G1 X{t0_new_x + xoffset} Y{new_y + yoffset} F{speed} + # move T0 + SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY + G1 X{t0_new_x + xoffset} F{speed} + {% elif t0_distance < t1_distance %} + # copy move + SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY + G1 X{t0_new_x + xoffset} Y{new_y + yoffset} F{speed} + + # park T1 + SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY + G1 X{t1_new_x} F{speed} + + # move T0 + SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY + G1 X{t0_new_x + xoffset} F{speed} + {% endif %} + + {% else %} # park T1 SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY G1 X{t1_new_x} F{speed} # move T0 SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY - G1 X{t0_new_x + xoffset} F{speed} - {% endif %} # Offset move @@ -529,27 +539,37 @@ gcode: SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY G1 X{t1_act_x} F{speed} - {% if t0_distance >= t1_distance %} - # copy move - SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY - G1 X{t0_act_x - t1_distance + xoffset} Y{new_y + yoffset} F{speed} + {% if toolshift %} + + {% if t0_distance >= t1_distance %} + # copy move + SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY + G1 X{t0_act_x - t1_distance + xoffset} Y{new_y + yoffset} F{speed} + + # park T0 + SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY + G1 X{t0_new_x + xoffset} F{speed} + # move T1 + SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY + + {% elif t0_distance < t1_distance %} + # copy move + SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY + G1 X{t0_new_x} Y{new_y + yoffset} F{speed} + + # move T1 + SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY + G1 X{t1_new_x + xoffset} F{speed} + {% endif %} + + {% else %} # park T0 SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY G1 X{t0_new_x + xoffset} F{speed} # move T1 SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY - - {% elif t0_distance < t1_distance %} - # copy move - SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY - G1 X{t0_new_x} Y{new_y + yoffset} F{speed} - - # move T1 - SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY - G1 X{t1_new_x + xoffset} F{speed} - {% endif %} # offset correction move @@ -839,4 +859,3 @@ gcode: SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_prepurging_timer VALUE={params.AUTO_PURGE_TIME|default(0)|int} SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_purge VALUE={params.PURGE|default(25)|float} SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_standby_temp VALUE={params.STANDBY_TEMP|default(-1)|float} -