|
@@ -1607,16 +1607,17 @@ static void setup_for_endstop_move() {
|
1607
|
1607
|
endstops.enable();
|
1608
|
1608
|
}
|
1609
|
1609
|
|
|
1610
|
+static void clean_up_after_endstop_or_probe_move() {
|
|
1611
|
+ #if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
1612
|
+ if (DEBUGGING(LEVELING)) DEBUG_POS("clean_up_after_endstop_or_probe_move", current_position);
|
|
1613
|
+ #endif
|
|
1614
|
+ feedrate = saved_feedrate;
|
|
1615
|
+ feedrate_multiplier = saved_feedrate_multiplier;
|
|
1616
|
+ refresh_cmd_timeout();
|
|
1617
|
+}
|
|
1618
|
+
|
1610
|
1619
|
#if HAS_BED_PROBE
|
1611
|
1620
|
|
1612
|
|
- static void clean_up_after_endstop_or_probe_move() {
|
1613
|
|
- #if ENABLED(DEBUG_LEVELING_FEATURE)
|
1614
|
|
- if (DEBUGGING(LEVELING)) DEBUG_POS("clean_up_after_endstop_or_probe_move", current_position);
|
1615
|
|
- #endif
|
1616
|
|
- feedrate = saved_feedrate;
|
1617
|
|
- feedrate_multiplier = saved_feedrate_multiplier;
|
1618
|
|
- refresh_cmd_timeout();
|
1619
|
|
- }
|
1620
|
1621
|
static void clean_up_after_endstop_move() {
|
1621
|
1622
|
clean_up_after_endstop_or_probe_move();
|
1622
|
1623
|
endstops.not_homing();
|
|
@@ -3058,14 +3059,7 @@ inline void gcode_G28() {
|
3058
|
3059
|
|
3059
|
3060
|
#endif // !DELTA (gcode_G28)
|
3060
|
3061
|
|
3061
|
|
- #if ENABLED(ENDSTOPS_ONLY_FOR_HOMING)
|
3062
|
|
- endstops.enable(false);
|
3063
|
|
- #if ENABLED(DEBUG_LEVELING_FEATURE)
|
3064
|
|
- if (DEBUGGING(LEVELING)) {
|
3065
|
|
- SERIAL_ECHOLNPGM("ENDSTOPS_ONLY_FOR_HOMING endstops.enable(false)");
|
3066
|
|
- }
|
3067
|
|
- #endif
|
3068
|
|
- #endif
|
|
3062
|
+ endstops.not_homing();
|
3069
|
3063
|
|
3070
|
3064
|
// Enable mesh leveling again
|
3071
|
3065
|
#if ENABLED(MESH_BED_LEVELING)
|
|
@@ -3097,9 +3091,8 @@ inline void gcode_G28() {
|
3097
|
3091
|
}
|
3098
|
3092
|
#endif
|
3099
|
3093
|
|
3100
|
|
- feedrate = saved_feedrate;
|
3101
|
|
- feedrate_multiplier = saved_feedrate_multiplier;
|
3102
|
|
- refresh_cmd_timeout();
|
|
3094
|
+ clean_up_after_endstop_or_probe_move();
|
|
3095
|
+
|
3103
|
3096
|
endstops.hit_on_purpose(); // clear endstop hit flags
|
3104
|
3097
|
|
3105
|
3098
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
|
@@ -3597,8 +3590,6 @@ inline void gcode_G28() {
|
3597
|
3590
|
if (DEBUGGING(LEVELING)) DEBUG_POS("> probing complete", current_position);
|
3598
|
3591
|
#endif
|
3599
|
3592
|
|
3600
|
|
- clean_up_after_endstop_or_probe_move();
|
3601
|
|
-
|
3602
|
3593
|
#if ENABLED(DELTA)
|
3603
|
3594
|
|
3604
|
3595
|
if (!dryrun) extrapolate_unprobed_bed_level();
|
|
@@ -3725,7 +3716,7 @@ inline void gcode_G28() {
|
3725
|
3716
|
ABL_PROBE_PT_3_Y + home_offset[Y_AXIS],
|
3726
|
3717
|
current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS,
|
3727
|
3718
|
p3, verbose_level);
|
3728
|
|
- clean_up_after_endstop_or_probe_move();
|
|
3719
|
+
|
3729
|
3720
|
if (!dryrun) set_bed_level_equation_3pts(z_at_pt_1, z_at_pt_2, z_at_pt_3);
|
3730
|
3721
|
|
3731
|
3722
|
#endif // !AUTO_BED_LEVELING_GRID
|
|
@@ -3807,6 +3798,9 @@ inline void gcode_G28() {
|
3807
|
3798
|
// Stow the probe. Servo will raise if needed.
|
3808
|
3799
|
stow_z_probe();
|
3809
|
3800
|
|
|
3801
|
+ // Restore state after probing
|
|
3802
|
+ clean_up_after_endstop_or_probe_move();
|
|
3803
|
+
|
3810
|
3804
|
#ifdef Z_PROBE_END_SCRIPT
|
3811
|
3805
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
3812
|
3806
|
if (DEBUGGING(LEVELING)) {
|