|
@ -119,7 +119,7 @@ fil_change_settings_t fc_settings[EXTRUDERS]; |
|
|
* |
|
|
* |
|
|
* Returns 'true' if heating was completed, 'false' for abort |
|
|
* Returns 'true' if heating was completed, 'false' for abort |
|
|
*/ |
|
|
*/ |
|
|
static bool ensure_safe_temperature(const PauseMode mode=PAUSE_MODE_SAME) { |
|
|
static bool ensure_safe_temperature(const bool wait=true, const PauseMode mode=PAUSE_MODE_SAME) { |
|
|
|
|
|
|
|
|
#if ENABLED(PREVENT_COLD_EXTRUSION) |
|
|
#if ENABLED(PREVENT_COLD_EXTRUSION) |
|
|
if (!DEBUGGING(DRYRUN) && thermalManager.targetTooColdToExtrude(active_extruder)) { |
|
|
if (!DEBUGGING(DRYRUN) && thermalManager.targetTooColdToExtrude(active_extruder)) { |
|
@ -134,7 +134,13 @@ static bool ensure_safe_temperature(const PauseMode mode=PAUSE_MODE_SAME) { |
|
|
UNUSED(mode); |
|
|
UNUSED(mode); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
return thermalManager.wait_for_hotend(active_extruder); |
|
|
if (wait) |
|
|
|
|
|
return thermalManager.wait_for_hotend(active_extruder); |
|
|
|
|
|
|
|
|
|
|
|
while (ABS(thermalManager.degHotend(active_extruder) - thermalManager.degTargetHotend(active_extruder)) > TEMP_WINDOW) |
|
|
|
|
|
idle(); |
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/**
|
|
|
/**
|
|
@ -156,7 +162,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l |
|
|
) { |
|
|
) { |
|
|
TERN(HAS_LCD_MENU,,UNUSED(show_lcd)); |
|
|
TERN(HAS_LCD_MENU,,UNUSED(show_lcd)); |
|
|
|
|
|
|
|
|
if (!ensure_safe_temperature(mode)) { |
|
|
if (!ensure_safe_temperature(false, mode)) { |
|
|
#if HAS_LCD_MENU |
|
|
#if HAS_LCD_MENU |
|
|
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_STATUS, mode); |
|
|
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_STATUS, mode); |
|
|
#endif |
|
|
#endif |
|
@ -291,7 +297,7 @@ bool unload_filament(const float &unload_length, const bool show_lcd/*=false*/, |
|
|
constexpr float mix_multiplier = 1.0; |
|
|
constexpr float mix_multiplier = 1.0; |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
if (!ensure_safe_temperature(mode)) { |
|
|
if (!ensure_safe_temperature(false, mode)) { |
|
|
#if HAS_LCD_MENU |
|
|
#if HAS_LCD_MENU |
|
|
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_STATUS); |
|
|
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_STATUS); |
|
|
#endif |
|
|
#endif |
|
@ -498,7 +504,7 @@ void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep |
|
|
HOTEND_LOOP() thermalManager.reset_hotend_idle_timer(e); |
|
|
HOTEND_LOOP() thermalManager.reset_hotend_idle_timer(e); |
|
|
|
|
|
|
|
|
// Wait for the heaters to reach the target temperatures
|
|
|
// Wait for the heaters to reach the target temperatures
|
|
|
ensure_safe_temperature(); |
|
|
ensure_safe_temperature(false); |
|
|
|
|
|
|
|
|
// Show the prompt to continue
|
|
|
// Show the prompt to continue
|
|
|
show_continue_prompt(is_reload); |
|
|
show_continue_prompt(is_reload); |
|
@ -587,6 +593,8 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le |
|
|
// Unretract
|
|
|
// Unretract
|
|
|
unscaled_e_move(PAUSE_PARK_RETRACT_LENGTH, feedRate_t(PAUSE_PARK_RETRACT_FEEDRATE)); |
|
|
unscaled_e_move(PAUSE_PARK_RETRACT_LENGTH, feedRate_t(PAUSE_PARK_RETRACT_FEEDRATE)); |
|
|
|
|
|
|
|
|
|
|
|
ensure_safe_temperature(); |
|
|
|
|
|
|
|
|
// Intelligent resuming
|
|
|
// Intelligent resuming
|
|
|
#if ENABLED(FWRETRACT) |
|
|
#if ENABLED(FWRETRACT) |
|
|
// If retracted before goto pause
|
|
|
// If retracted before goto pause
|
|
|