I have a test part that I’m using to test the 5 axis post I developed. It is a ring with holes in the face flange and some milling on a boss on the side of the part. In order for me to process the machining on the boss I need to index the B axis 90 degrees from it’s B zero position. I have 4 operations on the test part. Drill holes on the face flange with the B axis at B0 and position to drill the holes with C rotations. If I post the operations all at the same time with the drilling at the top. I get the proper expected B+ rotations in the subsequent milling operations on the boss to B90. If I post the operation on the boss alone I get B-90.
If I arrange the operations with the boss operation on top, then the drilling operation on the flange and finally the last operation on the boss, I get B-90 for the first boss operation and B 90 for the one after the drilling event.
If I edit the boss operations in Machine Control/Start of Path and set the rotate command to rotate the B axis CLW to plus whatever degrees and check off the NO OUTPUT Reference only option I get the desired B+90 degree rotations for the boss operations no matter how they are ordered in the operation navigator. I also can force the B axis to rotate CCLW by setting the rotate UDE to CCLW with a negative what ever degrees with no output reference only option checked.
Is there any way to avoid the necessity of having to set the Rotate UDE and have the Post rotate the B axis in the positive direction by default? The B axis limits are set to +/- 110 degrees in the post. I don't want to restrict the lmits to force a B axis plus rotation.
One option is to set the variables that rotate uses and call MOM_rotate in the post in the specific conditions you want to force it.
I don't know if it is the best solution but I write a new UDE to temporaly set the limit of the rotational axis. Ad example my machine has the A axis with +/- 120° of rotation (5 axis table/table machine) and I wanted to decide if it will go in negative or in positive direction.
My UDE write new value of maximum and minimum movement of the axis only for the operation. At the end of the operation the values will come back to the original value.
In this way ad example I can choose +45/-120 in the first operation and -+120/-0 in the secondo one.
To make it works I setted some new variables, assegned them the value by UDE Rotational axis limit, and add 2 custom command in the post, one at the start of the path, that set the new axis limit for the operation and one at the end, that reset to the original value the 2 variables.
Another option is in initial/first move events (I'm not sure if start of path has the needed data yet)
Examine the mom_pos & mom_alt_pos. If the B axis of mom_pos is negative & _alt is positive, reset mom_pos to mom_alt_pos & reload variable. IIRC you may have to also set mom_prev_pos/mom_last_post & mom_out_angle_pos/mom_prev_out_angle_pos
This required a bit of fiddling to make it work when I did it, but that was PB6 & (IIRC) NX4
Production: NX10.0.3.5 MP16/TC11.2
I'd rather be e-steamed than e-diseaseled