Category: General LinuxCNC Questions
I've set up a few multi head gantry machines, but the ones I was working with had fixed spacing between the heads. I've set them up using Z and W for axis for two head machines. But for a larger machine I set up that used 8 heads I used the new extra joints feature and controlled them all with the Z axis command, with each joint having separate offsets for tool lengths and the ability to enable/disable each spindle/head and when one was disabled it automatically would park raised up at it's home position.
I've thought about dual head machines with two heads on a common X or Y axis a little bit and can imagine couple of ways to handle it. One possible way that I think has merit would be to configure both heads with a common X with a U axis set up as the spacing between the two heads. This way an X axis command would move both heads in parralel motion, and U commands would vary the space between them. To set up this, if the joint arrangement is such that the two axis joints are totally independent (say each head is driven by motor turning a pinion gear on a common rack on the gantry.) the kinematics model would be joint0 = X position, and joint3 = X+U and revers kins X=J0 and U=J3-J0.
The advantage to this set up would be that the g code for milling out 2 parallel identical parts could be simple 3 axis xyz g-code. (This could be a big advantage if the current version of Linuxcnc still doesn't do advanced look-ahead tool planning for axis beyond XYZ especially if UVW are left out. That used to be the case a few years ago but may no longer be true and was the reason I set up my machines the way I did to allow commanding multiple Z axis with just a Z command instead of using Z and W...
But If you would want to do something different with both heads simultaneously, like for example cutting out mirror images of the same shape at the same time one on XYZ and the other on UYW. Then it would probably be better to have simple 1:1 kinematics with J0=X, J1=Y, J2=Z, J3=U, and J4=W. However this will make collision prevention more difficult than the U=J0+J3 model.