diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index f36164ac..2640acbb 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3688,6 +3688,7 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float //Lift Z current_position[Z_AXIS] += z_shift; + clamp_to_software_endstops(current_position); plan_buffer_line_curposXYZE(FILAMENTCHANGE_ZFEED); st_synchronize(); @@ -10734,7 +10735,7 @@ void long_pause() //long pause print //lift z current_position[Z_AXIS] += Z_PAUSE_LIFT; - if (current_position[Z_AXIS] > Z_MAX_POS) current_position[Z_AXIS] = Z_MAX_POS; + clamp_to_software_endstops(current_position); plan_buffer_line_curposXYZE(15); //Move XY to side diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 4f9f4a3c..738192f8 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6309,6 +6309,7 @@ void lcd_print_stop() if (axis_known_position[Z_AXIS]) { current_position[Z_AXIS] += Z_CANCEL_LIFT; + clamp_to_software_endstops(current_position); plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60); }