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 post/ machine def question


Bob W.
 Share

Recommended Posts

We are machining some parts with a 5-axis toolpath that involves rotating the C-axis constantly with only small movements in the B-axis.  The issue we are running into is the C-axis winds up to the point where it causes a machine alarm because there are too many digits in the G-code (C100000.000).  The most the control will accept is 99999.999.  The machine itself (Fanuc 31i) does not wind up.  Once the C-axis position moves beyond 359.999 degrees is sets back to zero so everything on the machine side is fine, the problem is in the posted code.  I tweaked my post to limit the output to 99999.999 degrees for that axis but when it is reached it wants to retract and unwind the machine.   Since the machine doesn't wind up all it is really doing is retracting, dropping back down, and proceeding with the program.  Is there a setting in the post or machine definition that will make it behave as the machine behaves, where once 359.999 degrees is reached it will proceed to 0.0 degrees without trying to unwind?

Link to comment
Share on other sites
Guest MTB Technical Services

We are machining some parts with a 5-axis toolpath that involves rotating the C-axis constantly with only small movements in the B-axis. The issue we are running into is the C-axis winds up to the point where it causes a machine alarm because there are too many digits in the G-code (C100000.000). The most the control will accept is 99999.999. The machine itself (Fanuc 31i) does not wind up. Once the C-axis position moves beyond 359.999 degrees is sets back to zero so everything on the machine side is fine, the problem is in the posted code. I tweaked my post to limit the output to 99999.999 degrees for that axis but when it is reached it wants to retract and unwind the machine. Since the machine doesn't wind up all it is really doing is retracting, dropping back down, and proceeding with the program. Is there a setting in the post or machine definition that will make it behave as the machine behaves, where once 359.999 degrees is reached it will proceed to 0.0 degrees without trying to unwind?

Does the machine support continuous rotation in the c-axis?

 

If it does, simply set the minimum to -360 and the maximum to +360.

 

Make sure the control parameters on the machine itself are set up to take shortest rotation path.

 

You should have no problems after you do this.

Link to comment
Share on other sites

Does the machine support continuous rotation in the c-axis?

 

If it does, simply set the minimum to -360 and the maximum to +360.

 

Make sure the control parameters on the machine itself are set up to take shortest rotation path.

 

You should have no problems after you do this.

Yes, the machine is working perfectly and it loops just fine.  When continuously rotating it counts up to 359.999 and resets back to zero without a hitch.  The problem is that my post wants to unwind it once the max limit is reached.  Currently the max limit in the post is 99999.999 and it will try to unwind the machine (retract, G0, C0, etc...) when it reaches that limit.  I would like to tweak my post so the max limit is +/- 359.999 and when this is reached it resets to zero (just like the machine) and doesn't try to post the unwind crap.  Is there a post setting that handles this?

Link to comment
Share on other sites
#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 : 3     #Set the type from the angle limit settings (ignore these)
pri_limtyp$  : 0
sec_limtyp$  : 0

#Rotary axis travel limits, always in terms of normal angle output
#Set the absolute angles for axis travel on primary
pri_limlo$   : -99999
pri_limhi$   : 99999
#Set intermediate angle, in limits, for post to reposition machine
pri_intlo$   : -360
pri_inthi$   : 360

#Set the absolute angles for axis travel on secondary
sec_limlo$   : -120
sec_limhi$   : 120
#Set intermediate angle, in limits, for post to reposition machine
sec_intlo$   : -120
sec_inthi$   : 120

Here is the rotary section of my post

Link to comment
Share on other sites
#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 : 3     #Set the type from the angle limit settings (ignore these)
pri_limtyp$  : 0
sec_limtyp$  : 0

#Rotary axis travel limits, always in terms of normal angle output
#Set the absolute angles for axis travel on primary
pri_limlo$   : -99999
pri_limhi$   : 99999
#Set intermediate angle, in limits, for post to reposition machine
pri_intlo$   : -360
pri_inthi$   : 360

#Set the absolute angles for axis travel on secondary
sec_limlo$   : -120
sec_limhi$   : 120
#Set intermediate angle, in limits, for post to reposition machine
sec_intlo$   : -120
sec_inthi$   : 120

Here is the rotary section of my post

 

 

Have you tried changing the 99999 to what you are looking for in pri_limlo$ and pri_limli$ and see if that stops the wind and unwind?

Link to comment
Share on other sites

Have you tried changing the 99999 to what you are looking for in pri_limlo$ and pri_limli$ and see if that stops the wind and unwind?

Yes, I have tried about every combination with those parameters and it always wants to post the unwind routine.  The way we are getting around this right now is forcing tool changes between operations and that resets the C value in the posted code.  Each operation only spins the C up to ~60000 degrees so forcing tool changes gets us where we need to be.  I'd like to come up with a permanent fix though.

Link to comment
Share on other sites
Guest MTB Technical Services

Unless they changed the machine def, you set the rotary limits in the machine def.

 

You can set them to -360/+360 and the machine will not have a problem.

You should not need to do this in the post.

Link to comment
Share on other sites

The Generic 5X Mill Post does not read the limits from the Machine Def. Only 3rd Party posts like In-House or Postability do that.

 

For the Gen Fan 5X Mill Post (and its derivatives), the limits are controlled in the post.

 

In your case Bob, if the Primary is allowed to wind up, then you need to set the limits in the post to exceed that wind up amount. (Just add a couple 9's to the high and low limit.)

 

Output of the values is controlled independently from the rotary limits.

 

Find this section in your post:

#Output formatting
top_map      : 0     #Output toolplane toolpaths mapped to top view
                     #The post must have code added for your machine control
pang_output  : 0     #Angle output options, primary
sang_output  : 0     #Angle output options, secondary
                     #0 = Normal angle output
                     #1 = Signed absolute output, 0 - 360
                     #2 = Implied shortest direction absolute output, 0 - 360

As you can see, it is the 'pang_output' and 'sang_output' variables that control how the codes are output for the rotaries. Try setting 'pang_output' to '2'. This will keep the value output between 0 and 360, and it will just output '0', when it crosses over the 360.

  • Like 2
Link to comment
Share on other sites
Guest MTB Technical Services

The Generic 5X Mill Post does not read the limits from the Machine Def. Only 3rd Party posts like In-House or Postability do that.

 

For the Gen Fan 5X Mill Post (and its derivatives), the limits are controlled in the post.

 

In your case Bob, if the Primary is allowed to wind up, then you need to set the limits in the post to exceed that wind up amount. (Just add a couple 9's to the high and low limit.)

 

Output of the values is controlled independently from the rotary limits.

 

Find this section in your post:

#Output formatting
top_map      : 0     #Output toolplane toolpaths mapped to top view
                     #The post must have code added for your machine control
pang_output  : 0     #Angle output options, primary
sang_output  : 0     #Angle output options, secondary
                     #0 = Normal angle output
                     #1 = Signed absolute output, 0 - 360
                     #2 = Implied shortest direction absolute output, 0 - 360

As you can see, it is the 'pang_output' and 'sang_output' variables that control how the codes are output for the rotaries. Try setting 'pang_output' to '2'. This will keep the value output between 0 and 360, and it will just output '0', when it crosses over the 360.

 

Ah, that explains it.

 

I can't understand the thought behind having a machine def that holds all that information if you're not going to use it.

Oh well.

Link to comment
Share on other sites

Ah, that explains it.

 

I can't understand the thought behind having a machine def that holds all that information if you're not going to use it.

Oh well.

Yeah, it gets frustrating not knowing what actually controls the feature and what does absolutely nothing.  It would be nice if they would clean out the crap so only the functional items remained.

  • Like 1
Link to comment
Share on other sites

Yeah, it gets frustrating not knowing what actually controls the feature and what does absolutely nothing.  It would be nice if they would clean out the crap so only the functional items remained.

 

Actually, what doesn't function for your set up Bob, does have functionality in other machine setups....

Link to comment
Share on other sites

Actually, what doesn't function for your set up Bob, does have functionality in other machine setups....

 

Even if it was grayed out to let you know that feature wasn't used in your setup it would be helpful. 

  • 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...