mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2024-11-23 12:04:19 +00:00
Allow Z_SAFE_HOMING without a probe
This commit is contained in:
parent
9f1dd6d431
commit
8953e3e984
@ -566,15 +566,6 @@
|
||||
* Bed Probe dependencies
|
||||
*/
|
||||
#if HAS_BED_PROBE
|
||||
#ifndef X_PROBE_OFFSET_FROM_EXTRUDER
|
||||
#define X_PROBE_OFFSET_FROM_EXTRUDER 0
|
||||
#endif
|
||||
#ifndef Y_PROBE_OFFSET_FROM_EXTRUDER
|
||||
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0
|
||||
#endif
|
||||
#ifndef Z_PROBE_OFFSET_FROM_EXTRUDER
|
||||
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0
|
||||
#endif
|
||||
#ifndef Z_PROBE_OFFSET_RANGE_MIN
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -20
|
||||
#endif
|
||||
@ -593,6 +584,13 @@
|
||||
#else
|
||||
#define _Z_RAISE_PROBE_DEPLOY_STOW Z_RAISE_PROBE_DEPLOY_STOW
|
||||
#endif
|
||||
#else
|
||||
#undef X_PROBE_OFFSET_FROM_EXTRUDER
|
||||
#undef Y_PROBE_OFFSET_FROM_EXTRUDER
|
||||
#undef Z_PROBE_OFFSET_FROM_EXTRUDER
|
||||
#define X_PROBE_OFFSET_FROM_EXTRUDER 0
|
||||
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0
|
||||
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -735,7 +735,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -3049,12 +3049,11 @@ inline void gcode_G28() {
|
||||
SYNC_PLAN_POSITION_KINEMATIC();
|
||||
|
||||
/**
|
||||
* Set the Z probe (or just the nozzle) destination to the safe
|
||||
* homing point
|
||||
* Move the Z probe (or just the nozzle) to the safe homing point
|
||||
*/
|
||||
destination[X_AXIS] = round(Z_SAFE_HOMING_X_POINT - (X_PROBE_OFFSET_FROM_EXTRUDER));
|
||||
destination[Y_AXIS] = round(Z_SAFE_HOMING_Y_POINT - (Y_PROBE_OFFSET_FROM_EXTRUDER));
|
||||
destination[Z_AXIS] = current_position[Z_AXIS]; //z is already at the right height
|
||||
destination[Z_AXIS] = current_position[Z_AXIS]; // Z is already at the right height
|
||||
|
||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||
if (DEBUGGING(LEVELING)) {
|
||||
|
@ -353,8 +353,6 @@
|
||||
#error "AUTO_BED_LEVELING_FEATURE requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
|
||||
#elif ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
|
||||
#error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
|
||||
#elif ENABLED(Z_SAFE_HOMING)
|
||||
#error "Z_SAFE_HOMING currently requires a probe."
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@ -364,9 +362,17 @@
|
||||
*/
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
#if Z_SAFE_HOMING_X_POINT < MIN_PROBE_X || Z_SAFE_HOMING_X_POINT > MAX_PROBE_X
|
||||
#error "The given Z_SAFE_HOMING_X_POINT can't be reached by the Z probe."
|
||||
#if HAS_BED_PROBE
|
||||
#error "Z_SAFE_HOMING_X_POINT can't be reached by the Z probe."
|
||||
#else
|
||||
#error "Z_SAFE_HOMING_X_POINT can't be reached by the nozzle."
|
||||
#endif
|
||||
#elif Z_SAFE_HOMING_Y_POINT < MIN_PROBE_Y || Z_SAFE_HOMING_Y_POINT > MAX_PROBE_Y
|
||||
#error "The given Z_SAFE_HOMING_Y_POINT can't be reached by the Z probe."
|
||||
#if HAS_BED_PROBE
|
||||
#error "Z_SAFE_HOMING_Y_POINT can't be reached by the Z probe."
|
||||
#else
|
||||
#error "Z_SAFE_HOMING_Y_POINT can't be reached by the nozzle."
|
||||
#endif
|
||||
#endif
|
||||
#endif // Z_SAFE_HOMING
|
||||
|
||||
|
@ -736,7 +736,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -718,7 +718,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -716,7 +716,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -728,7 +728,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -729,7 +729,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -753,7 +753,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -736,7 +736,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -736,7 +736,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -736,7 +736,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -733,7 +733,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -744,7 +744,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -757,7 +757,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -727,7 +727,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -736,7 +736,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -828,7 +828,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -822,7 +822,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -825,7 +825,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -819,7 +819,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -820,7 +820,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -739,7 +739,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
@ -725,7 +725,7 @@
|
||||
//
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user