4 axis CNC with single rotary axis on spindle
-
Hello,
I am currently designing/building a CNC which has the standard 3 cartesian axes (prismatic) xyz, as well as a rotary axis 'a' on the spindle. I am looking to achieve at minimum 3+1 machining hopefully with TCP on the duet.
Looking through the forum and documentation I am unsure how to define my kinematics or if my kinematics can even be defined. I have looked into the m669 command but am unsure how to use it the C parameter for my application. I have looked briefly at how to add custom kinematics but I'd prefer not to go down that road.
My kinematics vary only slightly compared to cartesian kinematics: (tool pointed down at 0 angle)
Xdesired = Xaxis
Ydesired = Yaxis + sin(A) * L
Zdesired = Zaxis - cos(A) * LInverted: (always solve for prismatic axes, A angle never to be driven)
Xaxis = Xdesired
Yaxis = Ydesired - sin(A)
Zaxis = Zdesired +cos(A) * LIf I am not able to achieve TCP in duet I will just change the RepRap fusion 360 post processor to accommodate my kinematics. I most likely have to alter the post processor anyway to achieve 4-axis machining.
Any help or guidance on how to achieve my goal would be greatly appreciated.
-Jon
-
An update:
I have modified the RepRap fusion 360 post processor to allow for my 4th axis with two options to handle 3 + 1 machining. This enables the configuration of my machine to simply think the A axis is a 4th prismatic axis with no rotational kinematics to consider.
The first option rotates the orientation from the angled tool orientation back to the wcs. This was done so that an easy kinematic configuration on the duet which would just translate the tool according to the given A angle so that the the tip remains in the desired location. The machines kinematics would look like the one described in my above post.
The second option in the post processor is to both rotate and translate the tool orientation back to the wcs. This uses the selected tools length or an optional input length to calculate the translation required. With this option no transformation or kinematics are needed on the machine. As long as an accurate length from the centre of rotation to the tool tip is known, this should work fine.
I will post the post processor once I know it works once I complete the build.While this option should be able to work currently, it is not optimal. Optimally the machine touches off the tool to determine its z offset which will translate to the length from centre of rotation to the tool tip. With that offset length the duet can handle the kinematics.
My question to @JoergS5 and @dc42 is how should I approach this? would this be relatively simple to implement if I was to add/modify a src/Movement/Kinematics file? In reality it is a CNC5AC with no C.
Thank you for your time.
-
@Jon-vdk I suggest you take a look at https://github.com/Duet3D/RepRapFirmware/wiki/Adding-New-Kinematics.