Fix MIN_PROBE_EDGE bug in default ABL G29 (#16367)

This commit is contained in:
Jason Smith
2020-01-03 17:46:26 -06:00
committed by Scott Lahteine
parent d7aee3b7b6
commit 3cade6245e
17 changed files with 175 additions and 110 deletions

View File

@ -31,6 +31,12 @@
extern xyz_pos_t probe_offset;
#if HAS_PROBE_XY_OFFSET
extern xyz_pos_t &probe_offset_xy;
#else
constexpr xy_pos_t probe_offset_xy{0};
#endif
bool set_probe_deployed(const bool deploy);
#ifdef Z_AFTER_PROBING
void move_z_after_probing();
@ -54,6 +60,7 @@
#else
constexpr xyz_pos_t probe_offset{0};
constexpr xy_pos_t probe_offset_xy{0};
#define DEPLOY_PROBE()
#define STOW_PROBE()
@ -71,13 +78,7 @@
);
inline float probe_radius() {
return printable_radius - (
#if HAS_BED_PROBE
_MAX(MIN_PROBE_EDGE, HYPOT(probe_offset.x, probe_offset.y))
#else
MIN_PROBE_EDGE
#endif
);
return printable_radius - _MAX(MIN_PROBE_EDGE, HYPOT(probe_offset_xy.x, probe_offset_xy.y));
}
#endif
@ -85,10 +86,8 @@
return (
#if IS_KINEMATIC
(X_CENTER) - probe_radius()
#elif ENABLED(NOZZLE_AS_PROBE)
_MAX(MIN_PROBE_EDGE_LEFT, X_MIN_POS)
#else
_MAX((X_MIN_BED) + (MIN_PROBE_EDGE_LEFT), (X_MIN_POS) + probe_offset.x)
_MAX((X_MIN_BED) + (MIN_PROBE_EDGE_LEFT), (X_MIN_POS) + probe_offset_xy.x)
#endif
);
}
@ -96,10 +95,8 @@
return (
#if IS_KINEMATIC
(X_CENTER) + probe_radius()
#elif ENABLED(NOZZLE_AS_PROBE)
_MAX(MIN_PROBE_EDGE_RIGHT, X_MAX_POS)
#else
_MIN((X_MAX_BED) - (MIN_PROBE_EDGE_RIGHT), (X_MAX_POS) + probe_offset.x)
_MIN((X_MAX_BED) - (MIN_PROBE_EDGE_RIGHT), (X_MAX_POS) + probe_offset_xy.x)
#endif
);
}
@ -107,10 +104,8 @@
return (
#if IS_KINEMATIC
(Y_CENTER) - probe_radius()
#elif ENABLED(NOZZLE_AS_PROBE)
_MIN(MIN_PROBE_EDGE_FRONT, Y_MIN_POS)
#else
_MAX((Y_MIN_BED) + (MIN_PROBE_EDGE_FRONT), (Y_MIN_POS) + probe_offset.y)
_MAX((Y_MIN_BED) + (MIN_PROBE_EDGE_FRONT), (Y_MIN_POS) + probe_offset_xy.y)
#endif
);
}
@ -118,10 +113,8 @@
return (
#if IS_KINEMATIC
(Y_CENTER) + probe_radius()
#elif ENABLED(NOZZLE_AS_PROBE)
_MAX(MIN_PROBE_EDGE_BACK, Y_MAX_POS)
#else
_MIN((Y_MAX_BED) - (MIN_PROBE_EDGE_BACK), (Y_MAX_POS) + probe_offset.y)
_MIN((Y_MAX_BED) - (MIN_PROBE_EDGE_BACK), (Y_MAX_POS) + probe_offset_xy.y)
#endif
);
}