Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.

Direction of 4th axis A rotation is inverted

ecnels
Advocate

Direction of 4th axis A rotation is inverted

ecnels
Advocate
Advocate

Hi Folks:

 

We have a Hurco 5 axis machine with a U(currently using as 3+2) and I'm modifying Post Processor code for it.  One remaining issue is that calls for A axis rotation move the U in the opposite direction that that which is expected.   We can move 110 degrees positive in A and 30 degrees negative in A.   The way the work is setup in Fusion360 CAM and the tool orientation lead me to believe the A axis should rotate positive 90 degrees.  Instead it tries to go negative (away from the front of the machine) and causes a machine limit error in A, due to the 30 degree rotation limit in that direction.  Below are code snippets for axis setup and rotation commands.

 

var aAxis = createAxis({coordinate:0, table:true, axis:[1, 0, 0], range:[110,-30], preference:1, resolution:0.001});
var cAxis = createAxis({coordinate:2, table:true, axis:[0, 0, 1], range:[-360*10,360*10], resolution:0.001});

 

 

*Executing the code snippet below generates negative numbers for the A axis.

 

The question is why is this occuring and what to look for to fix it?

 

Thanks!

 

writeBlock( // Angles for G68.2
gFormat.format(68.2),
"X" + xyzFormat.format(currentSection.workOrigin.x),
"Y" + xyzFormat.format(currentSection.workOrigin.y),
"Z" + xyzFormat.format(currentSection.workOrigin.z),
"A" + abcFormat.format(abc.x),
conditional(machineConfiguration.isMachineCoordinate(1), "B" + abcFormat.format(abc.y)),
"C" + abcFormat.format(abc.z)
); // set frame

0 Likes
Reply
Accepted solutions (2)
2,437 Views
3 Replies
Replies (3)

ecnels
Advocate
Advocate

Here's another clue??  Executing a cam program causes the rotary to try and rotate the opposite direction intended, but it appears the Z axis IS trying to goto where the rotary is trying to rotate to in order to begin facing.  This makes me think maybe I've got something wrong WCS-wise?

0 Likes

Laurens-3DTechDraw
Mentor
Mentor
Accepted solution
var aAxis = createAxis({coordinate:0, table:true, axis:[1, 0, 0], range:[110,-30], preference:1, resolution:0.001});
var cAxis = createAxis({coordinate:2, table:true, axis:[0, 0, 1], range:[-360*10,360*10], resolution:0.001});

I think changing that code to this will help:

var aAxis = createAxis({coordinate:0, table:true, axis:[-1, 0, 0], range:[110,-30], preference:1, resolution:0.001});
var cAxis = createAxis({coordinate:2, table:true, axis:[0, 0, 1], range:[-360*10,360*10], resolution:0.001});

Laurens Wijnschenk
3DTechDraw

AutoDesk CAM user & Post editor.
René for Legend.


0 Likes

ecnels
Advocate
Advocate
Accepted solution

Thanks Laurens!  I believe this would work.  While tracing through this portion of the Post code this morning it led to the following Euler line which evidently drives the rotation train:  

 

abc = new Vector(-eulerXYZ.x, -eulerXYZ.y, -eulerXYZ.z); 

 

I'm not sure why all of those are forced negative, but staying consistent with a "positive A axis rotates toward the front of the machine",  I changed the line above, so X(A) is now positive and that keeps the axis line looking positive too.  This works.

 

var aAxis = createAxis({coordinate:0, table:true, axis:[1, 0, 0], range:[110,-30], preference:1, resolution:0.001});

 

 abc = new Vector( eulerXYZ.x, eulerXYZ.y, -eulerXYZ.z); 

 

Thanks for your Help!  Now there's one issue remaining related to WCS changes for rotary positioning, but I'll open a new Post for that.

 

Best Regards,

 

 

Ev

0 Likes