|
|
@ -381,7 +381,7 @@ uint8_t did_pause_print = 0;
|
|
|
|
|
|
|
|
|
|
|
|
bool pause_print(const float &retract, const xyz_pos_t &park_point, const float &unload_length/*=0*/, const bool show_lcd/*=false*/ DXC_ARGS) {
|
|
|
|
bool pause_print(const float &retract, const xyz_pos_t &park_point, const float &unload_length/*=0*/, const bool show_lcd/*=false*/ DXC_ARGS) {
|
|
|
|
DEBUG_SECTION(pp, "pause_print", true);
|
|
|
|
DEBUG_SECTION(pp, "pause_print", true);
|
|
|
|
DEBUG_ECHOLNPAIR("... retract:", retract, " park.x:", park_point.x, " y:", park_point.y, " z:", park_point.z, " unloadlen:", unload_length, " showlcd:", int(show_lcd) DXC_SAY);
|
|
|
|
DEBUG_ECHOLNPAIR("... park.x:", park_point.x, " y:", park_point.y, " z:", park_point.z, " unloadlen:", unload_length, " showlcd:", int(show_lcd) DXC_SAY);
|
|
|
|
|
|
|
|
|
|
|
|
UNUSED(show_lcd);
|
|
|
|
UNUSED(show_lcd);
|
|
|
|
|
|
|
|
|
|
|
@ -397,19 +397,6 @@ bool pause_print(const float &retract, const xyz_pos_t &park_point, const float
|
|
|
|
|
|
|
|
|
|
|
|
TERN_(HOST_PROMPT_SUPPORT, host_prompt_open(PROMPT_INFO, PSTR("Pause"), DISMISS_STR));
|
|
|
|
TERN_(HOST_PROMPT_SUPPORT, host_prompt_open(PROMPT_INFO, PSTR("Pause"), DISMISS_STR));
|
|
|
|
|
|
|
|
|
|
|
|
if (!DEBUGGING(DRYRUN) && unload_length && thermalManager.targetTooColdToExtrude(active_extruder)) {
|
|
|
|
|
|
|
|
SERIAL_ECHO_MSG(STR_ERR_HOTEND_TOO_COLD);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if HAS_LCD_MENU
|
|
|
|
|
|
|
|
if (show_lcd) { // Show status screen
|
|
|
|
|
|
|
|
lcd_pause_show_message(PAUSE_MESSAGE_STATUS);
|
|
|
|
|
|
|
|
LCD_MESSAGEPGM(MSG_M600_TOO_COLD);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return false; // unable to reach safe temperature
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Indicate that the printer is paused
|
|
|
|
// Indicate that the printer is paused
|
|
|
|
++did_pause_print;
|
|
|
|
++did_pause_print;
|
|
|
|
|
|
|
|
|
|
|
@ -434,8 +421,10 @@ bool pause_print(const float &retract, const xyz_pos_t &park_point, const float
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
// Initial retract before move to filament change position
|
|
|
|
// Initial retract before move to filament change position
|
|
|
|
if (retract && thermalManager.hotEnoughToExtrude(active_extruder))
|
|
|
|
if (retract && thermalManager.hotEnoughToExtrude(active_extruder)) {
|
|
|
|
|
|
|
|
DEBUG_ECHOLNPAIR("... retract:", retract);
|
|
|
|
unscaled_e_move(retract, PAUSE_PARK_RETRACT_FEEDRATE);
|
|
|
|
unscaled_e_move(retract, PAUSE_PARK_RETRACT_FEEDRATE);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Park the nozzle by moving up by z_lift and then moving to (x_pos, y_pos)
|
|
|
|
// Park the nozzle by moving up by z_lift and then moving to (x_pos, y_pos)
|
|
|
|
if (!axes_should_home())
|
|
|
|
if (!axes_should_home())
|
|
|
@ -603,11 +592,12 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le
|
|
|
|
thermalManager.reset_hotend_idle_timer(e);
|
|
|
|
thermalManager.reset_hotend_idle_timer(e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (targetTemp > thermalManager.degTargetHotend(active_extruder))
|
|
|
|
if (targetTemp > thermalManager.degTargetHotend(active_extruder)) {
|
|
|
|
thermalManager.setTargetHotend(targetTemp, active_extruder);
|
|
|
|
thermalManager.setTargetHotend(targetTemp, active_extruder);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (nozzle_timed_out || thermalManager.hotEnoughToExtrude(active_extruder)) // Load the new filament
|
|
|
|
// Load the new filament
|
|
|
|
load_filament(slow_load_length, fast_load_length, purge_length, max_beep_count, true, nozzle_timed_out, PAUSE_MODE_SAME DXC_PASS);
|
|
|
|
load_filament(slow_load_length, fast_load_length, purge_length, max_beep_count, true, nozzle_timed_out, PAUSE_MODE_SAME DXC_PASS);
|
|
|
|
|
|
|
|
|
|
|
|
if (targetTemp > 0) {
|
|
|
|
if (targetTemp > 0) {
|
|
|
|
thermalManager.setTargetHotend(targetTemp, active_extruder);
|
|
|
|
thermalManager.setTargetHotend(targetTemp, active_extruder);
|
|
|
|