User Tools

Site Tools


No renderer 'odt' found for mode 'odt'
mycnc:move-a-to-0

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 A position may come to many thousands 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 (can be hundreds of complete turn to run). In some cases it's possible just reset A position, but A axis orientation will be lost. The best way to subtract a number of complete turns (360 degree), then move to “0” for the rest of A.

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. In the macro we -

  • Check if A-position is positive
  • Add a code loop,
  • Test in the loop A-coordinate and subtract 360 degree if current coordinate is more than 360 degree (more than 1 turn).
  • Store result value as current A-axis position and then
  • Move A-axis to “0”.
  • Add similar branch for negative A-coordinate value.
M335
(Move to position A=0)
#10=#5044 (Get position A)

if [ #10 LT 0 ] 300 (Test If A-position is negative)
(if positive)
N100
if [ #10 LT 180 ] 200 (Test if A-position higher than 180 degrees)

#10 = #10 - 360 (Subtract a whole turn - 360 degree)
JUMP 100 (Jump to begin of the Loop)
 
N200
JUMP 400
 
N300
if [ #10 GT -180 ] 400 (Test if A-position lower than -180 degrees)
#10 = #10 + 360 (Add a whole turn - 360 degree)
JUMP 300 (Jump to begin of the Loop)
 
N400
G90 G10 L70 P#5220 A#10 (store #10 value as A-axis program position)
G90 G0 A0 (rotate A axis to 0)

Add "move A to 0" button

mycnc/move-a-to-0.1504541377.txt.gz · Last modified: 2017/09/04 12:09 by skirillov

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki