The move from 0,0,0 to the first position is caused by the hobby version of F360 converting all Rapids to cut moves.
If you inspect the tool path operations inside F360 you will see the first move is a Rapid to the start location. Rapids are implement in Guffy’s post processor as a move first in Z and then XY. This raises the tool before moving sideways. The same is not possible with cut moves as there may be a cut that moves X, Y, and Z at the same time.
I’ve been working on a new Post Processor and it addresses
- ensuring the first move in each cut path is converted to a Rapid, thereby raising Z first.
- scaling the feedrate to ensure it is within the limits of mpcnc’s x,y,z axis speeds. This allows 3D moves, like in the corners of Engrave operations, not to violate the x axis low feedrate.
- recovering most of the Rapid moves that were converted to slow cut operation by the hobby version of F360. This is possible as to accomplish #2 I need to track the current position in addition to the target position of each cut. Since I have the current position I can determine if the cut is above the material. If it is then it is converted back to a Rapid.
I’ve done several cuts with the resulting Gcode and everything worked as expected but this doesn’t mean I consider it well tested.
Because of the extensive changes I isolated the mpcnc code from Guffy’s code that supports firmware other then Marlin. This is fairly easy to correct, now that my other changes work, but I just have not done that yet.
I had planned to create Pull Requests to merge the code back into Guffy’s repo but the changes are not issolated - so this is not simple. My code is currently in a branch in a forked repo.
I’m looking for people that want to test this Post Processor. Hoping to tidy it up and make a test post processor available this weekend.
@guffy if you have thoughts on a PR to bring the code into your repo we should talk. At this point though all the code has been duplicated into a new file and then changed. I will attempt to again create a commons.js but it has significant changes and I can’t say it hasn’t invalidated some of the extra features you supported.