User Tools

Site Tools


mycnc:tangential_knife_support

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:

  1. 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.
  2. For Arc interpolation codes (G2, G3) - CNC control add C-axis rotation to follow motion direction
  3. For Linear interpolation (G1 code) - CNC control calculates an angle between two line segments and
    1. 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.
    2. else If the angle less than Knife Min Angle (2) , then C-axis rotation is added between the lines and made in the material
    3. 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);
};

mycnc/tangential_knife_support.txt · Last modified: 2023/01/09 11:26 by ivan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki