CNC is at the heart of the maker community. By using simple tools like CNC mills, laser cutters or routers, you could create anything from stencils to laser-cut jewelry. But did you know that there’s a 3 step process to CNC? Not only do you need to create a vector with CAD, you also need CAM software and CNC control software to bring your project to life. It can be difficult trying to navigate the choppy waters of CNC software, so Scan2CAD has done all the heavy lifting for you.
This handy guide aims to explain what types of software are involved in CNC—from CAD to CAM to CNC control software. We’ve even included examples of top software and freeware that you could be using with your CNC projects. We’ll even show you where you can find free DXF designs to start your own projects.
Table of Contents
What is CNC?
If you didn’t already know, CNC stands for Computer Numeric Control. CNC machines work by removing material from the initial piece, as opposed to adding new material to it (such as in 3D printing. CNC can be described as a type of subtractive manufacturing and a process such as 3D printing can be described additive manufacturing.
Examples of CNC machines include mills, routers, plasma cutters and laser etchers. For a better look, check out Scan2CAD’s comparison of CNC machines.
Your CNC machine runs on a series of pre-programmed commands. The most common programming language is called G-code, though other languages like Heidenhain and Mazak exist for CNC.
G-code controls the movement of your CNC machine’s tool. It controls its position and depth on the X, Y and Z axes. It also controls the speed at which it rotates and the rate at which it moves.
The Three Step Process to CNC
Typically, there’s a three step process to CNC that involves three corresponding types of software. To begin, you first need a design in a vector file format (unless you already have the G-code). A vector is a set of mathematical instructions that will dictate how your image is rendered—the most popular vector file format is DXF. You can create your designs and vectors with CAD software. Alternatively, you can use software like Scan2CAD to convert a raster design to a vector.
Once you have your vector, you will need to convert it to G-code which is a programming language that directs your machine. This can be done with CAM software. The process then ends with CNC control software which will read your G-code and turn it into motion to run your CNC machine.
Of course, there are exceptions to the above process. For example, you might find yourself using software that integrates both CAD/CAM capabilities. Or, you might want to skip the CAD step altogether by using free DXFs. We have discussed both possibilities below.
If you’re already sorted with CAD/CAM software, or you’re just hunting for the best control software, skip straight to step 3!
Step 1: CAD Software
Computer Aided Design software is the starting point for most CNC projects—this software is used to create your designs and vectors. There are hundreds of CAD packages available, each with different capabilities depending on which industry you’re interested in. As we have covered before, CAD is widespread across hundreds of industries—from architecture to art to mechanics.
Of course, you need to choose your CAD program carefully. These packages can be expensive, so you’ll want to make sure you’re going to get your money’s worth—so take advantage of free trials and look at reviews. Unfortunately, there can be a steep learning curve for many packages—however, there are online resources that can help you along the way. For example, Scan2CAD offers tips and tricks for AutoCAD and SolidWorks.
For a better look, take a look at the following list of popular CAD software and freeware below.
Popular CAD Software
- AutoCAD: used to create 2D and 3D drawings. It spans across industries including mechanics, architecture and civil engineering. It’s one of the most popular CAD packages in the world.
- SolidWorks: a parametric feature-based 3D modeling software. It can be used for advanced 3D modeling and auto-generated 2D drawings. It’s the most popular parametric modeler.
- Rhino3D: can create, edit and render NURBS curves, surfaces, solids and polygon meshes. It includes free-form 3D modeling tools alongside complete accuracy and accessibility.
This list of course, is just the tip of the iceberg. If you’re looking to branch out into cloud-based CAD for example, you might like to try a package like Onshape. You should also bear in mind that some CAD packages offer CAM capabilities. Fusion 360 for example, includes built-in CAM software that allows you to create and edit G-code.
Free CAD Software
If you’re not looking to fork out money for a CAD package, you might find it more worthwhile to try out free CAD packages. This is a preferred option for many CNC hobbyists who don’t use CAD software enough to warrant paying a large expense.
- Google Sketchup: it’s not technically a CAD program, but it does allow you to produce 3D drawings that you can use with a CAM program to create G-code.
- Wings3D: a modeling tool designed primarily for the creation of 3D models, which can then be imported into a CAM program. It supports mesh tools, design and editing features etc.
- NanoCAD: offers 2D, 3D and parametric design—you can build anything from machine parts to blueprints. It’s free, but there are premium versions which include add-on features.
If that’s not enough for you, check out our list of top CAD freeware.
Using ready-to-cut DXF files (instead of CAD software)
If you’re looking to start an exciting project from one of Scan2CAD’s CNC project ideas, you might not want to go through the process of creating your own image using CAD software – it can be pretty time-consuming after all. If that’s the case, you might want to consider using ready-to-cut DXF designs.
There’s a wide variety of free DXF websites that you can download DXFs from to get started on your own CNC project. These include:
A problem you might have with these sites however, is that they will only offer you a finite source—they’re only updated once a month or so. That’s where Scan2CAD comes in!
Scan2CAD isn’t just a conversion software, it’s also a great source for anything CAD, CAM and CNC-related. It’s not surprising then, that we offer our own cut-ready CNC designs that are free and ready to use with your CNC machines. And it’s not just one or two designs—it’s an entire DXF pack every single week—typically containing 6 or 7 designs in a DXF and JPG format.
The theme for each week changes, so you’ll be sure to find something to your taste. Our previous packs have included Ornamental Patterns and American Football. So if you’re looking for a new project to start each week, subscribe today and get DXF packs sent straight to your email.
Step 2: CAM Software
Computer Aided Manufacturing software is fed your CAD drawing and subsequently produces G-code that you can then feed into your control software to run your CNC machine. It is possible to write G-code by hand for simple circles or lines, but it’s much easier to produce using a CAM program. If you’re still not sure what G-code is, head on over to Scan2CAD’s exclusive guide to G-code.
As we have discussed, there can be confusion as to the difference between CAD and CAM, as many packages like Fusion 360 come with both capabilities nowadays. While it can be more efficient to have an integrated solution, it can be more expensive, which is problematic if you’re looking for a cost-effective package.
Popular CAM Software
- MeshCAM: works with almost every 3D CAD program by opening the two most common file formats, STL and DXF. It boasts more toolpath options than any competing CAM program.
- MasterCAM: one of the most popular CAM programs available. It provides full 3D live wireframe modeling, and a broad range of translators allowing you to open any CAD file.
- OneCNC: provides a CAM system for milling, turning and mill-turn machining. It has versions that provides a range of capabilities in 2, 3, 4 and 5 axis machining.
Free CAM Software
If you’re a casual CNC hobbyist or beginner, you might not need to use the most powerful CAM packages available. After all, you won’t need to figure out 6-axis toolpaths on your first day! With that in mind, the following free packages might be more to your level.
- PyCAM: a toolpath generator for 3-axis CNC machining. It loads 3D models in an STL format, or 2D contour models from DXF or SVG files. You can then use the resulting G-code with any machine controller.
- FreeMILL: a free milling module for programming CNC mills and routers. You can run full simulations on your part models and output G-code to your machine.
- G-Simple: is a simple CAM package for 3-axis machining centers. It includes a tools and materials library, along with a selectable excess material removal filter.
Of course, you should bear in mind to be careful when using freeware. Only use freeware that has been reviewed by reliable sources—you don’t want to accidentally download malware. As we have discussed previously with the pitfalls of online converters, freeware can often cause more problems than it’s worth.
Now you’ve had a look at CAD and CAM packages, you might be wondering about packages that integrate both capabilities—or even how you can speed up the entire process. That’s where Scan2CAD comes in once more! Check out step 2.5 below to find out how you can load or create vectors, and convert them to G-code in one single package!
Step 2.5: Scan2CAD
With it, you can convert your raster designs to a vector file format in a matter of seconds. You can then make use of raster and vector editing suites to create the most optimal vector image you can use for your CNC design. And the best part is, it only takes a matter of seconds. Don’t believe us? Take a look at the animation below to see it in action!
For more information, check out Scan2CAD’s top tips for taking your design to CNC fabrication.
And that’s not all! Scan2CAD isn’t just useful for converting your files to a vector file format, it can also be used for CAM applications. Once you have a vector you’re happy with (whether it’s one you’ve converted or a ready-to-cut design), you can use Scan2CAD to export it directly to a G-code compatible format. Scan2CAD currently supports three of the most popular G-code file types including: .CNC, .NC, and .TAP.
Scan2CAD also provides a range of options in its CNC Export dialog box, which include:
- G-code Bezier options: cubic splines (G-code G05), arcs (G-code G02/G03) or polylines (G-code G01).
- Arc and circle rotation: clockwise or anti-clockwise.
- Z-settings: various parameters relating to the cutting of the exported vectors.
- Scale settings: the relation between vector points and a distance in real life, e.g. two points on a vector image could represent an inch.
Want a more in-depth look? Take at how to convert an image for CNC with Scan2CAD.
Step 3: Machine Control Software
Generally speaking, there are two types of CNC control software: control software built into your machine, and PC-based software. If you were using a commercial CNC machine like HAAS Vertical Machining Center, you would get a complete hardware and software solution that is built into the machine—you’d be able to transfer your G-code directly to the machine. Hobby CNC machines by comparison, have an external controller—by making use of control software, you can turn your PC into a machine controller.
When it comes to PC-based controller software, there’s a wide variety on offer. There are a few key controllers that stand out from the crowd however. Take a look below for our top picks, featuring low-cost and free software.
The Mach Series
- Cost: $200 (Mach4)
- Controls: mills, lathes, routers, lasers, plasma etc.
- Operating system: Windows
The Mach series are at the forefront of CNC control software. The developer ArtSoft has been releasing and improving upon the Mach series for the past decade—the most current version of which is Mach4. This low-cost software works on most Windows PCs, making use of advanced system level drivers to enact pulse timing for stepper motors and step-servo systems.
The software itself is very intuitive and customizable. It can control up to 6 axes of a CNC machine. Previous versions like Mach3 allowed hobbyists to use their license across multiple machines, whereas Mach4 now ties the license to a specific PC. If you are curious about the software, you can test out the free demo mode for up to 500 lines of G-code!
- Cost: Free
- Controls: mills, lathes, 3D printers, robot arms etc.
- Operating system: Linux
LinuxCNC is undoubtedly the direct competitor to the Mach series—it’s certainly a popular option for many CNC hobbyists, and not just because it’s free! Previously called EMC2, this CNC control software is completely open source. And as the name suggests, the software runs under Linux. Due to the need of precise real time control of machines in motion, the software requires a platform with real-time computing capabilities. This means that if you don’t have real time computing capabilities, your PC will only run the package in demo mode.
Freeware can often seem lacking in some way, however that certainly isn’t the case when it comes to LinuxCNC. It can control up to 9 axes of a CNC machine, and has several GUIs suited to specific types of usage such as touch screen and interactive development. The software also supports advanced control features like rigid tapping and cutter compensation.
- Cost: $60
- Controls: mills, lathes, routers, laser cutters etc.
- Operating system: DOS
Our final choice for top CNC control software is TurboCNC. This machine control software provided by Dak Engineering runs under DOS. The software itself is shareware—you can gain access to its source code and free support for a low-cost fee of $60.
TurboCNC is an efficient controller that runs stepper motors and step-servos. It can control up to 8 axes of motion, and it comes with configurable I/O for reversible and speed control spindles. It also provides fully parametric programming with variables, subroutines and expressions.
Universal Gcode Sender
The software has been designed with real-world problems in mind. It comes with ‘configurable gcode optimization’ to remove comments, convert arcs to lines segments, remove whitespaces and more. Additionally, it can communicate with different firmware that come with the various CNC machines on the market. These include GRBL, TinyQ, Smoothieboard, and more.
- Cost: Free!
- Controls: mills, lathes, routers, laser cutters etc.
- Operating system: Cross platform, tested on Windows, OSX, Linux, and Raspberry Pi.
Other CNC control software
There is other CNC control software on the market not included above. Some include:
CNC is a fundamental element of the manufacturing or creation process as it enables the maker community to create any shape from virtually any material. That said, there’s more to CNC than simply using CNC mills, routers, or laser cutters. You have to follow a step-by-step process to guarantee success, and this guide has summarized everything you need to know. It all begins with the creation of a design using CAD software. You then have to feed the design into a CAM program that generates G-code, the programming language that guides CNC machines’ cutting/milling action. If you do not have access to CAM software, which can be expensive, you can still use Scan2CAD. With Scan2CAD, you can convert an existing raster or vector drawing to G-code.
Lastly, you have to feed the G-code file into a CNC control software. And if you have previously wondered which software to use, this handy guide has detailed the various machine control programs available in the market. That said, which among them is the best? The Universal Gcode Sender stands out because it’s free and cross-platform, plus it supports can work with various CNC machines regardless of their firmware. Furthermore, its desktop software also features an intuitive user interface that enhances the user experience.