diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 7dedc8a4b..ad1407ae3 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -308,6 +308,7 @@ extern float max_pos[3]; extern bool axis_known_position[3]; extern int fanSpeed; extern int8_t lcd_change_fil_state; +extern float default_retraction; #ifdef TMC2130 void homeaxis(int axis, uint8_t cnt = 1, uint8_t* pstep = 0); diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 4970091ea..3327f8f8e 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -9571,10 +9571,6 @@ void long_pause() //long pause print // Stop heaters setAllTargetHotends(0); - //retract - current_position[E_AXIS] -= default_retraction; - plan_buffer_line_curposXYZE(400, active_extruder); - //lift z current_position[Z_AXIS] += Z_PAUSE_LIFT; if (current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5d0abeac9..d29e40617 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1662,7 +1662,7 @@ void lcd_return_to_status() //! @brief Pause print, disable nozzle heater, move to park position void lcd_pause_print() { - stop_and_save_print_to_ram(0.0,0.0); + stop_and_save_print_to_ram(0.0, -default_retraction); lcd_return_to_status(); isPrintPaused = true; if (LcdCommands::Idle == lcd_commands_type) @@ -6771,7 +6771,7 @@ void lcd_resume_print() if (fan_error_selftest()) return; //abort if error persists isPrintPaused = false; - restore_print_from_ram_and_continue(0.0); + restore_print_from_ram_and_continue(default_retraction); pause_time += (_millis() - start_pause_print); //accumulate time when print is paused for correct statistics calculation refresh_cmd_timeout(); SERIAL_PROTOCOLLNRPGM(MSG_OCTOPRINT_RESUMED); //resume octoprint