Add Z_AFTER_HOMING to raise Z more in G28 (#16755)
This commit is contained in:
parent
ee6003be87
commit
72b4d91d2e
3 changed files with 18 additions and 9 deletions
|
@ -1065,12 +1065,14 @@
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
||||||
//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed
|
//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed
|
||||||
|
|
||||||
//#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.
|
//#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.
|
||||||
|
|
||||||
//#define Z_HOMING_HEIGHT 4 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ...
|
//#define Z_HOMING_HEIGHT 4 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ...
|
||||||
// Be sure you have this distance over your Z_MAX_POS in case.
|
// Be sure to have this much clearance over your Z_MAX_POS to prevent grinding.
|
||||||
|
|
||||||
|
//#define Z_AFTER_HOMING 10 // (mm) Height to move to after homing Z
|
||||||
|
|
||||||
// Direction of endstops when homing; 1=MAX, -1=MIN
|
// Direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
// :[-1,1]
|
// :[-1,1]
|
||||||
|
|
|
@ -405,6 +405,7 @@ void GcodeSuite::G28(const bool always_home_all) {
|
||||||
|
|
||||||
// Home Z last if homing towards the bed
|
// Home Z last if homing towards the bed
|
||||||
#if Z_HOME_DIR < 0
|
#if Z_HOME_DIR < 0
|
||||||
|
|
||||||
if (doZ) {
|
if (doZ) {
|
||||||
#if ENABLED(BLTOUCH)
|
#if ENABLED(BLTOUCH)
|
||||||
bltouch.init();
|
bltouch.init();
|
||||||
|
@ -416,10 +417,17 @@ void GcodeSuite::G28(const bool always_home_all) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HOMING_Z_WITH_PROBE && defined(Z_AFTER_PROBING)
|
#if HOMING_Z_WITH_PROBE && defined(Z_AFTER_PROBING)
|
||||||
probe.move_z_after_probing();
|
#if Z_AFTER_HOMING > Z_AFTER_PROBING
|
||||||
|
do_blocking_move_to_z(Z_AFTER_HOMING);
|
||||||
|
#else
|
||||||
|
probe.move_z_after_probing();
|
||||||
|
#endif
|
||||||
|
#elif defined(Z_AFTER_HOMING)
|
||||||
|
do_blocking_move_to_z(Z_AFTER_HOMING);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
} // doZ
|
} // doZ
|
||||||
|
|
||||||
#endif // Z_HOME_DIR < 0
|
#endif // Z_HOME_DIR < 0
|
||||||
|
|
||||||
sync_plan_position();
|
sync_plan_position();
|
||||||
|
|
|
@ -1755,10 +1755,9 @@ void homeaxis(const AxisEnum axis) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if DISABLED(DELTA) && defined(HOMING_BACKOFF_MM)
|
#if DISABLED(DELTA) && defined(HOMING_BACKOFF_MM)
|
||||||
constexpr xyz_float_t endstop_backoff = HOMING_BACKOFF_MM;
|
const xyz_float_t endstop_backoff = HOMING_BACKOFF_MM;
|
||||||
const float backoff_mm = endstop_backoff[axis];
|
if (endstop_backoff[axis]) {
|
||||||
if (backoff_mm) {
|
current_position[axis] -= ABS(endstop_backoff[axis]) * axis_home_dir;
|
||||||
current_position[axis] -= ABS(backoff_mm) * axis_home_dir;
|
|
||||||
line_to_current_position(
|
line_to_current_position(
|
||||||
#if HOMING_Z_WITH_PROBE
|
#if HOMING_Z_WITH_PROBE
|
||||||
(axis == Z_AXIS) ? MMM_TO_MMS(Z_PROBE_SPEED_FAST) :
|
(axis == Z_AXIS) ? MMM_TO_MMS(Z_PROBE_SPEED_FAST) :
|
||||||
|
|
Reference in a new issue