Hello NX postbuilders,
We're trying to integrate several different machine kinematic configurations within a single postbuilder post, and having no luck getting the output we expect. My assumption was that if we change and reload the mom_variables associated with the machine kinematics, this would be possible - but I'm starting to doubt this. Looking to you guys to either give me some suggestions, or convince me that we need to use linked posts. The example scenario is as follows:
Kinematic config 1: Head-Head machine with C and A axis.
Kinematic config 2: Head-Table machine with C (Head) and B (Table)
The basic machine is a 3axis HBM with a rotating table. The two differnent kinematic configs result from mounting different head devices (1 - a two axis continuous A-C head) and (2 - a right angle head with one indexing axis C, table rotates as B).
When we change devices, we are changing the kinematic mom variables as follows:
set mom_head_spindle_axis(0) 0
set mom_head_spindle_axis(1) 1
set mom_head_spindle_axis(2) 0
set mom_kin_machine_type "5_axis_dual_head"
MOM_reload_variable -a mom_head_spindle_axis
MOM_reload_variable -a mom_kin_machine_type
We are also changing the variables for 4th and 5 axes appropriately:
Any input is much appreciated.
Your code is probably wrong.
Let say variables you are showing have nothing to do with kinematics.
Also relaoding variables is not needed.
I am using this, it should be enough:
set mom_kin_4th_axis_max_limit ...........
set mom_kin_4th_axis_min_limit .........
set mom_kin_5th_axis_max_limit ............
set mom_kin_5th_axis_min_limit .............
set mom_kin_4th_axis_vector(0) ........
set mom_kin_4th_axis_vector(1) .......
set mom_kin_4th_axis_vector(2) .........
set mom_kin_5th_axis_vector(0) .........
set mom_kin_5th_axis_vector(1) ...........
set mom_kin_5th_axis_vector(2) ...........
set mom_sys_leader(fourth_axis) .............
set mom_sys_leader(fifth_axis) ............
VEC3_unitize mom_kin_4th_axis_vector mom_kin_4th_axis_vector
VEC3_unitize mom_kin_5th_axis_vector mom_kin_5th_axis_vector
ps: Use it in "start of operation" section.
ps2: For 5 axis machines I always use table-table confguration.
Your machine kinematics (if you have a Machine Tool Builder created machine) will by default be taken from the machine. Maybe this is the problem. If this is a postbuilder post there is a routine to look at relating to this. "PB_CMD_revise_new_iks" is the name of it. Generally I have the best luck with "new kinematic solver" but there have been a couple of cases where I have set the other way. As far as not referencing the machine and using new kinematic solver - I think it is best to disable as below:
rename MOM_validate_machine_model ""
at an appropriate place in the post. I think I would source (Output Settings->Other Options->User Source) out of a separate file so I know it is "taken". As experienced user above notes - timing is important. My experience (as above) is that if a kinematic change is made in start of path - it is "taken" when things are operating correctly. I have found that the variable you are trying to use works better with "new kinematic solver."
I appreciate the input. I believe I have gotten it to work (at least for my current test scenario), mainly by changing the variables in a UDE attached to the program group I'm posting, as opposed to in the "start of path" of the operation. However, I would like to better understand some of the details you mentioned.
I had a suspicion that this variable: set mom_kin_machine_type "5_axis_dual_head" for example, doesn't actually affect the kinematics, and is just for tracking purposes. Do you agree?
If that is the case, then how does the post know whether the 5th axis is dependent on the 4th, or not? Perhaps I am missing something, but in my understanding the output of 4th and 5th axis angles for a head-table and a head-head/table-table are uniquely different.
Thanks and regards,
Have you considered integrating the adapter head functionality using NX Machine Configurator? This would enable multiple machine kinematic configurations with a single post processor. This is assuming you are using IS&V..
sim16_mill_headchange is a good example of the HEAD function in use.
From what I've seen, mom_kin_machine_type IS used, at least in posting without a machine model.
Production: NX10.0.3.5 MP16/TC11.2
I'd rather be e-steamed than e-diseaseled
Grant - our heads are _DEVICES and _HEADS - but when we grab them from the library they are under devices. They are not the seperate "HEAD" object that can be added with the UDE for the 3 offsets and the 3 spindle vector components. This is how it's done in sim16 and sim17 from what I can tell.
I'm about to mess around with some of these ideas and new variables in the post, and I'll provide some feedback soon. I do appreciate all the insight!
Sim16 uses multiple heads as devices. There is no UDE used to define tool axis vector for each head. The tool vector junction and mounting vector junction comes from the kinematics within each device. The machine kinematic chain is updated when using these devices with a machine kit that has the kinematics defined in the machine model, and an MCF file that has the adapter head functionality (GMe_ActivateHeadCorrection.xml).
We have had success with using adapter head devices with our machine kits sharing a single post processor. However this will only work if you are using a machine kit for each machine, because the post processor will inherit the kinematics from the machine model and update accordingly based on the device kinematics and the programmed tool axis vector.
sim09 has another example of adapter head integration thru the MCF file (CSE).
Best of luck.