Jump to content

Welcome to eMastercam

Register now to participate in the forums, access the download area, buy Mastercam training materials, post processors and more. This message will be removed once you have signed in.

Use your display name or email address to sign in:

5-axis Table-Table, Stop Primary "flipping"


Recommended Posts

Hi all,

 

I have a table-table setup with a B and C (I think- Z axis rotary on top of a Y-axis rotary). All my directions and angles are working out fine, and I'm getting good numbers out.

 

My main issue is that I would like to stop the machine from "flipping" the primary rotary. For instance, if I am machining a dead center 180deg arc over a hemisphere, my B axis will go from -90 to 0 to -90. In the small degree range the primary has to accelerate pretty high. I'd rather the B-axis continue on an just go straight from 90 to -90. I'm not actually machining anything, it would be more like a probe run.

 

I'm using the generic HAAS 5-axis post that I've modified to include my limits and directions. I am using the mi10 = 0. Here is what I think are the relevant sections.

 

#Assign axis address

str_pri_axis : "C"

str_sec_axis : "B"

str_dum_axis : "A"

 

#Toolplane mapped to top angle position strings

str_n_a_axis : "A"

str_n_b_axis : "B"

str_n_c_axis : "C"

 

#Machine rotary routine settings

mtype : 0 #Machine type (Define base and rotation plane below)

#0 = Table/Table

#1 = Tilt Head/Table

#2 = Head/Head

#3 = Nutator Table/Table

#4 = Nutator Tilt Head/Table

#5 = Nutator Head/Head

 

#Primary axis angle description (in machine base terms)

#With nutating (mtype 3-5) the nutating axis must be the XY plane

rotaxis1$ = vecx #Zero

rotdir1$ = vecy #Direction

 

#Secondary axis angle description (in machine base terms)

#With nutating (mtype 3-5) the nutating axis and this plane normal

#are aligned to calculate the secondary angle

rotaxis2$ = vecz #Zero

rotdir2$ = vecx #Direction

 

#Secondary shift (determines position and angle calculation)

#plane correction 90 degree shift case (plus or minus)

#used when secondary plane is defined perp to primary zero

#EX. P - vecx, vecy S - vecz, vecy

shift_90_s : 1 #Shift pos.=1, neg.=-1

 

#Rotary axis limits

adj2sec : 0 #Attempt to adjust the primary axis from secondary?

#Allows primary axis to flip 180 to satisfy secondary

#0 = Off

#1 = Use method when secondary is out of limit

#Use with pri_limtyp = one to keep secondary as controlling

#limit when limit tripped

#Use with pri_limtyp = two to allow 180 degree reposition

 

#Set pri_limtyp and sec_limtyp on following conditions

#0 = Less than 180 degrees

#1 = Equal or greater than 180 degrees and less than 360 degrees

#2 = Soft limit at 0-360 degrees with hard limits slightly beyond

#Set limhi-limlo to hard limits, inthi-intlo to 360 degrees total

#limhi-limlo are expected equal amount from inthi-intlo

#3 = Greater than 360 degrees

auto_set_lim : 0 #Set the type from the angle limit settings (ignore these)

pri_limtyp$ : 3

sec_limtyp$ : 1

 

#Rotary axis travel limits, always in terms of normal angle output

#Set the absolute angles for axis travel on primary

pri_limlo$ : -9999999

pri_limhi$ : 9999999

#Set intermediate angle, in limits, for post to reposition machine

pri_intlo$ : -9999999

pri_inthi$ : 9999999

 

#Set the absolute angles for axis travel on secondary

sec_limlo$ : -95

sec_limhi$ : 95

#Set intermediate angle, in limits, for post to reposition machine

sec_intlo$ : -95

sec_inthi$ : 95

 

bias_null : 0 #mi4 and mi5 bias are applied at null toolchanges

 

use_clamp : 1 #Use the automatic clamp Mcode

 

#Table/Table spindle axis alignment. (Typically Z+. Always Z+ with nutating machine types!)

# Choose the axis that is parallel to the spindle with all rotaries at their zero positions.

spind_align : 3 #1=(X+), 2=(Y+), 3=(Z+), -1=(X-), -2=(Y-), -3=(Z-)

 

#Machine base matrix (Base matrix to map positions into)

matb1$ : 1

matb2$ : 0

matb3$ : 0

matb4$ : 0

matb5$ : 1

matb6$ : 0

matb7$ : 0

matb8$ : 0

matb9$ : 1

 

#Tolerance settings for wind up

p_tol_ang : 210 #Primary angle move to exceed for direction change

s_tol_ang : 210 #Secondary angle move to exceed for direction change

d_tol_ang : 210 #Dummy angle move to exceed for direction change

 

#pri_limtyp = 1, tolerance to validate tripping limit

# reset the p_frc_adj_sec flag when back to normal range

#pri_limtyp = 2, angle move >= to trigger reposition on primary and

# angle move >= with rev5 or 180 reposition to validate tripping limit

p_rsoft_tol : 45

 

#sec_limtyp = 2, Angle move >= for reposition

s_soft_tol : 270

 

adj_lim_trp : 90 #Angle move in p_pri_rot180 to trip reposition

 

#pri_limtyp = 3 and sec_limtyp = 3 control values

p_rsoft_tol3 : 45 #Angle move >= with rev5 or 180 reposition

 

 

Thanks so much for the help in advance!

Link to comment
Share on other sites

Chuck welcome to the forum. Without an example file hard to know what you are seeing. Have you looked at the mi variables that control certain things? They might help with what you are doing. The posts does not have intelligence built into it per say. It is a limited math formula process that looks at input and then does output. Travels and actions are not really considered without some input from the programmer. That is kind of up to the programmer to consider certain things to make certain things happen. Sometimes 1 deg shift on certain things will make toolpaths run so much smoother. Other things like how the planes are setup and how the relation to the Zero and Center of Rotation are taken into account come into play. All a process and again hard to nail down what you are looking for without an example file to follow and help put it all together.

Link to comment
Share on other sites

I'll bet he's having a singularity issue.

 

Chuck, do a search for "singularity" in the forum search to see what I'm talking about. Basically you are crossing a point where you have an infinite number of solutions to solve the next position. The best cure to avoid it is to not have your part completely centered/symmetrical and then rotate the part like 1/2 a degree about X or Y and that should solve it.

Link to comment
Share on other sites
  • 7 years later...
On 4/15/2014 at 2:14 PM, crazy^millman said:

Tuan welcome to the forum. Without an example file hard to know what you are seeing. Have you looked at the mi variables that control certain things? They might help with what you are doing. The posts does not have intelligence built into it per say. It is a limited math formula process that looks at input and then does output. Travels and actions are not really considered without some input from the programmer. That is kind of up to the programmer to consider certain things to make certain things happen. Sometimes 1 deg shift on certain things will make toolpaths run so much smoother. Other things like how the planes are setup and how the relation to the Zero and Center of Rotation are taken into account come into play. All a process and again hard to nail down what you are looking for without an example file to follow and help put it all together.

Quoted the original response since the same thing still applies 7 years later.

On 7/31/2021 at 3:51 PM, Tuan Nguyen said:

I have a problem with B is at 50 degrees and C at -90 degrees. But the program shows C0. B50.

 

Any help?

 

Link to comment
Share on other sites
On 7/31/2021 at 6:51 PM, Tuan Nguyen said:

I have a problem with B is at 50 degrees and C at -90 degrees. But the program shows C0. B50.

 

Any help?

Every time I have seen the C out by 90 degrees is is becasue the B (or A) axis is defined incorrectly. The B-axis is typically about the machine's Y axis. If your post thinks your B-axis is defined about machine X then you will get the C out by 90. Same thing will happen if your B is about X on the machine, but the post thinks its about Y.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

Join us!

eMastercam - your online source for all things Mastercam.

Together, we are the strongest Mastercam community on the web with over 56,000 members, and our online store offers a wide selection of training materials for all applications and skill levels.

Follow us

×
×
  • Create New...