Photo by Daniel Smyth on Unsplash

Computer numerical control, or CNC, is one of the most common and well-known automated processes in manufacturing. CNC machines help companies and individuals make manufacturing processes easier to inspect and control while reducing human errors. They’re used for milling, turning, plasma cutting, electrical discharge machining, water jet cutting, punching, drilling, laser cutting, and more. This article will focus on CNC milling, a primary machining process, and will provide you with an introduction to the terminology, workflows, and common operations.

Working with coordinate systems and machine home positions

When you create geometry using 3D software, you work within coordinate systems. The 3D software will then output a G-code program that tells your CNC machine what to do and where to move. Similarly, CNC machines read 3D information from the G-code program using coordinate systems, so it’s critical to specify the origin point (0,0,0) precisely and ensure it matches your 3D computer-aided design (CAD) software. 

When the machine finishes an operation and resets, it needs to know that “home” position so the next operation is dimensioned and positioned correctly. Most geometries intended for CNC machines are modeled as “parts” and the CAD software will typically have a single coordinate system. 

However, newer CNC software is more sophisticated and allows the user to work with assemblies that have multiple parts and prepare each one separately for machining. In that case, you must select the correct coordinate system for computer-aided manufacturing (CAM), which can be different for parts and assemblies.

illustration of a CNC machine coordinate system, showing the table, spindle and x, y, and z axes
Figure 1: CNC Coordinate System

CNC machines typically have a control point defined as the center-face of the machine spindle as shown in Figure 1. When the Z-axis is fully retracted and the table is moved to its limits near a corner (typically the back-left), then this position defines the above-mentioned coordinate system point called “Home”.

Unless otherwise specified, tools rotate clockwise when viewed from the machine spindle (see figure 2). 

Illustration of CNC machine spindle and milling tool with rotational direction and x, y, and z axes
Figure 2: Typical Tool Rotation direction

Vertical Milling Centers

For milling centers, the 3D coordinate systems work as illustrated in Figure 3. The table, which holds the material to be machined, moves in the X-Y plane. The Z-axis is vertical and aligned with the tool. When standing in front of the machine, moving the table left-to-right is the X-axis, while moving forward and backward is the Y-axis. You can orient yourself using the right-hand rule: your index and middle fingers represent the X (index finger) and Y (middle finger) axes. Then, your thumb points in the direction of the Z-axis, the direction of the tool.)

Illustration of a CNC vertical milling machine and x,y, and z axes with a human figure standing in front of the machine
Figure 3: Vertical Milling Center Coordinate System

Work Coordinate System

CNC machines calculate the motion of each operation by interpolating from the start position to the end position of the operation, including intermediate points if specified. The CNC machine accomplishes this by having an origin at the 0,0,0 point, from which it can measure the positions of the operation points. 

This point also helps to define the stock material location and prevent the tool from performing the machining operation outside of the stock limits. If you intend to machine several parts with the same program, you need to replace the stock material once it is machined and restock for the next part. If you don’t have a consistent 0,0,0 origin, you might end up cutting stock materials differently, resulting in parts machined outside the specifications.  

This also applies when different operators work on the same machine and program. For example, if this 0,0,0 is defined drastically outside of the stock part and results in large interpolation values on the CNC codes, you’ll get bugs in the program or a decrease in precision. Have you ever tried modeling a large geometry in CAD software that resulted in bugs and errors? The same situation applies to CNC machines. 

To solve this issue, CNC machines use a similar technique to CAD: local coordinate systems called “Work Coordinate Systems” or WCS, which can be defined for each CNC code or program. These WCS are reference points selected by the CNC programmer but don’t necessarily match the 0,0,0 of the CAD model. 

Usually, the WCS location is on an edge or a physical feature that can be recognized. It’s important that the point can be replicated easily, allowing the machine to return to the same position within a tight tolerance, no matter the machining motion.

When you start a CNC machine, it doesn’t tell you where the coordinates are located — that’s where the “Home” position comes in handy. By pushing the “home” button, the operator restarts and moves all three axes towards their limits -X, +Y, +Z, which moves it to the defined home position, typically on the back left corner of the table. Then you have a known reference point for the next operations.

CNC machines can usually position each axis within a tolerance of +/- .0002 inches, and accomplish that precision via closed-loop servo mechanisms. The CNC machine control sends a motion signal via a controller board to a servo motor attached to each machine axis. Then the servo motor rotates a ball screw attached to the table and moves it appropriately. The position of the axis is continuously measured and compared to the programmed position and compensating feedback.

CAD/CAM Process

CAD (computer-aided design) and CAM (computer-aided manufacturing) are an integral part of the CNC machining process. Several CAD software programs either have integrated CAM capabilities or offer plugins to connect to machining programs. Using 3D modeling you can create geometry, run simulations and predict errors that would cost money during a real machining process. With practice, you can simulate CNC milling to optimize a wealth of machining process parameters including machining time, material waste, and, at a more advanced level, tool wear, heat effects, material characterization, and more.

For beginners, here’s how to start simulating your 3D designs:

CAD Model and CAM environment 

When using CAD, you can work with 3D parts and assemblies, but you should stay organized and suppress features and parts that aren’t necessary for the machining operation, like O-rings and other commercial off-the-shelf parts (COTS). As for the type of software, if your company already has a preference, stick with that. If not, the software you choose should meet these two requirements:

  1. You can understand the software and use it comfortably (If your work allows, pick software that you’re already familiar with)
  2. Your CNC Machine should be able to communicate with that software

If you’re looking to buy new software for a CNC machine you already own, make sure the software includes the correct tool libraries and ask your vendor for a trial or example program to confirm that your CNC can understand your CAD.

Choosing CAM Software 

There are a number of different types of premium CAM software in today’s market, including MasterCAM, Solid Edge CAM, Autodesk Fusion, Solidworks CAM, SolidCAM, and NX CAM to name a few. Cost can be very different for each program and there are several factors that explain the difference.

The first question you should ask before making a choice: does the software include all operations you plan to use? Because cheaper software might not have the operation you need for your product. For example, Autodesk Fusion doesn’t currently include EDM operations, but CAMWorks for Solid Edge has a Wire EDM version. 

Next, find out how easy it is to learn the software. This is an area where Autodesk Fusion shines due to its clear, friendly user interface. 

A third factor is the toolpath visualization and interference check discussed above; these features have become common, but there are free programs that lack that capability. Also, be advised that free CAM programs typically have interfaces that are significantly different from CAD user interfaces, so it takes more time to learn them. 

You can also find trial and hobbyist versions of premium software that are more affordable.  However, most trial versions only run machining simulations and toolpath visualizations — they don’t generate CNC codes until you’ve paid for the full version.

CNC Coordinate system 

Now that you have your CAD/CAM software and crafted a 3D model, it’s time you set up your references. Choose your WCS and Home position. You’ll also need to define your material stock shape and size, but most modern programs have tools to do this operation automatically.

CNC process 

CAD/CAM programs include menus for different machining operations, and even additive manufacturing operations as well. Having this variety of processes allows you to run a simulation with one machining operation, and others with different processes. This lets you compare machining time, material waste, necessary tooling, and costs in order to choose the optimal process.

Cutting tool and machine parameters 

Most software programs come with tool libraries: a default list of common tools and parameters. You can (and should) modify this list to add new tools or customize parameters.


Toolpaths define the trajectories that tools follow and they should be carefully considered and validated. By verifying these paths, you can optimize the machining process and prevent the tool holder from clashing with the stock material.

Post Process G-code 

Once your simulation is running properly, then comes post-processing where the CAM software converts the simulated toolpaths to the CNC programming. This CNC program is called G-code, which can be read by the CNC machine.

CNC machine setup 

Once the G-code is transferred to the CNC machine, the home position and restart operations are defined, the table is ready with the stock material, tools are installed, coolant is ready, and your CNC machine is set up appropriately, then you’re ready to roll!


This article gives you a solid introduction to CNC milling and CAM so you can choose your CAM software and start simulating the production of your parts. And when it comes time to actually make them, Fictiv’s free DFM feedback and team of manufacturing experts are here to help you build better CNC parts, faster. Create an account and upload your part to see what Fictiv can do for you!