We are going to start at the very beginning. If you are familiar with the concepts and content here, please move to the next chapter (Computer Aided Design Basics)
The CNC Eco System
Each Computer Numerical Control (CNC) System combines elements that work together to translate grid coordinates into machine motion. That motion controls precise movements of a cutting tool. Utilizing CNC technology allows for repeated accuracy and performance which is necessary in production environments. For our purposes we are going to discuss a system that controls a woodworking router.
Our machine includes these components from the Controller (Programmable Logic Controller(PLC)) to the Router (Spindle).
- Motion Control Software (Mach3 / Mach4)
- Controller (Head Unit) (CNC Machine Computer) (PLC)
- Motion Control Board
- Stepper Motor Drivers
- Proximity Switches
- Stepper Motors
- Linear Motion Components
- Router
The combination of components translates an “NC” (Numerical Control) program into motion which can be repeated with accuracy. Most NC programs are written in a language called G-Code. The G-Code language uses commands expressed by a combination of primarily the letter G and numerals, hence the name – G-Code.
CNC Program Creation (G-Code)
- CAD Software (Computer Aided Design)
- CAM Software (Computer Aided Manufacturing)
- Post Processor Program
- G-Code / NC Program
CAD – Computer Aided Design Software
Though you could write G-Code directly, it is usually derived from CAD files processed through a Post Processor. Using CAD software for part development is typical.
2D and 3D CAD programs can be used to create designs. 2D programs are easier to understand if a person doesn’t have former experience working in CAD. For this lesson 2D part creation will be used for the simplest solution.
- AutoCAD (Paid)
- Fusion 360 (Free/Paid)
- FreeCAD (Free)
- Inkscape (Free)
CAM – Computer Aided Manufacturing Software
Once a design has been developed in CAD Software it is necessary to use CAM software to apply tool paths to the geometry. Some CAD programs are also CAM programs.
Though most CAM programs have CAD capabilities, CAM programs are geared mostly towards the creation of tool paths in a Graphical User Interface (GUI) in which the programmer can visualize the cuts.
- Fusion 360 (Free/Paid)
- FreeCAD (Free)
- CAM BAM (Paid)
- AlphCAM (Paid)
Post Processors
Post Processor programs for CNC are lightweight programs that produce G-Code programs. After the CAM software has been used to apply tool paths to the design, the post processor is used to output the G-Code. CAM programs call this step by a few different names. Output to NC, Post Process, and Post to NC are all potential terms used to describe the step of outputting the G-Code. No matter what the program calls it, this step will require the programmer to select a Post Processor program. This is sometimes referred to as a “Post”.
The “Post” (Post Processor Program) is specific to the CNC machine that is being used to run the G-Code. Therefore a Biesse uses a different Post than a Tormach, or a home built CNC machine running MACH4 requires a different Post than a machine running LinuxCNC.
Post Processors can be opened in a simple text editor. Adjustments can be made and then saved.
Never run a G-Code program that was created for any CNC other than the one you are running the G-Code on.
NC Program (Numerical Control)
The computer screen at the CNC machine reports coordinates, spindle speed, and G-Code as it is being processed. That software running at the machine screen is called Numerical Control Software. Professional quality CNC machines have their NC software preloaded in the “Head Unit” Computer. The Head Unit computer can be contained in a large cabinet next to the machine or attached to the side of the machine. Most home built CNC machines utilize a personal computer as the Head Unit. The Head Unit call also be called the “PLC”. “PLC” stands for Programmable Logic Controller.
The G-Code program is opened by or loaded into the Control Software and populates various portions of the CNC computer screen allowing the CNC operator to monitor and control the progress as the machine processes the G-Code.
- Mach3
- Mach4
- LinuxCNC
- PlanetCNC
- GRBL