In Kinetic Control, we added a rotary unwind code, M999. Post processors can leverage M999 to rapidly wind up or unwind the continuous rotary axis on Pocket NC machines. This can be helpful to work around the software limits of the continuous rotary axis. On the V1 and V2 machines, the B axis is limited to -9999 to 9999 so in situations when a part program must rotate over ~27 times post processors must work around these limits (9,999 degrees is 27.775 rotations).

M999 requires a P parameter that specifies a desired angle of the continuous rotary axis. Without moving, the position of the continuous rotary axis will change to the closest multiple of 360 degrees from its current position to the specified P parameter. For example, if the current B location is 0 and we’d like to the command the machine to B1980 without needing to make the full ~5.5 rotations, we could issue the following codes:

M999 P1980
G0 B1980

The M999 P1980 will result in the B location jumping to B2160, 6 full rotations from it’s current location. The following G0 B1980 will command the B axis the -180 degrees it needs to go to get to 1980. This results in only 180 degrees of travel as opposed to the 1980 degrees it would otherwise need to move.

This can be used to wind up the B axis in cases where the total B travel of a tool path would result in over 9999 degrees of travel, but less than 19998 so that the full tool path can occur continuously:

; Wind up the machine in preparation for between 27 and 55 rotations in one go.
M999 P9999
G0 B9999

G1 B-9999 ; perform 55.55 full rotations (or some other machining operation that needs 19,998 degrees of rotation or less)

Or, it could be used to unwind after a program completes to ensure the machine is at B0 at the end.

; Unwind at the end of a program
M999 P0
G0 B0

It can also be used between a retract and a plunge, to quickly unwind a program that needs to spin over 55 full rotations.

; More than 55 rotations are required in single program
G1 Z2       ; plunge to cutting position
G1 B9999    ; cut up to 9999
G53 G0 Z0   ; retract as M999 will dwell for a couple seconds
M999 P-9801 ; unwind B 55 full rotations
G1 Z2.      ; plunge back to position
G1 B9999    ; cut another 19,800 degrees