Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Siemens PLM Community
- NX Manufacturing
- NX CAM Postprocessor Group
- Re: Does anyone know how to:Make 5 axis output at ...

Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

Does anyone know how to:Make 5 axis output at start of operation always be B0, C0 with IJK 001?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

One of the things UG post does is take the shortest rotary distance. Example.

Initial operation moves at IJK 0,0,1 Post outputs B0C0 Good.

Now the program has operations that move to another orientation that outputs B90.C-90.

Then succeeding operations again move to IJK 0,0,1 again, but now the post Outputs B0C-90. Bad even though XY is output correct for this rotation. The problem is the Static fixture comp used is designed for B0C0. As far as the programmer sees, the orientation is the same. Programmer assigns G54 to IJK 0,0,1 orientations. G54 configured for B0C0 will scrap parts or worse when used at B0C-90. orientation. This is a problem for most every 5 axis rotary configuration with tables.

In the post we can read the IJK only after MOM has processed the position and orientation. Too late to change the rotary output at that point with the equivalent of using the ROTATE UDE code.

What we need is a way to always force B0C0 in the above example only when IJK 001 at the start of the operation. Operation start moves only.

We know the workaround of using the ROTATE UDE to force C back to 0, that works if the workaround is remembered by the programmer, before parts are scrapped on the floor. We have built in warnings in the post when a static fixture comp is used at 2 different rotations, but warnings are not always good enough.

Also we don't want to always use the Rotate UDE equivalent of C0 at the start of every operation. That could cause flip-flop from B-90.C270. to B90.C-90. or similar, from one operation to the next.

PR turned in to Development came back with "no solution". Now an ER.

16 REPLIES 16

Re: Does anyone know how to:Make 5 axis output at start of operation always be B0, C0 with IJK 001?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

From my memory...

At initial_move and first_move check if mom_tool_axis(2) is equal to 1.000

IF it is, then set mom_pos(3) and mom_pos(4) to zero, set mom_out_angle(0) and mom_out_angle(1) to zero, then reload the variables using

MOM_reload_variable -a mom_pos

MOM_reload_variable -a mom_out_angle

I think that this is all you need.

Re: Does anyone know how to:Make 5 axis output at start of operation always be B0, C0 with IJK 001?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

What I would do...

At the end of EVERY operation reset mom_prev_out_angle_pos(0...1) to zero & reload it

global mom_prev_out_angle_pos set mom_prev_out_angle_pos(0) 0.0 set mom_prev_out_angle_pos(1) 0.0 MOM_reload_varliable -a mom_prev_out_angle_pos

Then it should be consistantly starting at the point closest to (rotary axes) (0,0)

This may change your existing posted code, but should be consistant from now on.

Note for completeness, you may have to reset everything (the "sledgehammer" approach)

# Appropriate "global"s here set mom_pos(3) 0.0 set mom_pos(4) 0.0 set mom_prev_pos(3) 0.0 set mom_prev_pos(4) 0.0 set mom_out_angle_pos(0) 0.0 set mom_out_angle_pos(1) 0.0 set mom_prev_out_angle_pos(0) 0.0 set mom_prev_out_angle_pos(1) 0.0 set mom_prev_rot_ang_4th 0.0 set mom_prev_rot_ang_5th 0.0 # Appropriate MOM_reload_variable calls here

Production:NX10.0.3.5 MP16/TC11.2

I'd rather be e-steamed than e-diseaseled

Re: Does anyone know how to:Make 5 axis output at start of operation always be B0, C0 with IJK 001?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Sorry

You also need to work with _prev variables, so at the end you must reload 4 variables

set mom_pos(3) 0.0

set mom_pos(4) 0.0

set mom_prev_pos(3) 0.0

set mom_prev_pos(4) 0.0

set mom_out_angle_pos(0) 0.0

set mom_out_angle_pos(1) 0.0

set mom_prev_out_angle_pos(0) 0.0

set mom_prev_out_angle_pos(1) 0.0

MOM_reload_variable -a mom_pos

MOM_reload_variable -a mom_prev_pos

MOM_reload_variable -a mom_out_angle_pos

MOM_reload_variable -a mom_prev_out_angle_pos

Highlighted
#

**Ken Akerboom** Sr CAx Systems Engr, Moog, Inc.

Re: Does anyone know how to:Make 5 axis output at start of operation always be B0, C0 with IJK 001?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

@Javi_Garcia wrote:

From my memory...

At initial_move and first_move check if mom_tool_axis(2) is equal to 1.000

IF it is, then set mom_pos(3) and mom_pos(4) to zero, set mom_out_angle(0) and mom_out_angle(1) to zero, then reload the variables using

MOM_reload_variable -a mom_pos

MOM_reload_variable -a mom_out_angle

I think that this is all you need.

The problem with this approach is that "mom_pos" has already been calculated.

So the X/Y/Z positions will also need to be changed to reflect the change in angle. (and if you are going directly into a drill cycle, all the mom_cycle_*_pos arrays as well)

You really need to reset the angles BEFORE the initial / first move events, so when thise events occur, NX calculates everything correctly.

Note that "read ahead" won't help - the mom_nxt_* variables aren't correct until the initial/first move events, so you can't do this in "start of path".

Note I have an IR (9187532) which (I hope) will soon be an ER, to make the mom_nxt_* variables correct at "start of path"

Production:NX10.0.3.5 MP16/TC11.2

I'd rather be e-steamed than e-diseaseled

Re: Does anyone know how to:Make 5 axis output at start of operation always be B0, C0 with IJK 001?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

And what about end_of_path?

Resetting the variables at that point should do it.

Re: Does anyone know how to:Make 5 axis output at start of operation always be B0, C0 with IJK 001?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

@Javi_Garcia wrote:

And what about end_of_path?

Resetting the variables at that point should do it.

If you are responding to my 2nd post, this is covered in my first response (probably written about the same time as your first response )

Production:NX10.0.3.5 MP16/TC11.2

I'd rather be e-steamed than e-diseaseled

Re: Does anyone know how to:Make 5 axis output at start of operation always be B0, C0 with IJK 001?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Thank You

This will work for the machines that are table table and the one axis is limited from 0 to +120, 99% of the time. Shop doesn't like cutting on the blind side. Only one rotary solution with these other than at IJK 0,0,1.. No chance of flip-flop from one operation to the other. That will cover a sizeable chunk of the problem.

Re: Does anyone know how to:Make 5 axis output at start of operation always be B0, C0 with IJK 001?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Forgot to include, I think this answer at operation end will do it for many of our configurations.

@Ken_A wrote:What I would do...

At the end of EVERY operation reset mom_prev_out_angle_pos(0...1) to zero & reload it

global mom_prev_out_angle_pos set mom_prev_out_angle_pos(0) 0.0 set mom_prev_out_angle_pos(1) 0.0 MOM_reload_varliable -a mom_prev_out_angle_pos

Then it should be consistantly starting at the point closest to (rotary axes) (0,0)

This may change your existing posted code, but should be consistant from now on.

Note for completeness, you may have to reset everything (the "sledgehammer" approach)

# Appropriate "global"s here set mom_pos(3) 0.0 set mom_pos(4) 0.0 set mom_prev_pos(3) 0.0 set mom_prev_pos(4) 0.0 set mom_out_angle_pos(0) 0.0 set mom_out_angle_pos(1) 0.0 set mom_prev_out_angle_pos(0) 0.0 set mom_prev_out_angle_pos(1) 0.0 set mom_prev_rot_ang_4th 0.0 set mom_prev_rot_ang_5th 0.0 # Appropriate MOM_reload_variable calls here

Re: Does anyone know how to:Make 5 axis output at start of operation always be B0, C0 with IJK 001?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

I use the command below. I just dealt with this last week. Only thing is that it broke the Auto_clamp, so I had to make my own custom "auto clamp" with a little help.

Try it out

Edit: I place it in the "start of path"

**global mom_pos****global mom_last_pos****global mom_prev_pos****global mom_prev_out_angle_pos****global mom_out_angle_pos**

**set mom_pos(2) 25.0****set mom_pos(3) 0.0****set mom_pos(4) 0.0****set mom_last_pos(2) 25.0****set mom_prev_pos(2) 25.0****set mom_prev_pos(3) 0.0****set mom_prev_pos(4) 0.0****set mom_prev_out_angle_pos(0) 0.0****set mom_prev_out_angle_pos(1) 0.0****set mom_out_angle_pos(0) 0.0****set mom_out_angle_pos(1) 0.0**

**MOM_reload_variable -a mom_pos****MOM_reload_variable -a mom_last_pos****MOM_reload_variable -a mom_prev_pos****MOM_reload_variable -a mom_prev_out_angle_pos****MOM_reload_variable -a mom_out_angle_pos**

Glenn Balon

*Production:* NX 12.0.2 MP7 Primarily CAM

Does anyone know how to:Make 5 axis output at start of operation always be B0, C0 with IJK 001?

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

One of the things UG post does is take the shortest rotary distance. Example.

Initial operation moves at IJK 0,0,1 Post outputs B0C0 Good.

Now the program has operations that move to another orientation that outputs B90.C-90.

Then succeeding operations again move to IJK 0,0,1 again, but now the post Outputs B0C-90. Bad even though XY is output correct for this rotation. The problem is the Static fixture comp used is designed for B0C0. As far as the programmer sees, the orientation is the same. Programmer assigns G54 to IJK 0,0,1 orientations. G54 configured for B0C0 will scrap parts or worse when used at B0C-90. orientation. This is a problem for most every 5 axis rotary configuration with tables.

In the post we can read the IJK only after MOM has processed the position and orientation. Too late to change the rotary output at that point with the equivalent of using the ROTATE UDE code.

What we need is a way to always force B0C0 in the above example only when IJK 001 at the start of the operation. Operation start moves only.

We know the workaround of using the ROTATE UDE to force C back to 0, that works if the workaround is remembered by the programmer, before parts are scrapped on the floor. We have built in warnings in the post when a static fixture comp is used at 2 different rotations, but warnings are not always good enough.

Also we don't want to always use the Rotate UDE equivalent of C0 at the start of every operation. That could cause flip-flop from B-90.C270. to B90.C-90. or similar, from one operation to the next.

PR turned in to Development came back with "no solution". Now an ER.

NX CAM Postprocessor Group

Follow Siemens PLM Software

© 2019 Siemens Product Lifecycle Management Software Inc