VERICUT Users' Forum

Due to relentless spammers, we are no longer automatically accepting new forum registrations. If you wish to register for this forum, please send an e-mail to: info@cgtech.com

You are not logged in.

#1 2006-03-13 14:51:15

Verifun
Senior Member
From: U.S.
Registered: 2005-03-31
Posts: 351
Website

Kinematics calculations for nutating tables

Hi folks!

I?m trying to learn the calculations that our machine control does to find out the real angles that B/C axes must be positioned when I use a function of Millplus called G7 (Or CYCL DEF 19 in Heidenhain Conversational). I?m not developing a post-processor, just curious how to calculate these values, because I guess that is a very interesting thing to know.

Basically, this function allows the programmer to rotate the workplan, by means of input the rotation angles in the A/B/C axes, and then, the machine kinematics does the positioning of the axes for him. I said basically. It?s a little bit more than this. 

Our machines are DMUs70V, with B axis at 45 degrees and the C mounted upon B, turning around Z, as usual.
For instance, if I want use the dummy axis A (The machine does not have this axis physically), the control will calculate the proper values that B/C axes must be positioned, will transform the directions of the axis X/Y (The Z axis keep at vertical), update the workoffsets, etc.
(I?m being detailed, in spite of I?m aware that a lot of guys here knows what I mean  )


Programming a rotation of 90? around X axis, as stated below, the machine will return the following values on B/C axes:

G7 A5=90 L1=1

Returned values in B/C:
C0
B180

Another example: (Rotation of 45? around X)

G7 A5=45 L1=1

Returned values in B/C:
C65.53
B65.53

Another example: (Rotation of 10? around X)

G7 A5=10 L1=1

Returned values in B/C:
C84.981
B14.16

I know how to get the B value: 14.16?, but I?m having troubles to get the C value. In my calculations I don?t get 84.981?

I have got some formulas that are included on the subroutine file of Vericut. This file allows to Vericut interpret the values described on the function and positioning the axes at the correct values, just like as the control does.

Well, I learned how to calculate the positioning of the B axis, but I?m not being able to calculate the positioning in C. 

Below follow the basic math behind G7:

Variables description:

MAT13 ?X component of tool axis vector defined by ABC in G7 block
MAT23 ?Y component of tool axis vector defined by ABC in G7 block
MAT33 ?Z component of tool axis vector defined by ABC in G7 block
RXB ? New X-component of tool axis vector for mch C from mch B
RYB ? New Y-component of tool axis vector for mch C from mch B
SINA ? Sin of A value in G7 block
SINB ? Sin of B value in G7 block
SINC ? Sin of C value in G7 block
COSA ? Cosine of A value in G7 block
COSB ? Cosine of B value in G7 block
COSC ? Cosine of C value in G7 block
REALB ? Real machine B-axis position calculated from ABC in G7 block
REALC ? Real machine C-axis position calculated from ABC in G7 block
WHC ? Convert XY tool axis vector to C angle. C0 = 3 o?clock vector.


To find out the real position of B (and prepare the calculations used to find out the real value in C)

mat13 = sina*sinc + cosa*sinb*cosc (I of tool axis vector)

mat23 = [-1]*sina*cosc + cosa*sinb*sinc (J of tool axis vector)

mat33 = cosa*cosb (K of tool axis vector)

hg = [mat33-0.5]/0.5 (Calc new Z vector because mch B at 45? 1=B0 0=B180)

realb = ACOS[hg] (Convert new Z vector to mch B. B0= vertical vector ? So far OK)

whc = ATAN[mat23,mat13] (Convert XY vector to C angle. C0 = 3 o?clock vector ? Here is where my nightmare begins ? Why 2 variables within brackets? How to calculate whc?)   :?

rxb = COS45*SIN[realb] (Calc new X vector for mch C from mch B ? No problem, I presume)
ryb = -0.5+0.5*COS[realb] (Calc new Y vector for mch C from mch B ? The same idea above)

To get the real position of C (Here I have the same doubt about the 2 variables inside the brackets)

realc = ATAN[ryb,rxb]-whc   :?
realc = [-1]*realc (Reverse the value calculated above, I guess)


Well, is very important to use the math rules (I know that you know it) to calculate these values, that is, to calculate the values you must calculate values exactly as stated above, including the brackets, when applicable. I think that I am committing some mistake in some point of formulas. Does anyone here know where?

Any help in this direction would be greatly appreciated.

Regards


Daniel Santos

Offline

Board footer