Followup for Tool Migration (#17800)
This commit is contained in:
parent
0c68794fa9
commit
36efe75ad1
2 changed files with 27 additions and 6 deletions
|
@ -2959,6 +2959,11 @@ void Temperature::tick() {
|
|||
, const bool click_to_cancel/*=false*/
|
||||
#endif
|
||||
) {
|
||||
|
||||
#if ENABLED(AUTOTEMP)
|
||||
REMEMBER(1, planner.autotemp_enabled, false);
|
||||
#endif
|
||||
|
||||
#if TEMP_RESIDENCY_TIME > 0
|
||||
millis_t residency_start_ms = 0;
|
||||
bool first_loop = true;
|
||||
|
|
|
@ -790,6 +790,11 @@ void tool_change_prime() {
|
|||
|
||||
const bool ok = TERN1(TOOLCHANGE_PARK, all_axes_homed() && toolchange_settings.enable_park);
|
||||
|
||||
#if HAS_FAN && TOOLCHANGE_FS_FAN >= 0
|
||||
// Store and stop fan. Restored on any exit.
|
||||
REMEMBER(fan, thermalManager.fan_speed[TOOLCHANGE_FS_FAN], 0);
|
||||
#endif
|
||||
|
||||
// Z raise
|
||||
if (ok) {
|
||||
// Do a small lift to avoid the workpiece in the move back (below)
|
||||
|
@ -820,11 +825,10 @@ void tool_change_prime() {
|
|||
#endif
|
||||
|
||||
// Cool down with fan
|
||||
#if TOOLCHANGE_FS_FAN >= 0 && HAS_FAN
|
||||
const int16_t fansp = thermalManager.fan_speed[TOOLCHANGE_FS_FAN];
|
||||
#if HAS_FAN && TOOLCHANGE_FS_FAN >= 0
|
||||
thermalManager.fan_speed[TOOLCHANGE_FS_FAN] = toolchange_settings.fan_speed;
|
||||
gcode.dwell(toolchange_settings.fan_time * 1000);
|
||||
thermalManager.fan_speed[TOOLCHANGE_FS_FAN] = fansp;
|
||||
thermalManager.fan_speed[TOOLCHANGE_FS_FAN] = 0;
|
||||
#endif
|
||||
|
||||
// Move back
|
||||
|
@ -933,6 +937,11 @@ void tool_change(const uint8_t new_tool, bool no_move/*=false*/) {
|
|||
if (new_tool != old_tool) {
|
||||
destination = current_position;
|
||||
|
||||
#if BOTH(TOOLCHANGE_FILAMENT_SWAP, HAS_FAN) && TOOLCHANGE_FS_FAN >= 0
|
||||
// Store and stop fan. Restored on any exit.
|
||||
REMEMBER(fan, thermalManager.fan_speed[TOOLCHANGE_FS_FAN], 0);
|
||||
#endif
|
||||
|
||||
// Z raise before retraction
|
||||
#if ENABLED(TOOLCHANGE_ZRAISE_BEFORE_RETRACT) && DISABLED(SWITCHING_NOZZLE)
|
||||
if (can_move_away && TERN1(TOOLCHANGE_PARK, toolchange_settings.enable_park)) {
|
||||
|
@ -1104,11 +1113,10 @@ void tool_change(const uint8_t new_tool, bool no_move/*=false*/) {
|
|||
#endif
|
||||
|
||||
// Cool down with fan
|
||||
#if TOOLCHANGE_FS_FAN >= 0 && HAS_FAN
|
||||
const int16_t fansp = thermalManager.fan_speed[TOOLCHANGE_FS_FAN];
|
||||
#if HAS_FAN && TOOLCHANGE_FS_FAN >= 0
|
||||
thermalManager.fan_speed[TOOLCHANGE_FS_FAN] = toolchange_settings.fan_speed;
|
||||
gcode.dwell(toolchange_settings.fan_time * 1000);
|
||||
thermalManager.fan_speed[TOOLCHANGE_FS_FAN] = fansp;
|
||||
thermalManager.fan_speed[TOOLCHANGE_FS_FAN] = 0;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
@ -1157,6 +1165,11 @@ void tool_change(const uint8_t new_tool, bool no_move/*=false*/) {
|
|||
unscaled_e_move(toolchange_settings.extra_resume + TOOLCHANGE_FS_WIPE_RETRACT, MMM_TO_MMS(toolchange_settings.unretract_speed));
|
||||
current_position.e = 0;
|
||||
sync_plan_position_e(); // New extruder primed and set to 0
|
||||
|
||||
// Restart Fan
|
||||
#if HAS_FAN && TOOLCHANGE_FS_FAN >= 0
|
||||
RESTORE(fan);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -1257,6 +1270,9 @@ void tool_change(const uint8_t new_tool, bool no_move/*=false*/) {
|
|||
thermalManager.wait_for_hotend(active_extruder);
|
||||
#endif
|
||||
|
||||
// Migrate Linear Advance K factor to the new extruder
|
||||
TERN_(LIN_ADVANCE, planner.extruder_advance_K[active_extruder] = planner.extruder_advance_K[migration_extruder]);
|
||||
|
||||
// Perform the tool change
|
||||
tool_change(migration_extruder);
|
||||
|
||||
|
|
Reference in a new issue