What is CNC machining
CNC-Computer Numerical Control. CNC machining programs are the software packages that used to manufacture parts on cnc machines.
CNC machining is a subtract manufacturing technology. A variety of cutting tools are used to remove material from a sold block. Computer can control the tools to move along the tool paths in small increments.
You can use CNC machines to manufacture almost every material, such as metal (steel, aluminum alloys, etc.), plastic (ABS, Nylon, etc.), foam, wood, stone, ceramic, and so on.
On the market, there are many CNC machines. CNC milling machine, CNC lathe, plasma cutter, EDM (Electric Discharge Machining), Multi Spindle Machine, Wire EDM, Sinker EDM, Laser cutting machine, Water Jet Cutter are all considered as CNC machine. Industrial CNC machines are expensive, but there are also some desktop CNC machines.
Usually desktop CNC machines are less weight, less precise and less rigid than industrial machines. And due to the lower stability and quality, these machines can machine soft materials, such as foam, wax, plastic, but they cannot manufacture hard material.
CNC machining process
There are 4 steps to manufacture a part on CNC machines.
Step 1. Design 3D models or 2D drawing with CAD software
The first thing is to design the files. It can be a 2D drawing or 3D model. For example, it can be a dxf format file or a stp format file. That depends on what part you want to manufacture.
There are many software packages can be used to do that. You can read <How to learn 3D CAD software> to get more information.
Note: Compared to 3D printing, when you design 3d models for CNC machining, there is more design restriction due to the nature of subtract technology.
Step 2. Program
In this step, you need to convert the 2d drawing or 3d model to G-Code. Of course, for some simple design, you can program manually too, but the most popular method is to do that using CAM software.
Step 3. Set up the parameter via the control software (interface software)
Place the block of material on the build platform of the machine and mount it with jigs.
In this step, for accurate parts, the key is the precise position and alignment of the block. Usually you can use special tools (touch probes) to do that. Of course, there are some other methods.
After that, you need to set up some parameters via the interface software. For example, the length of tools, original point, speed, etc.
Step 4. Manufacture the part
The last step is to turn on the machine and manufacture the parts. Usually for safety, you need to manufacture the first part step by step, and run the program(G-Code) line by line. In a word, be careful to avoid any damage on the machine. Some CAM software packages allow you to simulate the machining process before you turn on the machine, but you still need to be careful.
CNC machining programs type
There are 3 types of CNC machining programs.
1. CAD software/CAD programs
CAD software/CAD programs are used to create 2d drawing or 3d models.Remember,the design restriction is different from 3d printing even you use the same CAD software package. Read <How to learn 3D CAD software> to get more information.
2. CAM software/CAM program
CAM-Computer-Aided Manufacturing.
Traditionally,CAM software can be considered as a program that is used to generate G-Code from 2d drawing or 3d model. CNC machines cannot understand 2d drawing or 3d model directly, but they can understand G-Code, so CAM software is the middleman between the 2d drawing/3d model and the CNC machine.
In the CAM software, you need to choose cutters, set up cutting parameters, and then general G-Code via a post processor (the post processor may be different due to different control systems on your machine).
That is a simple understanding of CAM software. In fact, CAM is more than that, but we won’t talk much here.
Some CAM software packages: CAMworks, Fusion360, Hypermill, HSM, Mastercam, Powermill, UG, SolidcamCAM, SprutCAM, WorkNC, etc.
Many software packages have combine CAD and CAM function together, such as CATIA,UG,etc. And even some CAD software packages don’t have CAM function, sometimes there are CAM plugin for these CAD soft wares too.
If you want to manufacture parts with CNC machine/router,it is necessary to learn a CAM software.
3. Control software
In most cases, it is built into your CNC machine, especially industrial CNC machines. You just need to know how to set up parameters, and usually it is not complex. But you must be careful when setting up parameters. These are some interface software: FANUC, Sinumerik(Siemens), Heidenheimer, Mitsubishi, Haas, Mazak, Cincinnati, Mach3, Mach4, LinuxCNC and so on. But most of them are expensive.

Cheap CNC machining programs
MeshCAM Commercial
MeshCAM is software available for Non-Machinists. It is compatible with most common 3D format files, STL and DXF files.MeshCAM has a built-in post processor that will be used to produce G-Code.The following post processors are included: Mach 2/3/4,Linux CNC,Fanuc Compatible, Haas,Shopbot,GRBL,Roland.It supports windows vista,7,8,10 and Macs with OSX 10.9 or higher.
Fusion 360 Commercial
Fusion 360 is a cloud-based 3D CAD/CAM tool. CAM for Fusion 360 includes 2-, 2.5-, & 3-axis machining and that allow you to generate G-Code to manufacture your components or create prototypes.
CamBam Commercial
You can use this application to create G-Code from 2D DXF or 3d models. There is free, fully evaluation session. And after the evaluation period expires, you can still use it to generate G-Code, but limit to 1000 lines. CamBam 0.9.8 can run on windows xp up to windows 10.
Sheetcam Commercial
It is a low cost but feature CAM package. It is suitable for routing, milling, waterjet, plasma, oxy-fuel cutting and laser. SheetCam contains a wide variety of post processors: Mach3, CandCNC, etc. And it allows you to create your own posts too.
Mach3 and Mach4 Commercial
It is affordable CNC control software package.And it is one of the most popular CNC machining programs.
Mach3 can work on most pc’s with windows system. It allows you to use your pc to control the motion od motors (servo and stepper) by processing gcode. It is primarily designed for the parallel port that has become obsolete. Before buy a license, you can try the software, and there is no limitation.
Mach4 will need a plugin and motion control board to operate a CNC system. Now PMDX and Vital Systems have available plugin for motion control. If you want to run from parallel port, you can buy the parallel port legacy plugin, but it is not a good method to use the parallel port. The license only works for the computer that you supply the ID at checkout.
LinuxCNC Open source
LinuxCNC is a CNC control software package that runs on Linux. It can be used to control lathes, milling machine, laser cutter,3d printer, robot arms, hexapods, plasma cutters, and more. It is a free tool of cnc machining programs.