Adaptive Machining

The same as our company name, and I see a lot of misrepresentation or confusion towards what is Adaptive Machining. Using a CAM “adaptive cutting” path option is not adaptive machining; it is only an adaptive cutting path. Adaptive Machining is much more than a prepackaged cutting path. Adaptive Machining is the machine’s ability to react to changing cutting conditions to make parts, and I believe it will one day become the standard of machining. 

To understand what Adaptive Machining really is, I need explain a normal CNC G-code program. 

When I first started to teach CNC Programming to the next generation, connect-the-dot books were the fundamental building blocks for controlling the CNC machines.

G-code, as mentioned in a previous post [g-code-or-conversational], is a combination of letters and numbers. These numbers tell the machine where to go, how to go, and what to do. A simple program would be something like:

 1    G00 X0 Y0

 2    G01 X0.5 Y-0.5

 3    G03 X1.0 Y0.0 J0.5

 4    G03 X1.0 Y0.0 I-1.0 J0

 5    G03 X0.5 Y0.5 I-0.5

 6    G01 X0 Y0   

 

Circle cutter path with lead-in and lead-out path

The program code is simple, clean, and limited.

Moving away from simple billet materials and into the higher proficiency requirements of castings leaned on my computer programming background and merged computer programming and CNC programming into one new hybrid.  

Adaptive Machining is the utilization of the CNC to adapt to changing conditions.

Here is the same code and a fundamental block of understanding Adaptive Machining:

#900=0.5

1 G00 X0 Y0

2 G01 X.5 Y-.5

3 G03 X[2*#900] Y0 J0.5

4 G03 X1.0 Y0 I-[2*#900] J0

5 G03 X0.5 Y0.5 I-0.5

6 G01 X0 Y0

This is of course a generic exchange of the value [0.5] into the X and I position. The goal of this was to see the relationship between math and movement. Instead of a fixed number, we have substituted a simple math formula. We can add a scaling factor to this program by changing a single line of code. Want to double the size? Change #900=0.5 to 1., or for better flexibility #900=[.5*#901]], and #901 is now a scale factor; change it to 0.0001 or 10000. and everything between.

Now exchange all of the X and Y values for the #900, remove some redundant commands, and add our little scaling factor:

#900=[0.5*#901]

1 G00 X0 Y0

2 G01 X[#900] Y-[#900]

3 G03 X[2*#900] Y0 J[#900] 

4 G03 I-[2*#900]

5 G03 X[#900] Y[#900] I-[#900]

6 G01 X0 Y0

This is only one step in a shift towards Adaptive Machining and the empowerment it brings.

The move away from hard numbers and into variables and formulas empowers our once simple program to have unlimited scalability.

As the part complexity grows, the formulas can become algorithms, changing stepover, adding or removing program lines automatically, changing feed rates, etc.

 

Why would anyone need to use this when CAM is available? As mentioned earlier <here>, this language evolved from machining castings; bent features, partial plasma cutoff of injection gates, welded and rebuilt features from air pockets, etc., would require a separate program to be made for each variance. It also means CAD models, or at least 2D representations would need to be made for every part that is different. That choice would destroy your profit margin. By embracing Adaptive Machining, programs can be rewritten into Adaptive programs and save your bottom dollar. 

Leave a Comment

Your email address will not be published. Required fields are marked *