@bar @RomanG
Thinking about calibration, as I understand the current algorithm, it will be able to cut accurately even if the anchors are not a perfect rectangle.
however, I am concerned that it assumes that tthe ‘bottom’ two are exactly horizontal to each other. I think there needs to be a (probably optional) step to correct for skew of the workpiece to the reference anchors.
As a test, could you move one of the two refence anchors up the side of the frame a foot or so (enough to make the problem very obvious), then do the calibration, and then try to cut a line.
my belief is that with the calibration as described, the line will be angled to match the bottom anchors.
If this is the case, I would suggest that you have an optional step where you have the user drive the sled to two points that the user defines as being horizontal to each other, and then issue a command to rotate the coordinates of the anchors so that those points are horizontal in reference to the internal coordinate system. At that point, I think everything should ‘just work’ and not need any code in the normal gcode processing path.
As I understand the code, it doesn’t require that any anchors be lined up with each other, but in doing the calibration, is assumes that the bottom two are (otherwise it has nothing to reference to as a horizon)
in gathering the two points, the X coordinates of them should not need to be centered, just as far apart as practical to give as long a baseline as you can get (which is also the reason to do this horizontally rather than vertically)
the easiest way (for the user) that I can think of to define these points is to have them get a 8-10 ft long aluminum angle, line it up parallel to the top of the workpiece, put a strip of aluminum tape around the outside of the sled, and use the touch approach to bump the sled into the angle in a couple of places.
but it really doesn’t matter if you do that, or just have them line the bit up with the edge of the workpiece in a couple of points (ideally both should be options)