CNC Software Workflow

One of the most confusing things about the CNC process is the role of the different programs involved. To go from idea to finished part will require three different programs, each with a specific role.


CAD stands for Computer-Aided-Design. As the name implies, this is the program you will use to design the parts that you plan on machining. There are thousands of CAD programs available and many are very good. In general, they can be divided into 2D and 3D CAD. 2D CAD programs produce only flat drawings. While the drawing itself may include dimensions and views that represent what a real part will look like, the result is still a flat drawing.

The output from a 3D CAD program is a file with a complete 3D object that is ready for manufacturing. These CAD programs tend to be a little more complicated but they can represent very complex models in a way that is immediately useful for CNC manufacturing. There are several common file formats used in 3D CAD but MeshCAM operates on STL files. The STL format is widely supported and is a very reliable way to move a file between programs without compatibility problems. A short list of some 3D CAD programs can be found HERE.

It is important to note that a 3D CAD program is still able to represent flat objects- it will just take the extra step of also representing the depth of the part in addition to the profile.


CAM stands for Computer-Aided-Manufacturing. CAM programs are responsible for taking the output from a CAD program and doing the required calculations to tell a milling machine how to cut an object from the stock material. Like CAD programs, CAM is available in 2D or 3D versions based on the type of input file they take. The output from a CAM program is a toolpath contained in a gcode file. A toolpath is the series of moves the mill must make to cut the object from the stock without overcutting or gouging the part. Gcode is a standard file format to represent a toolpath and is supported by almost every mill.

MeshCAM is a 3D CAM program that is able to take a 3D file and calculate a toolpath to send to your machine. Like a 3D CAD program, a 3D CAM program can also work on flat objects as long as they are contained in a 3D file.

Learn more about converting stl to gcode with MeshCAM.

CNC Controller

A CNC controller is a program that takes the gcode file from your CAM program and tells the motors on the mill exactly how they should move in order to cut your part. Some larger mills have integrated computers or controllers that have this software built in. For most small-to-mid machines, a PC is used with a special program acting as a CNC controller. Two examples of these programs are EMC, the Enhanced Machine Controller and Mach3. EMC is free and runs on Linux while Mach3 is a commercial program that runs under Windows. There are several other programs that run under DOS but these are older and have not been updated to take advantage of the latest PC advances. DOS CNC controllers are not recommended for complex gcode paths.

EMC and Mach3 and both great programs and together represent the majority of the small-to-mid CNC mill market. Most people will find Mach3 easier to get up and running and it is the preferred program of GRZ Software. Both work well with MeshCAM.

A frequent question prior to purchase is, "Do I need to get Mach3 with MeshCAM?" If you have a working CNC mill then the answer is "No". You would only need to buy Mach3 with MeshCAM if you are building your own mill or doing your own CNC conversion on a manual mill and do not yet have a CNC controller.

Every CNC controller uses a slightly different dialect of gcode. A good CAM program will be configurable to work with any "normal" machine controller if it uses gcode. MeshCAM comes with a variety of configurations built-in and we will provide a custom configuration at no cost if you need changes made.