I now have a partial understanding of what is happening, and believe it is related to the G64 path smoothing.
First, I’m testing with a Fusion 360 adaptive clear toolpath that results in lots of complex curves to carve out a cross shape with a circle in the middle. So it clears the slots with a bunch of small moves, then gradually expands to clear out the center before moving on to each of the remaining slots. It uses an optimal load of 0.25mm, so it is supposed to engage the tool at most that much with each pass.
With the legacy controller, I always ran the Fusion 360 post leaving the “Smoothing Tolerance” parameter at -1, which put no smoothing control directives into the gcode at all that can I see. So no G64 or G61 in the gcode. The legacy controller’s UI reports that G64 of some kind is active from power up, but I don’t know how to tell what values it is using. When running my toolpath on the legacy controller in this mode, the adaptive tool paths seem to run at full speed all the time with no slow downs. I also have never observed axis slipping in this configuration.
With the Kinetic control, G64 is also reported as active at power up. Using the same gcode from above with it results in extraordinarily slow movements, once the tool path is anything more complicated than a very gradual curve. So its at-boot parameters seem to be different from the legacy controller. I have been setting semi-random values for the “Smoothing Tolerance” in the post-processor to work around this. I was using 0.01 (which translated to G64 P0.01, so I think 0.01mm since I’m in G21) typically. For the tests with the biggest problems I selected 0.005 for some reason. With the 0.005 smoothing parameter the control not only moves more slowly, but does lots of other bad things and seems to follow the paths much worse, or at least much less evenly. The adaptive clear was supposed to take 0.25mm per pass, but I saw it oscillate from probably 0.05mm to >=0.5mm. This setting was where I saw the worst axis slipping as well. With the 0.010 that I had been mostly using, there is still some stuttering in curves and some amount of pass-to-pass unevenness but not as bad and the entire toolpath would sometimes complete without issue.
The LinuxCNC documentation indicates that the default should be “G64 P0” which should “sacrifice path following accuracy in order to keep the feed rate up”, which is what I assumed the legacy controller was using - Important User Concepts . However, with the Kinetic control, if I commanded “G64 P0”, I got behavior that looked pretty close if not indistinguishable from G61 (exact path mode). I did this by hand, as it is not possible to specify a smoothing tolerance of “0” in the F360 post-processor, it just omits the smoothing control directive in that case the same as for the default of -1.
Note that this isn’t really problematic for tool paths that don’t rely on many small short line segments like the adaptive ones do.
So, I now have several questions:
- What path smoothing mode does the legacy controller start in?
- How can I configure the Kinetic control in the same way?
- Why does the Fusion 360 post-processor omit the smoothing control entirely by default? This was a decent source of confusion for me, as in some tests I was inadvertently using the smoothing parameters from a previous test when I thought I was using some kind of default.
- Why does specifying a smaller value for the smoothing tolerance result in paths that track worse and lose steps? I possibly don’t care about this if I can reliably get back to legacy controller behavior which was totally adequate for my use cases. For anything precision, I always use a F360 primitive that emits a single arc or line, and the legacy controller at least tracked that pretty accurately and so has the Kinetic control in my more limited testing.
I took video of all the above experiments that I can annotate and share if helpful.