CNC Programs Control
Does anyone have a good document procedure for controlling CNC machine programs for the operators? Our operators have too much leeway in adjusting the machine programs once in their possession. I would greatly appreciate hearing from you if your organization has defined this control. Thank you!
6 Replies
Dear Shelley Baldwin

This is a potential minefield. If I was to ask you to write something on a piece of paper, would 10 different people give you 10 different ways, The only thing similar in a dissertation is the template and guidelines.

I am not a CNC programmer, but I know there are problems like
1. depth of cut == tooling wear == accuracy of dimension
2. cooling available = tool life ==accuracy of dimension
3. sequence of operation == tooling change == time to complete part

A while back I, was stunned when I came across a 6 axis CNC Have a look at the difference in machining time comparing a 3 axis with a 6 axis side by side (1:37 mins of the 4:44mins video). about a mins difference in machine time, There is now even a 7 axis machine

Observe the part formation to appreciate the subtle differences in machine time, accuracy and possible tooling wear. The possibilities are endless on the permutations of action.

What problem are you facing> variation in part completion time? accuracy of part dimensions? part scrap?

It might be safer to engage these rather than trying to harmonize the idiosyncrasies of CNC programmers, their pride and familiarity with all the machine variability and the rationale of why they do it "my way"

All the best, in your decision,
Hi, Ernest,
Thank you for the video. Unfortunately, we are a long way off with purchasing such a wonderful machine.

The problem we have is a simple one and probably not unique. When the parts are inspected in QC, we find too many digressions from the requirements. The operators, in customizing their process and machine capabilities to fit the drawing is resulting in accuracy errors, errors in spec conformance, i.e., dims, surface characteristics. Perhaps the programs themselves are not current, so they are bypassing the CNC program without regard for approval -- no control. The operator is adjusting the program to their assumed fit based on their skill and experience with the part.

I may have answered my own question -- re-look at the actual programs to assess their accuracy and thereby prevent interpretations by the operator to make the finished part "fit" the program.

Thanks, Ernest.
Dear Shelley Baldwin,

My introduction to Datums was a very painful one. I bought a pack of 8 mirrors and mounted it on the entrance wall. 2 columns x 4 rows.

I assumed that the top of the wall and the floor were parallel. So when I took dimensions from the top of the wall, I ended up with a slanted mirror made all the worse with the differences from the floor. Let alone the eye level when looking at the mirror.

You might like to review ASME 14.5:2018 Dimensioning and Tolerancing What datum did the originator take the dimension from. Where did the CNC programmer take the dimension from? Do they match?

If there are 2 parts that fit together datums have to be a mirror to take into account the same origin point of the dimension.

If there are Basic dimensions, did the programmers take it into consideration and not just move xxx mm = Tolerance accumulation errors...

Hope that helps you confirm your suspicions,
My company is having a similar issue. Our issue is less final product dimensions and more during the machine set-up. Our programmer is highly skilled and makes minor adjustments to the program throughout time, mostly shortcuts or improvements. This is causing less experienced g coders to waste a lot of time during set up as they try to understand the code

My answer: I guess i don't have one. I believe they are trying to utilize more comments in the g-code and less adjustments to the g-code.

As far as document management, g-code should be official documentation and any changes should require sign off by management or maybe yourself.
Hi Shelley and Steven, I have worked with CNC programs used to manufacture medical devices, and so have seen similar problems.
Maybe some of my experiences could be of benefit.

1 Developing the CNC programs
1.1 When designing the programs we used the CNC controller features to separate items that we wanted the operator to be allowed to change
(tool set up tables used to establish the tool zero point after a tool change, tool radius tables to account for tool wear, feed rate tables for small adjustments to surface finish and cycle time...) from items that we did not want changed (tool movement commands that control part geometry, number of passes, depths of cuts, spindle speeds...). The allowable adjustments were documented in a Standard Operating Procedure and reinforced through training.
Some CNC controllers also allow password protection of items that should normally not be changed in production.
1.2 We put a header section with comments at the beginning of each program listing its version and brief change history.
2 Procedure for controlling CNC programs
2.1 We used the company enterprise doc control system to store the CNC programs and implement version control on each one.
We had SOPs that specified how to update the version when an engineering change was desired.
And then how to install the latest version into the production machines.
2.2 In actual production we found that CNC programs on different machines sometimes did not match with the latest approved version from doc control.
This was likely due to the latest versions not being loaded into all machines after a change.
So we created a custom software to aggregate all the latest versions of the programs from doc control into one large file that could be easily loaded into each machine, to ensure all programs were at the correct version. This software also stripped out most of the comments, so that they would not impact cycle time.
Leaving a minimum comment facilitated program version auditing.
3 Other considerations
3.1 It could be that the issues also involve not only a need for improved program control, but also a feeling of loss of control by operators or techs.
Some techs may want to be making set up adjustments to each batch, feeling that this is their job security.
We conducted validation studies, and involved the techs, so together we could demonstrate that the programming was correct.
And that when used with the proper tool set up, each program would produce an in-spec part, with no adjustments needed between batch or part model changes.
If an improvement was identified we made sure to recognize and celebrate the initiator, encouraging use of the formal change control process.
3.2 There also may be as-yet-undiscovered variability in the process that are causing operators to have to make adjustments.
Such as raw material variability, tool quality variability, and varying machine characteristics.
We tried to mitigate these with incoming inspections.
We also took measurements of the individual machine axes travels using laser interferometer, and spindle speed control using rpm meter.

Hope this provides some ideas.

Six-axis is not a big problem, and has been part of aerospace for many years. I have long been away from CNC but in the mid-eighties I was working for Cincinnati Milacron's Electronic Systems Division where we had 16-axis control for Composite Machines. Six-axis was run of the mill used to mill titanium aircraft parts for wings structures and other complex shapes, while three-axis was the everyday-milling machine.

Unfortunately I have been away form it so long, that I cannot contribute more to the question than you already have. But, I might mention that you need to control the machine program changes that the software vendor might want to install on the machine, and not install anything until you have validated the change. Too many times "insignificant software changes" have had major Impact on the machine's operation and destroyed parts before the problem was identified. Of course this is separate from the part programs that the original question seemed to be about.