Merge pull request #5678 from Bob-the-Kuhn/G38-optional-double-tap
G38 bug fix, made double touch optional & reverted to Z_MIN_PROBE
This commit is contained in:
@ -61,7 +61,7 @@
|
||||
* G30 - Single Z probe, probes bed at X Y location (defaults to current XY location)
|
||||
* G31 - Dock sled (Z_PROBE_SLED only)
|
||||
* G32 - Undock sled (Z_PROBE_SLED only)
|
||||
* G38 - Probe target - similar to G28 except it uses the Z_MIN endstop for all three axes
|
||||
* G38 - Probe target - similar to G28 except it uses the Z_MIN_PROBE for all three axes
|
||||
* G90 - Use Absolute Coordinates
|
||||
* G91 - Use Relative Coordinates
|
||||
* G92 - Set current position to coordinates given
|
||||
@ -4824,31 +4824,32 @@ inline void gcode_G28() {
|
||||
set_current_from_steppers_for_axis(ALL_AXES);
|
||||
SYNC_PLAN_POSITION_KINEMATIC();
|
||||
|
||||
// Only do remaining moves if target was hit
|
||||
if (G38_endstop_hit) {
|
||||
|
||||
G38_pass_fail = true;
|
||||
|
||||
// Move away by the retract distance
|
||||
set_destination_to_current();
|
||||
LOOP_XYZ(i) destination[i] += retract_mm[i];
|
||||
endstops.enable(false);
|
||||
prepare_move_to_destination();
|
||||
stepper.synchronize();
|
||||
#if ENABLED(PROBE_DOUBLE_TOUCH)
|
||||
// Move away by the retract distance
|
||||
set_destination_to_current();
|
||||
LOOP_XYZ(i) destination[i] += retract_mm[i];
|
||||
endstops.enable(false);
|
||||
prepare_move_to_destination();
|
||||
stepper.synchronize();
|
||||
|
||||
feedrate_mm_s /= 4;
|
||||
feedrate_mm_s /= 4;
|
||||
|
||||
// Bump the target more slowly
|
||||
LOOP_XYZ(i) destination[i] -= retract_mm[i] * 2;
|
||||
// Bump the target more slowly
|
||||
LOOP_XYZ(i) destination[i] -= retract_mm[i] * 2;
|
||||
|
||||
endstops.enable(true);
|
||||
G38_move = true;
|
||||
prepare_move_to_destination();
|
||||
stepper.synchronize();
|
||||
G38_move = false;
|
||||
endstops.enable(true);
|
||||
G38_move = true;
|
||||
prepare_move_to_destination();
|
||||
stepper.synchronize();
|
||||
G38_move = false;
|
||||
|
||||
set_current_from_steppers_for_axis(ALL_AXES);
|
||||
SYNC_PLAN_POSITION_KINEMATIC();
|
||||
set_current_from_steppers_for_axis(ALL_AXES);
|
||||
SYNC_PLAN_POSITION_KINEMATIC();
|
||||
#endif
|
||||
}
|
||||
|
||||
endstops.hit_on_purpose();
|
||||
@ -4860,7 +4861,7 @@ inline void gcode_G28() {
|
||||
* G38.2 - probe toward workpiece, stop on contact, signal error if failure
|
||||
* G38.3 - probe toward workpiece, stop on contact
|
||||
*
|
||||
* Like G28 except uses Z min endstop for all axes
|
||||
* Like G28 except uses Z min probe for all axes
|
||||
*/
|
||||
inline void gcode_G38(bool is_38_2) {
|
||||
// Get X Y Z E F
|
||||
|
Reference in New Issue
Block a user