I need a little help understanding how NX determines the 4th axis position where it pertains to "Main" and "Local" MCS. I have a Kurt vise tower setup with eight separate parts. Main MCS at the center of rotation and 8 Local MCS at each part location. Geometry is setup as Main MCS with 8 child workpieces each with a child Local MCS. When I post the program with the "Special Purpose" option set to None or Fixture offset, I do not get B axis postions. When I set the option to Use Main MCS, I get B axis positions. My goal is to have the nc code for each part based upon the local MCS, but have the correct B axis position in relation to the Main MCS. I've tried some of the OOTB posts and even created new ones based on a standard 4 axis with table and 5 axis with table/head configuration, no editing, all with the same results. All this leaves me with a few conclusions, the formost being, "I'm not gettin it". Any help would be greatly appreciated.
NX 22.214.171.124 MP13
The logic of NX is clear.
If you use Main MCS, then NX calculates the angles of rotation based on kinematics of your machine. If you don't use Main MCS, there is no calculation of the angles, and they are zeroes.
For second situation (as you want) you should edit postprocessor and try to get the angle B from global variable mom_csys_matrix which defines the mapping from the current Local MCS to the Main MCS. I think, it's rather simple task for 4-axis machine.
This was my first concern looking at the possibilities with MCS setup. I chose another route (post - take mom_mcs_goto and math out locations) but using csys type special purpose locals and then changing mom_out_angle_pos rotary positions to mom_init_pos(3,4) in the post may accomplish this (would have to test.)
Initially what I did was use the mom_msys_matrix ,mom_msys_origin and lots of math to determine the 4th axis position and the local coodinate system, and that works for me, but my concern is that moving forward with the possiblity of simulation in our future, will my post and it's math work the machine kit?
I would think if you can avoid the math it is better. I decided to use math because I was making posts for a shop where every machine was set up different. One would have dynamic offsetting (like G54.1 or G54.4) approach, another would run a program at a pallet zero for all sides (Use Main) and another would want offsets to a zero for each orientation. I decided that instead of doing different things in NX to achieve each of these - I would have them set a local to (Use Main) in all cases - and I would do whatever I had to in the post to make it work for each situation. The rotaries will come out fine (then) and I would transform the output as needed in the post for the individual machine code style.
The logic to Use Main MCS or not to Use Main MCS depends mainly on the method of defining Program Zeroes when working on the real machine. As a rule, the most suitable way is to define the origin once (using measurement tool and some features of part) as a Main MCS, without any additional local CS. However sometimes I met situations when worker preferred to use several origins and different programs for each of local base accordingly.
I don't know why the author of topic needs so many local systems, as shown in his pictures, but anyway this is a solvable math problem.