|
@@ -119,7 +119,7 @@ fil_change_settings_t fc_settings[EXTRUDERS];
|
119
|
119
|
*
|
120
|
120
|
* Returns 'true' if heating was completed, 'false' for abort
|
121
|
121
|
*/
|
122
|
|
-static bool ensure_safe_temperature(const PauseMode mode=PAUSE_MODE_SAME) {
|
|
122
|
+static bool ensure_safe_temperature(const bool wait=true, const PauseMode mode=PAUSE_MODE_SAME) {
|
123
|
123
|
|
124
|
124
|
#if ENABLED(PREVENT_COLD_EXTRUSION)
|
125
|
125
|
if (!DEBUGGING(DRYRUN) && thermalManager.targetTooColdToExtrude(active_extruder)) {
|
|
@@ -134,7 +134,13 @@ static bool ensure_safe_temperature(const PauseMode mode=PAUSE_MODE_SAME) {
|
134
|
134
|
UNUSED(mode);
|
135
|
135
|
#endif
|
136
|
136
|
|
137
|
|
- return thermalManager.wait_for_hotend(active_extruder);
|
|
137
|
+ if (wait)
|
|
138
|
+ return thermalManager.wait_for_hotend(active_extruder);
|
|
139
|
+
|
|
140
|
+ while (ABS(thermalManager.degHotend(active_extruder) - thermalManager.degTargetHotend(active_extruder)) > TEMP_WINDOW)
|
|
141
|
+ idle();
|
|
142
|
+
|
|
143
|
+ return true;
|
138
|
144
|
}
|
139
|
145
|
|
140
|
146
|
/**
|
|
@@ -156,7 +162,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
|
156
|
162
|
) {
|
157
|
163
|
TERN(HAS_LCD_MENU,,UNUSED(show_lcd));
|
158
|
164
|
|
159
|
|
- if (!ensure_safe_temperature(mode)) {
|
|
165
|
+ if (!ensure_safe_temperature(false, mode)) {
|
160
|
166
|
#if HAS_LCD_MENU
|
161
|
167
|
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_STATUS, mode);
|
162
|
168
|
#endif
|
|
@@ -291,7 +297,7 @@ bool unload_filament(const float &unload_length, const bool show_lcd/*=false*/,
|
291
|
297
|
constexpr float mix_multiplier = 1.0;
|
292
|
298
|
#endif
|
293
|
299
|
|
294
|
|
- if (!ensure_safe_temperature(mode)) {
|
|
300
|
+ if (!ensure_safe_temperature(false, mode)) {
|
295
|
301
|
#if HAS_LCD_MENU
|
296
|
302
|
if (show_lcd) lcd_pause_show_message(PAUSE_MESSAGE_STATUS);
|
297
|
303
|
#endif
|
|
@@ -498,7 +504,7 @@ void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep
|
498
|
504
|
HOTEND_LOOP() thermalManager.reset_hotend_idle_timer(e);
|
499
|
505
|
|
500
|
506
|
// Wait for the heaters to reach the target temperatures
|
501
|
|
- ensure_safe_temperature();
|
|
507
|
+ ensure_safe_temperature(false);
|
502
|
508
|
|
503
|
509
|
// Show the prompt to continue
|
504
|
510
|
show_continue_prompt(is_reload);
|
|
@@ -587,6 +593,8 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le
|
587
|
593
|
// Unretract
|
588
|
594
|
unscaled_e_move(PAUSE_PARK_RETRACT_LENGTH, feedRate_t(PAUSE_PARK_RETRACT_FEEDRATE));
|
589
|
595
|
|
|
596
|
+ ensure_safe_temperature();
|
|
597
|
+
|
590
|
598
|
// Intelligent resuming
|
591
|
599
|
#if ENABLED(FWRETRACT)
|
592
|
600
|
// If retracted before goto pause
|