Add Z_AFTER_HOMING to raise Z more in G28 (#16755)

This commit is contained in:
Scott Lahteine 2020-02-02 00:02:30 -06:00 committed by GitHub
parent ee6003be87
commit 72b4d91d2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 9 deletions

View File

@ -1065,12 +1065,14 @@
// @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, ...
// Be sure you have this distance over your Z_MAX_POS in case.
//#define Z_HOMING_HEIGHT 4 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ...
// 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
// :[-1,1]

View File

@ -405,6 +405,7 @@ void GcodeSuite::G28(const bool always_home_all) {
// Home Z last if homing towards the bed
#if Z_HOME_DIR < 0
if (doZ) {
#if ENABLED(BLTOUCH)
bltouch.init();
@ -416,10 +417,17 @@ void GcodeSuite::G28(const bool always_home_all) {
#endif
#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
} // doZ
#endif // Z_HOME_DIR < 0
sync_plan_position();

View File

@ -1755,10 +1755,9 @@ void homeaxis(const AxisEnum axis) {
#endif
#if DISABLED(DELTA) && defined(HOMING_BACKOFF_MM)
constexpr xyz_float_t endstop_backoff = HOMING_BACKOFF_MM;
const float backoff_mm = endstop_backoff[axis];
if (backoff_mm) {
current_position[axis] -= ABS(backoff_mm) * axis_home_dir;
const xyz_float_t endstop_backoff = HOMING_BACKOFF_MM;
if (endstop_backoff[axis]) {
current_position[axis] -= ABS(endstop_backoff[axis]) * axis_home_dir;
line_to_current_position(
#if HOMING_Z_WITH_PROBE
(axis == Z_AXIS) ? MMM_TO_MMS(Z_PROBE_SPEED_FAST) :