|
|
|
@ -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
|
|
|
|
|