This is an old revision of the document!
Rotate A axis to 0 position
For some applications A-axis is programmed as endless rotation. Program position of A may come to many hyndreds degree after G-code finished. See screenshot example below -
To start new job A position should be roll back to about “0” position. Jogging to “0” may take a long time. In some cases it's possible just reset A position, but A axis orientation will be lost. The best way to substract from current A-coordinates a whole number of turns (360 degree), then move to “0”.
This can be done through macro-programming.
We will add macro M335 to bring A axis to “0”, then add a button to run the macro.
A-axis program position value is mapped to global variable #5044. We will arrange a loop, test in the loop A-coordinate and substract 360 degree if current coordinate is more than 360 degree (more than 1 turn). Result value will be stored as current A-axis position and then we will move A-axis to “0”
- M335
(Move to position A=0) #10=#5044 (Get position A) if [ #10 LT 0 ] 300 N100 if [ #10 LT 180 ] 200 #10 = #10 - 360 JUMP 100 N200 JUMP 400 N300 if [ #10 GT -180 ] 400 #10 = #10 + 360 JUMP 300 N400 G90 G10 L70 P#5220 A#10 (store #10 value as A-axis program position) G90 G0 A0