Table of Contents
Tangential knife (Oscillating knife) control in myCNC
NOTE: This article is superseced by the newer manual on tangential cutting control: Tangential Cutting Setup
myCNC software has built-in features for tangential knife control.
What is Tangential control in myCNC
Tangential knife control activated if the value of “1” is written into Global variable #7005.
In this case, input g-code file is modified automatically to support tangential knife:
- Positioning blocks (G0-code) is modified. CNC Control software looks at the next motion code, calculates motion direction angle and add C-axis rotation into the G0 code to follow the next motion.
- For Arc interpolation codes (G2, G3) - CNC control add C-axis rotation to follow motion direction
- For Linear interpolation (G1 code) - CNC control calculates an angle between two line segments and
- If the angle less than Knife Min Angle, then C-axis rotation built-in into the G1 line to follow motion direction on smooth curves.
- else If the angle less than Knife Min Angle (2) , then C-axis rotation is added between the lines and made in the material
- else Lift up, C-axis rotation and Move Down is added between the lines to handle sharp corners.
All this control is performed automatically if global variable #7005 is set to “1”.
There are many possible ways to set the variable and have tangential control enabled permanently or switched on-off on-the-fly (for example if switching between Spindle, Marker and tangential nife in G-code program)
How to enable Tangential Control permanently
It's possible to set the variable #7005 by checking a “Knife Enabled” checkbox in “Tangential Knife” configuration widget.
The #7005 variable can be set in Software PLC, “HANDLER_INIT.plc”.
Software PLC procedure HANDLER_INIT is running at the start of myCNC control software right after a complete configuration sent to the controller.
It's very easy to add a line to set the variable 7005 -
gvarset(7005,1);
For example
- __HANDLER_INIT.plc
main() { gvarset(60000,1); //run Servo ON procedure gvarset(7005,1); //Enable Tangential Knife control exit(99); };