Skip to content
Snippets Groups Projects
Unverified Commit cd9868f4 authored by Roxy-3D's avatar Roxy-3D Committed by GitHub
Browse files

Make position_is_reachable() smarter about IDEX machines`

On many IDEX machines the allowed travel of the X1 carraige and X2 carraige does not perfectly overlap.

This helps the issue.   But more work needs to be done at the higher level.  (For example the X1_MAX_POS should probably be factored into G26's mesh validation pattern.)
parent 97f6396b
No related branches found
No related tags found
No related merge requests found
......@@ -267,9 +267,21 @@ void homeaxis(const AxisEnum axis);
// Return true if the given position is within the machine bounds.
inline bool position_is_reachable(const float &rx, const float &ry) {
#if ENABLED(DUAL_X_CARRIAGE)
if (active_extruder == 0) {
// Add 0.001 margin to deal with float imprecision
return WITHIN(rx, X1_MIN_POS - 0.001f, X1_MAX_POS + 0.001f)
&& WITHIN(ry, Y_MIN_POS - 0.001f, Y_MAX_POS + 0.001f);
} else {
// Add 0.001 margin to deal with float imprecision
return WITHIN(rx, X2_MIN_POS - 0.001f, X2_MAX_POS + 0.001f)
&& WITHIN(ry, Y_MIN_POS - 0.001f, Y_MAX_POS + 0.001f);
}
#else
// Add 0.001 margin to deal with float imprecision
return WITHIN(rx, X_MIN_POS - 0.001f, X_MAX_POS + 0.001f)
&& WITHIN(ry, Y_MIN_POS - 0.001f, Y_MAX_POS + 0.001f);
#endif
}
#if HAS_BED_PROBE
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment