how can I start the rotation of EVERY tool on a more spindle drill head?
Now just the first tool is rotating and the NC code looks like "S500 M3".
I use NX 10.03.5 MP1 .
OOTB the implementation of S and M in the CCF by default address the MainSpindle() only.
You need to customize the related metacodes and loop over all spindles you like to start, stop or set spindle speed for.
There is a milling machine with just one main spindle.
Now I take a drill head with 8 more spindles for example.
When starting drilling just the fist spindle is rotation and the other one are staying.
The drill head has S1, S2, S3 ... spindle and so on.
When I try to start spindle S5 the error apears that the spindle S5 is not registered.
So how can I register this spindle S5 in a builded up machine?
I try to use the global implementation of spindle speed and mode (see image).
Just the first placed tool is rotating.
All spindles are assigned to the channel, but I havent done a speacial assignment for the spindles.
If the tool change is done, all the spindles appear in the first channel.
we have a running training sample which covers exactly your use case and it works.
Both spindle axis are configured as you can see in the screenshot:
It doesn matter If they are flagged as NC Axis or not for the spinning issue.
GMe_SetSpindleMode uses CSE command "SetSpindleMode" and GMe_SetSpindleSpeed uses CSE command "SetSpindleSpeed" with some additional controller stuff (not necessary for spinning tool geometry).
In your case both spindles were fixed components of the machine.
My Machine has one main spindle.
After a head change you get a more spindle drill head with n spindles.
The main spindle lead the other spindles with a S and M value.
Paralel to the example I define the metacodes, but my spindles were unknown.
The device definition is correct.
They are unknown because they arent registered?!
I tried to reproduce it on my sample machine. The good news are it works the bad ones are, I don´t know why it doesn´t work on your machine.
2 weeks ago I asked you about the channel assginemnt of the spindles. It seems that this is the culprit.
At the end of the head mount macro, you should have such code inside. You must ensure that the "old" main spindle is detached from the channel and the new spindles are attached to use them.
detachJoint ("S"); attachJoint ("S1", "Main", "S1"); attachJoint ("S2", "Main", "S2");