|
@ -1607,16 +1607,17 @@ static void setup_for_endstop_move() { |
|
|
endstops.enable(); |
|
|
endstops.enable(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#if HAS_BED_PROBE |
|
|
static void clean_up_after_endstop_or_probe_move() { |
|
|
|
|
|
|
|
|
static void clean_up_after_endstop_or_probe_move() { |
|
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE) |
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE) |
|
|
if (DEBUGGING(LEVELING)) DEBUG_POS("clean_up_after_endstop_or_probe_move", current_position); |
|
|
if (DEBUGGING(LEVELING)) DEBUG_POS("clean_up_after_endstop_or_probe_move", current_position); |
|
|
#endif |
|
|
#endif |
|
|
feedrate = saved_feedrate; |
|
|
feedrate = saved_feedrate; |
|
|
feedrate_multiplier = saved_feedrate_multiplier; |
|
|
feedrate_multiplier = saved_feedrate_multiplier; |
|
|
refresh_cmd_timeout(); |
|
|
refresh_cmd_timeout(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#if HAS_BED_PROBE |
|
|
|
|
|
|
|
|
static void clean_up_after_endstop_move() { |
|
|
static void clean_up_after_endstop_move() { |
|
|
clean_up_after_endstop_or_probe_move(); |
|
|
clean_up_after_endstop_or_probe_move(); |
|
|
endstops.not_homing(); |
|
|
endstops.not_homing(); |
|
@ -3058,14 +3059,7 @@ inline void gcode_G28() { |
|
|
|
|
|
|
|
|
#endif // !DELTA (gcode_G28)
|
|
|
#endif // !DELTA (gcode_G28)
|
|
|
|
|
|
|
|
|
#if ENABLED(ENDSTOPS_ONLY_FOR_HOMING) |
|
|
endstops.not_homing(); |
|
|
endstops.enable(false); |
|
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE) |
|
|
|
|
|
if (DEBUGGING(LEVELING)) { |
|
|
|
|
|
SERIAL_ECHOLNPGM("ENDSTOPS_ONLY_FOR_HOMING endstops.enable(false)"); |
|
|
|
|
|
} |
|
|
|
|
|
#endif |
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
// Enable mesh leveling again
|
|
|
// Enable mesh leveling again
|
|
|
#if ENABLED(MESH_BED_LEVELING) |
|
|
#if ENABLED(MESH_BED_LEVELING) |
|
@ -3097,9 +3091,8 @@ inline void gcode_G28() { |
|
|
} |
|
|
} |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
feedrate = saved_feedrate; |
|
|
clean_up_after_endstop_or_probe_move(); |
|
|
feedrate_multiplier = saved_feedrate_multiplier; |
|
|
|
|
|
refresh_cmd_timeout(); |
|
|
|
|
|
endstops.hit_on_purpose(); // clear endstop hit flags
|
|
|
endstops.hit_on_purpose(); // clear endstop hit flags
|
|
|
|
|
|
|
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE) |
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE) |
|
@ -3597,8 +3590,6 @@ inline void gcode_G28() { |
|
|
if (DEBUGGING(LEVELING)) DEBUG_POS("> probing complete", current_position); |
|
|
if (DEBUGGING(LEVELING)) DEBUG_POS("> probing complete", current_position); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
clean_up_after_endstop_or_probe_move(); |
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DELTA) |
|
|
#if ENABLED(DELTA) |
|
|
|
|
|
|
|
|
if (!dryrun) extrapolate_unprobed_bed_level(); |
|
|
if (!dryrun) extrapolate_unprobed_bed_level(); |
|
@ -3725,7 +3716,7 @@ inline void gcode_G28() { |
|
|
ABL_PROBE_PT_3_Y + home_offset[Y_AXIS], |
|
|
ABL_PROBE_PT_3_Y + home_offset[Y_AXIS], |
|
|
current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS, |
|
|
current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS, |
|
|
p3, verbose_level); |
|
|
p3, verbose_level); |
|
|
clean_up_after_endstop_or_probe_move(); |
|
|
|
|
|
if (!dryrun) set_bed_level_equation_3pts(z_at_pt_1, z_at_pt_2, z_at_pt_3); |
|
|
if (!dryrun) set_bed_level_equation_3pts(z_at_pt_1, z_at_pt_2, z_at_pt_3); |
|
|
|
|
|
|
|
|
#endif // !AUTO_BED_LEVELING_GRID
|
|
|
#endif // !AUTO_BED_LEVELING_GRID
|
|
@ -3807,6 +3798,9 @@ inline void gcode_G28() { |
|
|
// Stow the probe. Servo will raise if needed.
|
|
|
// Stow the probe. Servo will raise if needed.
|
|
|
stow_z_probe(); |
|
|
stow_z_probe(); |
|
|
|
|
|
|
|
|
|
|
|
// Restore state after probing
|
|
|
|
|
|
clean_up_after_endstop_or_probe_move(); |
|
|
|
|
|
|
|
|
#ifdef Z_PROBE_END_SCRIPT |
|
|
#ifdef Z_PROBE_END_SCRIPT |
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE) |
|
|
#if ENABLED(DEBUG_LEVELING_FEATURE) |
|
|
if (DEBUGGING(LEVELING)) { |
|
|
if (DEBUGGING(LEVELING)) { |
|
|