All it requires is that Mach screw up on calculating one arc, and get back on track later in the path. Mis-calculating a single arc segment can do this, and since the end points of each segment are fixed, it is entirely possible for it to go off-course, then recover in time to be on-track at the start of the next segment.
Two problems with that, I think.
* I would think that Mach will be buffering the output data by clock-tick record: something like X,Y,Z,A,B,C,t . I have a problem imagining how that record access could go wrong.
* That error would have to happen randomly over runs, but at a fixed point on the Y axis, and be recoverable. That stretches my imagination.
If I am wrong, so be it. No sweat. But I think we need some experimental data with a pen.
Cheers
No, you're missing the point. The trajectory planner takes the G-code commands, and creates a trajectory, which is a series of fairly simple, low-level motion commands - like move in a straight line from coordinates x0, y0, z0 to coordinates x1, y1, z1 at velocity v1. Then make an arc move, at velocity v2, from x1, y1, z1, on an arc whose center is at xc, yc, zc, ending at x2, y2, z2. A single line of G-code can create several of these commands, as the trajectory planner needs to figure out the necessary acceleration and velocity change points, and break each path into individual segments each having a constant velocity or acceleration. That is the level of command that is passed down to the driver to actually generate the pulses. The trajectory planner knows nothing about steps, and the driver knows nothing about the overall path, it is simply blindly executing very simple, low-level motion commands. If the trajectory planner screws up on just one of those path segments, it will tell the driver to create motion along the wrong path. In this case, it may well break the G2 that defines that circle into several smaller arc segments, and it could well be passing the driver that one segment with correct start and end points, but an incorrect arc center coordinate. That would exactly explain what Terry is seeing. There is for sure nothing in his G-code that could conceivably explain the problem.
Regards,
Ray L.