parent
4a4c1db606
commit
425af4240b
|
@ -1028,7 +1028,7 @@ void fast_line_to_current(const AxisEnum fr_axis) { _line_to_current(fr_axis, 0.
|
|||
if (!too_cold(active_extruder)) {
|
||||
destination = current_position; // Remember the old position
|
||||
|
||||
const bool ok = TERN1(TOOLCHANGE_PARK, all_axes_homed() && toolchange_settings.enable_park);
|
||||
const bool ok = TERN0(TOOLCHANGE_PARK, all_axes_homed() && toolchange_settings.enable_park);
|
||||
|
||||
#if HAS_FAN && TOOLCHANGE_FS_FAN >= 0
|
||||
// Store and stop fan. Restored on any exit.
|
||||
|
@ -1080,7 +1080,20 @@ void fast_line_to_current(const AxisEnum fr_axis) { _line_to_current(fr_axis, 0.
|
|||
}
|
||||
#endif
|
||||
|
||||
// Clone previous position
|
||||
extruder_cutting_recover(destination.e); // Cutting recover
|
||||
|
||||
// Retract if previously retracted
|
||||
#if ENABLED(FWRETRACT)
|
||||
if (fwretract.retracted[active_extruder])
|
||||
unscaled_e_move(-fwretract.settings.retract_length, fwretract.settings.retract_feedrate_mm_s);
|
||||
#endif
|
||||
|
||||
// If resume_position is negative
|
||||
if (current_position.e < 0) unscaled_e_move(current_position.e, MMM_TO_MMS(toolchange_settings.retract_speed));
|
||||
|
||||
planner.synchronize();
|
||||
planner.set_e_position_mm(current_position.e); // Extruder primed and ready
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1597,6 +1610,9 @@ void tool_change(const uint8_t new_tool, bool no_move/*=false*/) {
|
|||
unscaled_e_move(-fwretract.settings.retract_length, fwretract.settings.retract_feedrate_mm_s);
|
||||
#endif
|
||||
|
||||
// If resume_position is negative
|
||||
if (resume_current_e < 0) unscaled_e_move(resume_current_e, MMM_TO_MMS(toolchange_settings.retract_speed));
|
||||
|
||||
// If no available extruder
|
||||
if (EXTRUDERS < 2 || active_extruder >= EXTRUDERS - 2 || active_extruder == migration.last)
|
||||
migration.automode = false;
|
||||
|
|
Loading…
Reference in a new issue