I am using MARLIN FW with a self-build mill.
When trying to correct the geometry by SW, as per SKEW_CORRECTION, I realized, that the
coordinates before/after SKEW_CORRECTION must be within the bed (In planner.h, skew() checks for COORDINATE_OKAY(), which
is active, if any of the HW-endstops is available).
#if ANY(USE_XMIN_PLUG, USE_YMIN_PLUG, USE_ZMIN_PLUG, USE_XMAX_PLUG, USE_YMAX_PLUG, USE_ZMAX_PLUG)
#define HAS_ENDSTOPS 1
#define COORDINATE_OKAY(N,L,H) WITHIN(N,L,H)
#else
#define COORDINATE_OKAY(N,L,H) true
#endif
What is the rationale for this check in the case of SKEW_CORRECTION?
I would expect, that this check should only be applied, if SW_ENDSTOPS are available and enabled. How can I find out the connection to HW endstops:
Example g-code to reproduce the behavior:
G92 X0 Y0 Z0
M852 I0.5
G1 Y100
This code should control the mill to drive to -50,100,0 coordinate, but runs to 0,100,0 (as without SKEW_CORRECTION).