In order to create a finished project, the CNC machine needs exact, step-by-step instructions. To develop those instructions, we use a sequence of software programs, or a “toolchain,” bringing a concept into reality. The general toolchain involves:
- Design software – translating your project idea into a form that a computer can understand
- CAM software – turning the project into a list of cutting instructions for your CNC through a “g-code file”
- Machine interface software – communicating critical information to the CNC, and controlling it during setup
Design
This first step is the only one where software is optional, because you can download pre-made design files that fit your project idea, and proceed to use CAM software to fine-tune the size and positioning on your material. However, if you do decide to make your design from scratch, the main distinction between each design software is their ability to construct 2D and/or 3D models.
2D
- Any sort of line drawing or vector art, such as a logo, signage, flat-pack furniture parts
- Typically in the following file formats: SVG, DXF, PNG, JPEG, BMP
- Easier to learn across the entire process, from producing the design to running the cutting job
- More free software options available
3D
- Sculptural, spherical and cylindrical items, such as a decorative column, intricate furniture, cabinetry, 2-sided relief carvings
- Typically in the following file formats: STL, OBJ, STEP, IGES
- Greater learning curve required in creating the design and making the g-code
2D vs 3D designs, from left to right
CAM
To create a g-code file that contains all the cutting instructions for your CNC machine, the CAM software will accept certain inputs, which include details about:
- The design file
- Your CNC machine specifications
- The material size and type you are using
- Cutting tools you are using
- Your own decisions about how to cut the project, from the order of the toolpaths, to the position and size of the design
Many of these inputs encompass feed rate, spindle speed, material hardness and cutting tool characteristics, which are commonly referred to as “feeds and speeds.” More information on how to select the correct feeds and speeds values for your project can be found here.
Some CAM software are generalized to support a wide range of projects, whereas some contain more detailed parameters to make specific projects (such as cabinetry) easier. Furthermore, some software are limited to a certain project size, and require upgraded software (“Pro version”) to create g-code for a larger project, all in one go.
3D design file loaded onto a CAM software with toolpath settings shown
Machine Interface
To set up and run the g-code file on your CNC machine, you will need to use machine interface software. This software is run on your computer or laptop and allows you to:
- Manually move (jog) each axis of the CNC
- Set the starting point of the cut (via limit switches, touch probe, work coordinate offsets, or manually)
- Send cutting instructions to the LongMill
- Pause or resume cutting, or stop cutting altogether
Think about this last step as your ultimate window into controlling and monitoring your CNC. For many, this last step will only involve telling the CNC where you’d like to start cutting and then executing the file which holds all the cutting instructions; but many interfaces will allow you to do much much more than this if you’re comfortable with it:
- Check the g-code instructions looks correct via a visualizer
- Override the instructions while they’re being sent if you need to make the CNC run faster or slower
- Change and view firmware settings
- Use and program custom macros
- And more!
Using gSender (our very own machine interface software!) to run g-code for an owl sculpture
Choosing Software
Choosing a suitable toolchain for your application is a key part in learning how to CNC with confidence. Check this software guide we made for an in-depth comparison and list of available software options.
Scott’s video below is a great introduction to some of the most popular and easy-to-use CNC software programs.