Making a certain part (also called a workpiece) does not normally start at the CNC machine – it starts much earlier, at the design engineer’s desk. Engineering design means developing an intended part that is economical to make, of high quality, as well as a part that does what it is supposed to do – simply, to design a part that works. This process takes place in various offices and laboratories, research centers, and other places, including the engineer’s imagination.
Manufacturing process – CNC process included – is always a cooperative effort. Modern part design requires professionals from different disciplines, aided by the powerful computer installed with suitable design software, for example, SolidWorks®, Autodesk Inventor®, and many others, as well the venerable AutoCad® – one of the oldest and still very popular of the design group of application software. In simplified terms, engineering design starts with an idea and ends with the development of a drawing – or a series of drawings – that can be used in manufacturing at various stages.
For the CNC programmer as well as the CNC operator, this engineering drawing is the first source, and often the only source, of information about what the final part is to be. Typically, CNC programmer follows a certain process – or workflow – that can be summarized into several critical points or steps:
- Evaluate drawing
- Identify the material of the part
- Determine part holding method n Select suitable tools
- Decide on cutting conditions
- Write the program
- Verify the program
- Complete documentation
- Send program to CNC machine shop
Keep in mind that this is not always the step-by-step method as it may appear to be. Often, a decision made in one step influences a decision made in another step, which often leads to revisiting earlier stages of the process and making necessary changes.
CNC Machine Processing-Drawing Evaluation
This initial stage is very important because it will influence all activities that are necessary to machine apart. Evaluating a drawing means finding a solution to a single question:
What is the best way to machine the part?
This single question will be the foundation for solutions of all other items in the workflow. One of the big- gest challenges modern machining faces is not the lack of people who can master a CAD/CAM system but a lack of people who know how to machine apart.
Knowledge of how to machine a part is the most important quality of a CNC programmer
An engineering drawing does not offer solutions – it only provides goals and objectives. Studying the features of the part, dimensions, tolerances, various relationships between features, quality requirements, etc., will largely determine the method of machining. All requirements of the drawing have to be met.
A single drawing is often not sufficient to provide all answers. Also having a drawing of a matching part or an assembly drawing may be necessary in some cases.
Drawing – or even a set of drawings – offers the main source of information for both CNC programmers and CNC operators.
CNC Machine Processing-Material Identification
The part is made from a blank stock material specified either in the drawing itself or in another source. For programming and machining purposes, the material should be identified by its type, size, shape, and condition.
Type of material is important when selecting tools, setup, and cutting conditions. Soft materials such as brass and aluminium will require a different method of machining than steels and space-age materials. Size of the stock provides information about how much material has to be removed by coughing. The stock shape is important primarily for selection of the holding device (fixture).
The material condition may require special cuts, if necessary. Machining forged steel requires a different approach than machining the same steel type as a round bar.
The shape of the material comes in many different forms. Ideally, all material supplied for a particular batch of parts should be the same. That is not always the case; for example, bars that come cut-off into individual pieces should have but may not have the same rough length.
CNC Processing Part Holding
Part holding – or work holding – is a topic that can have its own book. From CNC perspective, the decision a CNC programmer has to make is to select such a work holding method that provides a fixed, safe and stable location for the mounting material.
CNC Processing Tooling Selection
Selecting tools is also part of the programming process, and experienced programmers often discuss the tooling possibilities with CNC operators. Selecting a tool for CNC machining means selection of:
- Cutting tool holder
- Cutting tool
What is often called ‘speeds and feeds’ is only part of overall cutting conditions. Cutting conditions are influenced by many fixed factors, such as material being machined, its shape and condition, machine capabilities, etc. They are also influenced by conditions that are with the power of CNC programmer – for example, tooling selection, setup method, depth of cut, the width of cut, and spindle speeds and cutting feedrates.
CNC Program Writing
The part program can be developed by several methods:
- Manual programming
- Macro programming
- Computer programming
- Conversational programming
Manual programming means manual calculations and manual writing of the program. A computer is often used, but only as a text editor or a toolpath simulator. In manual programming, the computer does not generate the program code.
Enhanced methods of manual programming use so-called macros, such a Fanuc Custom Macro B. In simple terms, a macro is a type of a subprogram, but it can handle features that no subprogram can. Those features include variable data, conditional testing (IF), iteration (WHILE), arithmetic, algebraic and trigonometric calculations, and many other features.
In a true computer program development, special software is used to generate a complete program. Typical software used for such purpose includes Mastercam®, Edgecam®, and many others.
Programming directly at the machine control is called conversation programming. Generally, CNC lathe programming can benefit from conversational programming a little more than programs for milling.
Regardless of how the program is developed, it has to be written in such a format that the controls system of the CNC machine ‘understands’ it. Part programs generated manually or by software should have the same format (some minor inconsistencies should be expected).
CNC Program Verification
A program that contains even a single error is not desirable. One of the programmer’s responsibilities is to check the completed program before it is used. There are several ways of verifying the program. One proven method is to use a toolpath simulator software, such as NCPlot®, another is to employ a fairly extensive variety of manual checks.
Simulation software varies quite a bit in features and cost. Price of the software by itself does not necessarily reflect its quality and features. Most simulation software lack support for some high end control features, such as coordinate rotation, polar coordinates and macros. Be- fore purchasing software that simulates the toolpath, make sure to do some research.
Numerous manual checks can also be used to find program errors. Even a brief scan of the program may reveal some obvious errors. If you know what you are looking for, the program check is that much faster. Many errors in the program happen at the beginning of the program. Errors in the middle of a program are of a different kind. An experienced operator will discover an error before it does any damage.
The final part program is the result of many small, progressive steps, some quite straightforward, others more complex. The program can be generated by a CAM software or it can be written completely manually. In any case, the programmer had to go through certain steps that required calculations, for example, as well as other steps. Documenting these calculations or processes can prove to be very valuable if the program has been modified for many reasons. Program modification can range from simple error correction to an engineering change.
It is an unpleasant reality, that many CNC programs, regardless of how they were developed, lack any background information that can help the machine operator. At best, the part program may include some basic data regarding the setup and even some special instructions. What is often missing are details of individual steps. The operator needs to know what fixture has been used, how the part is oriented, what tools have been selected, and where the part X0 Y0 Z0 is located.
CNC Program Transfer
Program transfer includes several methods of making the program available for machining. Commonly, this process is called Program Loading. There are different methods of loading program – the most common is to store it in the memory of the CNC unit. Other methods include DNC (processing the program from an external computer), or a program stored on a flash drive.