|
@ -108,6 +108,9 @@ static bool ensure_safe_temperature(const AdvancedPauseMode mode=ADVANCED_PAUSE_ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void do_pause_e_move(const float &length, const float &fr) { |
|
|
void do_pause_e_move(const float &length, const float &fr) { |
|
|
|
|
|
#if ENABLED(FILAMENT_RUNOUT_SENSOR) |
|
|
|
|
|
runout.reset(); |
|
|
|
|
|
#endif |
|
|
current_position[E_AXIS] += length / planner.e_factor[active_extruder]; |
|
|
current_position[E_AXIS] += length / planner.e_factor[active_extruder]; |
|
|
planner.buffer_line(current_position, fr, active_extruder); |
|
|
planner.buffer_line(current_position, fr, active_extruder); |
|
|
planner.synchronize(); |
|
|
planner.synchronize(); |
|
@ -442,6 +445,7 @@ void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep |
|
|
// Wait for filament insert by user and press button
|
|
|
// Wait for filament insert by user and press button
|
|
|
KEEPALIVE_STATE(PAUSED_FOR_USER); |
|
|
KEEPALIVE_STATE(PAUSED_FOR_USER); |
|
|
wait_for_user = true; // LCD click or M108 will clear this
|
|
|
wait_for_user = true; // LCD click or M108 will clear this
|
|
|
|
|
|
|
|
|
while (wait_for_user) { |
|
|
while (wait_for_user) { |
|
|
#if HAS_BUZZER |
|
|
#if HAS_BUZZER |
|
|
filament_change_beep(max_beep_count); |
|
|
filament_change_beep(max_beep_count); |
|
@ -554,14 +558,14 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le |
|
|
// Move Z_AXIS to saved position
|
|
|
// Move Z_AXIS to saved position
|
|
|
do_blocking_move_to_z(resume_position[Z_AXIS], NOZZLE_PARK_Z_FEEDRATE); |
|
|
do_blocking_move_to_z(resume_position[Z_AXIS], NOZZLE_PARK_Z_FEEDRATE); |
|
|
|
|
|
|
|
|
|
|
|
#if ADVANCED_PAUSE_RESUME_PRIME != 0 |
|
|
|
|
|
do_pause_e_move(ADVANCED_PAUSE_RESUME_PRIME, ADVANCED_PAUSE_PURGE_FEEDRATE); |
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
// Now all extrusion positions are resumed and ready to be confirmed
|
|
|
// Now all extrusion positions are resumed and ready to be confirmed
|
|
|
// Set extruder to saved position
|
|
|
// Set extruder to saved position
|
|
|
planner.set_e_position_mm((destination[E_AXIS] = current_position[E_AXIS] = resume_position[E_AXIS])); |
|
|
planner.set_e_position_mm((destination[E_AXIS] = current_position[E_AXIS] = resume_position[E_AXIS])); |
|
|
|
|
|
|
|
|
#if ENABLED(FILAMENT_RUNOUT_SENSOR) |
|
|
|
|
|
runout.reset(); |
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
#if HAS_LCD_MENU |
|
|
#if HAS_LCD_MENU |
|
|
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS); |
|
|
lcd_advanced_pause_show_message(ADVANCED_PAUSE_MESSAGE_STATUS); |
|
|
#endif |
|
|
#endif |
|
|