diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index df3dadb8e..99b5ab771 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(); @@ -10758,7 +10759,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 704d9bb83..738192f89 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6307,8 +6307,11 @@ void lcd_print_stop() lcd_cooldown(); //turns off heaters and fan; goes to status screen. - current_position[Z_AXIS] += 10; //lift Z. - plan_buffer_line_curposXYZE(manual_feedrate[Z_AXIS] / 60); + 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); + } if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) //if axis are homed, move to parked position. { diff --git a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h index 4f51d268e..98235b824 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h @@ -71,6 +71,7 @@ // Canceled home position #define X_CANCEL_POS 50 #define Y_CANCEL_POS 190 +#define Z_CANCEL_LIFT 50 //Pause print position #define X_PAUSE_POS 50 diff --git a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h index fcc45f630..4793d3a5f 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h @@ -71,6 +71,7 @@ // Canceled home position #define X_CANCEL_POS 50 #define Y_CANCEL_POS 190 +#define Z_CANCEL_LIFT 50 //Pause print position #define X_PAUSE_POS 50 diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h index fed20087e..21d6d7cad 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h @@ -71,6 +71,7 @@ // Canceled home position #define X_CANCEL_POS 50 #define Y_CANCEL_POS 190 +#define Z_CANCEL_LIFT 50 //Pause print position #define X_PAUSE_POS 50 diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h index 3a03d5c70..cbb5fe992 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h @@ -71,6 +71,7 @@ // Canceled home position #define X_CANCEL_POS 50 #define Y_CANCEL_POS 190 +#define Z_CANCEL_LIFT 50 //Pause print position #define X_PAUSE_POS 50 diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index 39a4adbcf..ced9209c3 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -73,6 +73,7 @@ // Canceled home position #define X_CANCEL_POS 50 #define Y_CANCEL_POS 190 +#define Z_CANCEL_LIFT 50 //Pause print position #define X_PAUSE_POS 50 diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index ba71e9e3e..5f71e3556 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -75,6 +75,7 @@ // Canceled home position #define X_CANCEL_POS 50 #define Y_CANCEL_POS 190 +#define Z_CANCEL_LIFT 50 //Pause print position #define X_PAUSE_POS 50