If the requirements could be clearly defined, then I am sure Centroid would consider adding it to the to-do list.
But first, the requirements need to be clear.
Currently, Centroid does not recognize wraparound of rotary axes. A5.0 is one place; A365.0 is a different place. If you are at A355.0, and you want to move forward ten degrees, you program A365.0.
I understand from your post that, given code like:
Code: Select all
N10 G90 G0 A355.0 Z0.1
N20 A5.0
N30 G1 F10 Z-0.2
N40 G1 F720 A10.0
... you would like the move on N20 to go forward ten degrees.
I assume also that you would like the move on N40 to go forward five degrees. That implies that you expect the control to automatically reset/unwind the rotary axis when crossing 360/0, so that when the move on N20 is done, the control considers the axis to be at 5.0, and not at 365.0; or perhaps that all rotary moves are to reassess the shortest path.
In your ideal control, how would you program a rotary feedrate move that exceeds 180 degrees?
Currently on a Centroid control, you can run code like this:
Code: Select all
N10 G0 G90 X0.0 A0.0 Z0.1
N20 G1 F10 Z-0.1
N30 G1 F500 X2.0 A3600.0
N40 G0 Z0.1
... to cut ten turns of a 5 revs/inch spiral. At the end of that cut, if you have CNC12 v5.10 or newer, you could program "M151/A" to reset the position so that A3600.0 becomes A0.0.
I am guessing that you want the shortest-path rule to apply only to rapid (G0) moves, and never to feedrate (G1, G2 or G3) moves.
I am guessing that, after such a rapid move is complete, you want the starting position to be reset so that any subsequent feedrate move is considered to start from a local position greater than or equal to +0.0, and less than +360.0.
Should there be any way to program a rapid move that exceeds 180 degrees?
While a rapid move of more than 180 degrees probably serves no useful purpose in production machining (except perhaps if there is excessive backlash in the rotary table drive, so you are trying to approach every cut from the same side), I use 360-degree rapid moves all the time when setting up and testing a new installation. I suppose one could get used to using "G1 F10000" for such moves instead.