Zig,
No plans to include arcs. I can't use them anyway because it will be hard to make offsets to compensate for skew (Gskew), you'd get elipses. I could get it to work for just the Gopt program I guess, but that would be way down the pipeline.
I don't quite understand your question about the sorting logic but it works like this:
-Find out where the toolchanges are and treat the code in between as seperate blocks for the sorting logic.
-Find the closest entry point to a line (track beginning and ending at a different location), or loop (track beginning and ending at the same location).
-Find yet another closest entry point for another line or loop. Use the location where the previous line or loop ended as a reference point. If it was a loop, the entry and exit point are the same. If it is a line, the exit point is at the other end from the line.
-Repeat this process for each tool change block.
So it does reverse direction of the lines sometimes if this makes the rapid positioning path shorter. It doesn't reverse the direction of the loops, because this makes no difference.
Hope this answers your question.
Tjeerd |