Hi , I have a problem. I have a three-axis milling machine with 3 Heidenhain rotors. The machine always works with three linear and two rotary axes. In the CSE, I have defined the M551 and M552 M functions that switch between the kinematic chains I have defined in X-Y-Z-A-B and X-Y-Z-A-C kinematics. To switch, I used the variable "GV_strSwivelingChainName", which I fill a string with in the given M function with the Assign Command command. The GV_strSwivelingChainName variable in the simulation check is filled with the correct string, and when working smoothly, the M128 works well. But when PLANE is used, it only works with the X-Y-Z-A-B string and the X-Y-Z-A-C string is wrong. The rotation of the axes is good, but it is working in another place. If you override the name of the kinematic string of the variable "GV_strSwivelingChainName" directly in "GlobalVariables", the simulation is good. Does anyone know where the problem is?
I attach several screens.
Thank you very much
Solved! Go to Solution.
Hard to say while it is working in M128, but not in PLANE.
Inside the CCF we also use in some cases a method with the name GMe_GetActiveChainName() to set the global variable you may can have a look into this, but not sure if it is the key.
It was necessary in M functions that switch the kinematic string to still run CSEInitializeChannel and CSEInitializeChannel_CCF. Then everything works as it should.
three-axis milling machine with 3 Heidenhain rotors, follow the above method,can working good.
I have a 7 axis milling Heidenhain machine with X Y Z A B C W .
W axis is parallel the Z axis. how to set w axis in the Kinematic Chain ,machine can work?
Appreciate everyone's help.
at first you need to setup all required kineamtic chains in the kinematic model with an unqiue string to adress them in mcf/ccf. RMB on root node of the KIM in Machine Tool Builder (not in CAM!) --> Define Kinematic Chain
second, the chain you need must be activated. You can do this with any command/metacode. The sim09 TNC NC simulation sample shows how to use the method GMe_GetActiveChainName. Depending on the mounted head it activates the head chain or the default chain of the machine. It´s up to you which logic you implement. But this is the suggested way in ALL controllers.
This is a snapshot of the M128 implementation in MCF file. The PLANE command in MCF file uses the same logic.
Hope that helps