We have a new machine being installed with a Heidenhain iTNC530 controller. The machine has a 4th axis limit of +/-240 which is where I'm running into trouble. In order to machine around one of the parts I have to wrap up the axis by using the rotate UDE. This does ouput the code, but then an alternate solution is substituted which isn't what I want. I have an open IR 7730336, but thought I'd ask the community to see if someone else has already solved this problem. Here's an example using the OOB post with very minor edits:
30 CYCL DEF 247 DATUM SETTING Q339=1
31 L M126
33 L M128 F10000.
34 L X32.1109 Y13.3657 Z12. C+0.0 B+0.0 F20000. M3
35 L C-120.141 <---- desired angle
36 L Z10.468 C239.859 B-4.906 F12000. <----- 360 deg alternate solution being imposed at axis limits
37 L X31.7674 Y12.774 Z2.4973 F3970. <---------engage
38 L X31.2831 Y11.9214 Z2.3007 RL F50.
39 L X31.7126 Y12.661 Z12.2641 F3970. <------- retract
40 L C-109.503
41 L B-5.606
42 L C-120.141 B-4.906 FMAX <---- desired angle again
43 L X31.2917 Y11.9362 Z2.5 <---- re-engage
44 L X31.2831 Y11.9214 Z2.3007 F50.
45 L X31.2075 Y11.7543 Z2.3207 C-109.503 B-5.606 F100.
46 L X31.1317 Y11.5875 Z2.3429 C-101.373 B-6.448
47 L X31.0556 Y11.4211 Z2.3673 C-95.203 B-7.364
48 L X30.9793 Y11.2552 Z2.3937 C-90.513 B-8.317
49 L X30.9027 Y11.0898 Z2.422 C-86.973 B-9.296
Solved! Go to Solution.
We have few postprocessors for Heidenhain, Siemens, OSAI for "gantry" type CNC-Machine, with limits for C-axis (-240...240, -270...270). But solution not so easy. We analyse for each point limit for 4th axis and if next position will outside of limits - we insert reposition motion (Retract, A=0, New C inside limits, new A, engage). See a video:
I ran into this on another machine/control type.
The problem is that one of the "*_prev_*" is not reset by the Rotate UDE, so the post still thinks the "closest" rotary position is the one it moves to in line 36.
So, as part of the proc MOM_rotate, you have to reset the variable(s) involved.
Offhand, I don't remember exactly which one(s) it is, but try
- mom_prev_pos(3) and (4)
- mom_prev_out_angle_pos(0) and (1)
Possibly others (you can use MOOG_Show_globals proc & look for variables with the "old" values)
Production: NX10.0.3.5 MP16/TC11.2
I'd rather be e-steamed than e-diseaseled
I appreciate the replies. I was able to get it working by replacing the Heidenhain MOM_rotate custom command with the Fanuc MOM_rotate custom command. I'm not sure what the difference is other than it fixed the problem.