Complete Guide to CNC Software:
Digital Tooling for CNC
Did you ever wonder what all the different kinds of CNC Software are and how they all fit together?
Think of CNC Software as Digital Tooling. This article will walk you through all the different kinds of CNC Software “Tooling” you can get, what it’s for, and how it all fits together.
Why think of CNC Software as Digital Tooling?
When I was learning to be a manual machinist, people used to say, “Budget as much for tooling as you do the machine.” Danged if they weren’t right. In fact, if you wanted to be well tooled up (and what machinist wouldn’t?), you could even leave off your measuring tools from that budget and focus on workholding, fixturing, toolholding, cutters, and the like. And, if they aren’t already on the machine, you have to put a DRO and any power feeds in this category as well. A powered drawbar is mighty nice to have too. Tooling is definitely not cheap!
Then I went CNC, and I started noticing a lot of that tooling wasn’t needed any more. Though I might like to have a 4th axis, I didn’t need a rotary table, for example. But suddenly, I had a whole new category of tooling to add. At the very least, I needed a CAD program to make drawings which I would then feed to a CAM program to generate the gcode needed to be really productive with the machine.
Digital Tooling: We need CNC Software as much as hard tooling to be successful CNC’ers…
Some machinists are funny about Digital Tooling. I’ve talked to machinists who spend hundreds on custom ground cutters and want to preserve their life as long as possible, but balk at $79 for a sophisticated feeds and speeds calculator that is the key to extending that tool life. It doesn’t take many cutters saved for very long to completely pay for that feeds and speeds calculator!
Or, in another case, they are proud that they have a name brand and not a clone Haimer 3D Taster or Blake Coaxial Indicator, but they want a cheap or free piece of CNC Software. Go figure.
With CNC, your digital tooling will have a bigger productivity impact than any of your “real” tooling. As usual, it pays to have better tooling, but with CNC it is especially important to have good cnc softwrae. In CNC alone, CNC Software can be completely transformative to your productivity in ways that are not even dreamed of with manual machining.
A simple analogy makes it easier to understand why Digital Tooling so important for CNC:
CNC is to Manual Machining as a Word Processor is to a Typewriter.
CNC is to manual machining as word processing is to a manual typewriter.
I love a sweet Monarch 10EE as much as the next guy. But CNC is fabulously more productive, especially if you don’t have the years of experience that make a good manual machinist the consummate craftsman that he is. For most of us, the end result from CNC comes out looking much nicer, and with much less effort. I was so happy I’d found it, almost from the very first part I made on my CNC.
If we continue the typewriter/word processor analogy to tooling, typewriters need paper, ribbons, and correcting fluid. Word processors still use printers, which may need paper and toner cartridges, but they have no need of correcting fluid. Moreover, there’s a world of new software that opens up once we put a PC (the CNC plays that role in this analogy) into the mix.
You’ve got the Word Processor, and different Word Processors have radically different productivity levels as you probably discovered. Suddenly there are spreadsheets, slide making programs, and a whole lot more that didn’t exist and couldn’t have made sense with just a typewriter.
Think what all that means in that analogy and you begin to see how CNC Software is so important to being a Better CNC’er!
This page gives you a high level round up of the different kinds of CNC Software available for CNC’ers. It’ll give you an idea of how it all fits together.
CAD CAM Software: CNC Machine Programming
Let’s start out with a quick overview of how most gcode moves from software to a machine where it can be executed to make a part. This is the CNC Software required for cnc machine programming. For the most part we’re talking about CAD CAM Software, but not exclusively.
Gcode, by the way, is the basic language that tells your CNC machine what to do. You can learn all about it from our Free GCode Tutorial.
Whether you have a conventional CNC Mill, Router, or Lathe, or a 3D Printer, here’s what the basic CAD CAM Software workflow looks like:
CADCAM Software Workflow: From CAD Drawing, to GCode, to Part…
In this workflow, you use the following CNC Software types:
– CAD Software: Used to design the parts. The output of CAD are drawings and solid models.
– CAM Software: CAM software analyzes the CAD drawing, takes input from the machinist or programmer, and outputs g-code for the machine controller.
– “Slicer” Software:
Think of this as CAM for 3D Printers. It’s usually a lot simpler than CAM software, though.
CAD, followed by either CAM or Slicer Software results in a GCode file, which you then feed to your CNC Machine or 3D Printer. The machine will then execute the GCode to make your part.
A lot of other kinds of CNC Software are available to help facilitate this process such as:
– Other CNC Programming Apps: A variety of other kinds of g-code oriented CNC Software helpful to CNC programmers is available including G-Code Simulators, G-Code Editors, and G-Code Verification Software.
– CNC Control Software: The Machine Controller may be stand alone software, or it may be a proprietary combination of software and hardware. It’s job is to take g-code and produce the right electrical outputs to make the CNC machine move.
– CNC Utilities: There are a variety of CNC Utilities available for calculating feeds and speeds and many other functions.
– Other Shop Floor and Manufacturing Software: Software is available to help manage tooling inventory, estimate job costs, and perform many other functions associated with managing the operations and maximizing the profitability of machining and manufacturing operations.
Okay, now let’s drill down and look at each one in a bit more detail.
CAD and Solid Modeling Software: Drawing Creation
CAD Software is used for making the drawings that are the starting point for a lot of CNC projects. There are a variety of different markets for CAD. CNC’ers are largely concerned with mechanical CAD as opposed to markets such as architectural. The most common programs in the mechanical CAD market include:
– Solidworks: The market leader in parametric CAD from Dassault Systems
– Rhino3D: 3D modelling with explicit modeling (also called direct manipulation).
I’ve tried all of these programs, and my favorite is Rhino3D followed by Fusion360, Onshape, and Solidworks. I’m not recommending any of these over the others–I’m just telling you my own preference.
To figure out the best package for your own needs, try CNCCookbook’s 3 Step Process for Choosing CAD Software.
The first part I ever did was drawn in Rhino 3D, and was done for a chuck backplate project on my old manual lathe
Choose your CAD package very carefully. This is likely to be the CNC Software you have to spend the most time with. There is a significant learning curve involved with turning
out a slick 3D model of a part you’re planning to make. It’s a completely different process than sketching on the back of a napkin, and until you
become proficient, it can be utterly frustrating and intimidating.
Don’t worry–even the most hardened experts go through the learning curve and eventually emerge smiling and able to produce amazing drawings. And we all HATE having to learn new CAD software, LOL!
For my first CAD software, I purchased a copy of Rhino 3D version 3 and found it to be straightforward. I started with the trial version which is limited to 25 saves or some such. I ran through their two basic tutorials in the trial version, and when I got my official copy, I was able to whip out the chuck backplate 3 views in about an hour. I figured this was not too bad all things considered!
Today I could probably do the job in 10 minutes given that I’m a lot more familiar with Rhino3D.
Getting ready to “subtract out” the holes
on the backplate…
I use hexagons or other polygons to lay out bolt
Parametric versus Direct Editing 3D CAD
This is an important distinction to understand well. A parametric modeler uses constraints (or parameters, hence the name) to determine the dimensions and relative orientation of the objects being modelled. Explicit modeling maintains no history of parameters. Each new object can be created on its own.
What are the pros and cons? The distinction between the two is quite a hot topic in the CAD world today. For a long time parametric was thought to be the highest productivity. Lately, people are beginning to question that assumption and look more closely at explicit modeling. In all likelihood, the two will meet somewhere in the middle with parametric CAD software developing explicit modeling features and vice versa. If you’re interested, there are a number of good articles to check out.
I like to think about it like this. Parametric CAD excels in two areas:
– Creating families of similar products. Imagine having to create models for all the different sizes of socket headed cap screws, for example. With parametric, you create one model that is parameterized according to the standard dimensions of a SHCS, and you are done. With explicit modeling, you’d have to create a new model for each screw from scratch.
– Dealing with lots of change orders. Suppose you are involved in a manufacturing process that is spread out, perhaps across several companies. Because communication is not great over such long channels, everything is done via change orders, and there are lots of change orders. A properly created parameteric model makes it easy to respond to change orders.
As you can see, parametric is all about creating lots of versions of a single model. When that is the challenge, you will have maximum productivity with a parametric CAD package. On the other hand, Explicit Modeling (also called Direct Modelling) is advantageous when you’re very likely only going to create one model, and you will not change it much once it has been created. If you know what you want, it is much faster to do it via explicit modeling. Setting up all the different parameters in parametric takes a lot of extra effort. In addition, it is much easier to learn explicit modeling packages. Parametric thinking is not particularly natural and it takes some training and experience before it becomes second nature.
2D versus 3D
I have a hard time getting excited about 2D packages in this day and age. It just isn’t that much more expensive to get a full 3D package, and you can use many 3D packages to produce decent 2D drawings. The issue to consider if you have to do a lot of 2D drawings, perhaps due to organizational standards, is whether your chosen package is good at it or not.
Cloud or Desktop CNC Software?
We live in the Internet Era, and with the Internet comes Cloud CNC Software. CAD is no exception. As I write this, the two most popular Cloud CAD Packages are Onshape and Autodesk’s Fusion360. Both are quite powerful, and quite new. They have free trial packages that will enable you to try them before buying. Their biggest challenge is that they’re not quite as feature rich, stable, or able to integrate and exchange files as well as desktop CNC Software. But, they’re improving fast and they can be a lot cheaper than desktop CNC Software, so they are worth trying.
Fusion 360 has become particularly popular because it includes built-in high quality CAM software, so it might just be a one-stop shop for CNC’ers.
CAM Software: Drawings to G-Codes
The CAM software takes a drawing from CAD and produces g-codes which you may feed into your machine control software to drive the machine. CAM stands for “Computer Aided Manufacturing.” There is frequently confusion about its relationship to CAD, and many CAD programs have a CAM capability built in or vice versa.
A completely integrated solution is desirable, but not mandatory and some be very expensive or could force you to make compromises you wouldn’t otherwise make. The exception to this rule is Fusion360 which has both good CAD and CAM included in the same package.
There are a variety of programs available in this category including:
– Meshcam: The world’s easiest CAM package. I liked MeshCAM so well, I decided to become a dealer for them.
– OneCNC: The first CAM package I learned, easy to use and very popular on our CAM survey.
– Mastercam: The market leading CAM package by many measures.
And many others. We periodically run a week long survey of CNCCookbook visitors to see which CAM package they were using. It’s worth perusing the article for the results.
To get a quick taste of what CAM is all about, check out our article The Secrets of CAM for Beginners. In it, we take you step by step through making the same part with 2 different inexpensive packages–MeshCAM and CamBam. It’ll give you a quick flavor for what CAM does and how you use it.
How Do I Choose a CAM Package?
How should you evaluate a CAM package? Choose the most popular one? Choose the most powerful?
I prefer to ask a set of questions designed to get a balanced view of which package will be right for your needs. Evaluating a CAM package to find which one is right for you is a serious business worth investing some effort into. You can get sales demos of the packages you’re considering, but you’d ideally like to see them done using your own part designs that you’ll be manufacturing. Avoid the canned demos because they always look slicker than they really are. Many of the same questions we mention for CAD come up when choosing CAM too:
– Are your customers likely to bring you drawings created in a particular format? If so, make sure the CAM package works well with that format. I am not a huge proponent of having to integrate the CAM into my CAD package, but one thing that it does guarantee is that the CAM will work really well with the files of the CAD package it’s integrated with.
– How easy is it to hire programmers that already know the software? It’s a lot harder to switch CAM than CAD just because it is more complex and there is greater variety.
– Is the software good at the sorts of work you need to do? The best 2 1/2D machining packages may not be the best 3D and 4 or 5-axis is another ballgame altogether.
– Is there a vibrant online community of users you can go to for help and add-on products?
– Do you want an integrated CAD/CAM combination?
– Incidental costs and flexibility, especially around the Postprocessor. ( See my article on postprocessors for more on the considerations for postprocessors and buying CAM)
– Quality of training to jump start your productivity.
When shopping for CAM, I made it a point to take a look at the user communities for each package and check out what parts had been made
with the different programs. Let me show some of
the parts and projects I came across in my journeys:
A CNC Motorcycle Cylinder Head…
Bling bling wheel for a kid’s wagon…
There were many more than this, but these were some of my favorites from my original search (you can see my interest in picking up CNC was motorsports related!). I think many machinists would be pleased and proud to call any of these projects their own. They obviously reflect a great deal of talent on the part of their creators. However, they also reflect some of the power of the CNC software.
It would be hard to imagine even a really proficient hand g-coder or manual machinist turning out these pieces without tremendous effort. I don’t want to say your choice of CAM program makes it easy, but it at least makes it possible.
Beginners and Hobbyists: Don’t Make Your First CAM Package Have to Be Your Last!
If you run a machine shop, your CAM needs will start out being pretty advanced. Those packages are more expensive and harder to master, so you don’t want to make a bad choice. You’re also dealing with potential interactions with 3rd parties than can affect your productivity, so making sure of CAD integration or file interchange with a broad range of incoming sources is more important.
Hobbyists and Beginners are in a different place. Their learning curve is broader than the professional, who already knows the broad stuff, and it is much less deep. You’re not trying to figure out 5-axis toolpaths or mill-turn programming on day one as a hobbyist. Your concern is more about just getting a relatively simple part made as quickly and easily as possible. You also don’t have the size budget that your professional counterpart may have.
Based on all that, I believe you should choose your first CAM package based on ease of use rather than choosing the most powerful package you can lay hands on. Simply put, you’re not in a pushing to judge those powerful packages yet. You need to get through the broad learning curve and get some parts under your belt. Solving this problem is the main reason we started carrying MeshCAM here at CNCCookbook.
MeshCAM was designed from the get-go to simplify the process of making parts so you can be successful sooner. It probably won’t be the last CAM software you’ll ever buy, but it very likely will be the easiest CAM software you ever try. You will find you can go quite far with it, and maybe you’ll never get to the stage of needing a fancier package. But if you do, you’ll be much more knowledgeable by the time you get there and the money you spend for MeshCAM will have been very modest.
I heard from one MeshCAM user a fascinating story. They use both MeshCAM and one of the popular full-featured CAM programs. I asked the fellow why and he said that MeshCAM is so much faster and easier that he likes to use it for his fixture programming. Fixtures tend to be simpler than parts and they amount of time it takes to machine one is much less critical than shaving every second off a part you may need to make thousands of. It made great sense to me and opened my eyes even further to the value of having a super simple CAM program in your CNC Software toolkit.
A Word About File Formats
It’s good to have a lot of choices for file formats. Depending on the job, some are better than others. Consider this part which is showing marked faceting where there should be smooth curves:
Faceting shows the g-code used lines where arcs might have been better…
The photo is from a CNCZone thread. The machinist had recently switched from using the DXF format for CAD to STL files. That’s when the faceting began. The trouble is the STL file format has no way to represent a smooth curve or even arcs. It converts everything into triangles:
An STL mesh from MeshFlatten software…
There’s not necessarily anything wrong with this, except that you have to be aware of it. Your CAD and CAM software will allow you to specify the tolerances–how closely must the mesh match the idealized 3D part? With a small enough tolerance, the facets will disappear. The flip side is unless your CAM software is pretty clever, you’ll be forcing your machine to make hundreds or even thousands of tiny little straightline moves for those facets.
Carving Software is another approach that attempts to simplify CAM. With cnc carving software, the idea is to convert a bitmap into g-code. Bitmaps are easier to come by sometimes than full 3D models, especially for applications like sign making and engraving. The weakness of this approach is that bitmaps don’t convey depth information–they’re flat. So the program has to make assumptions based on color or the tone of the pixels in the bitmap.
Still, if the intent is ornamental rather than precision parts, Carving Software can be an incredible time saver because it’s often much easier to come up with a good image than a CAD drawing for ornamental designs. Try MeshCAM Pro to give it a spin on your projects.
Conversational CNC Programming Software: Quick and Easy GCode Without CAD or CAM
Manual machinists often argue that CNC isn’t much good for simple one-off parts because it takes to long to do CAD drawings and run them through a CAM program to get back g-code. They have a point. Why spend time creating a drawing of a simple rectangular bracket with a couple of holes when you could just jump on the machine and finish the bracket before you could make the drawing in CAD, CAM it, and finally run it?
Conversational CNC, sometimes called “Wizards”, is designed to make it not only possible but easy to create simple g-code programs without CAD, CAM or manual programming. Think of it as a collection of Wizards for creating simple g-code. With CNC Conversational Programming, you can quickly generate g-code for operations similar to what manual machinists would perform with no need for CAD drawings or CAM. It’s very fast and easy.
G-Wizard Editor’s Conversational CNC Module…
Conversational CNC is sometimes available with the CNC controller software, but is more often sold as a stand-alone. CNCCookbook also offers a conversational programming module that is built-in to our G-Wizard Editor called G-Wizard CNC Conversational Programming–check it out!
Specialized CADCAM Packages
There are specialized CADCAM packages aimed at solving certain specific problems. A great example is Gearotic Gear Design, which was created by Art Fenerty, the originator of the popular Mach3 CNC Control software.
Gearotic Gear Design…
The advantage of these packages is that because they’re focused on their particular problem, instead of being able to do anything, they can offer a UI and features that are easier and more powerful for the particular specialty they’re designed for.
Other CNC Programming Software
There’s lots of other CNC Software available to help CNC programmers. This is CNC software intended to be used alongside the CAM program as opposed to on the Shop Floor and includes the following:
G-Code Editors, Debuggers, Simulators, and Verifiers
These are programs that are used by CNC programmers to write, analyze, or improve g-code outside the CAM program. Why would you want to do such a thing? There are all sorts of good reasons.
For a seriously in-depth look at CNC Simulators, I’ll refer you to our article on that topic. To keep it short in this article, let’s look at why people use our G-Wizard Editor software:
Here’s what’s going on:
– The majority of folks use it to modify their CAM generated g-code. There’s a lot of fine tuning possible that the CAM software either misses or makes too hard.
– Next most popular is checking for errors in the CAM generated g-code before running it. Having such errors is suprisingly common, and if you thought your CAM software would never make a mistake, you’ll be suprised and disappointed when it inevitably lets you down.
– Learning g-code. G-Code is an important part of CNC, but it is pretty complicated. The right G-Code Editor can make it easy, even if you don’t know anything about g-code. That’s exactly what G-Wizard Editor is designed to do.
– Writing g-code from scratch: That is, writing g-code without CAM software. This is also fairly common, especially for turned lathe parts where the part geometry is often simple enough that it isn’t worth it to mess with CADCAM.
G-Wizard G-Code Software Editor is a great example of G-Code Editors, Simulators, and Verifiers all rolled into one software package.
Here’s a quick video tour of G-Wizard Editor. Watch it and you’ll have a pretty good idea what it does:
Machinist’s Calculators and References
These programs offer general-purpose utilities useful to CAM programmers such as feeds and speeds, thread databases, fastener databases, and a variety of other sorts of reference information.
Examples include CNCCookbook’s G-Wizard and similar programs.
Feeds and Speeds can be very finicky, especially when taken across a variety of tooling, cut conditions, and materials. Having a tool like G-WIzard available is a real time saver. Check out these two videos to learn more:
CNC Control Software
The machine control software serves as the “front panel” for your machine. It comes in two flavors: OEM Turnkey Controllers and PC-based Software. Most professional CNC is done via OEM Turnkey controllers from manufacturers like Fanuc, Heidenhain, Siemens, Centroid, and many others. OEM Turnkey means they sell a complete hardware and software solution that is usually built right into the machine by the manufacturer. These controllers are often also available for retrofit to older machines to update their capabilities.
PC-Based Software is also available to turn a PC into a macine controller. There are a variety of programs
available in this category including:
– DeskNC / DeskWinNC
While these programs are popular among hobbyists, their performance and capabilities is generally less than that of the OEM Turnkey controllers.
DNC and File Management Programs
Programs tasked with keeping track of all your g-code are called PDM for Product Data Management. DNC is the CNC software needed to download g-code to a particular machine over an RS-232 or LAN link.
Why would you use a PDM? Because they make it much easier to find and keep track of all the different g-code programs floating around the shop, and more importantly, they provide a means of version control and backup. Version control is critical to make sure you only run the latest versions of the g-code and that you can ensure when a change is made that that’s the one the Shop Floor will be running. By centralizing the storage of all g-code, instead of leaving it on random machines, USB keys, floppy disks, and other media, you make it possible to perform centralized backup so your valuable data is always preserved in the event of disk failures and other mishaps.
DNC is responsible for moving g-code programs from CAM or your PDM storage to the machine controller. Many g-code editors also include built-in DNC.
A variety of CNC software is available to make it quick and easy to generate the g-code needed to engrave text. Some of it includes the facility to create serial numbers and other kinds of auto-incremented text. 2linc is one provider of engraving software.
Probing software may be used for in-process verification that things are going well, to zero a setup, to reverse engineer a part, and for a variety of other purposes.
CMM and Metrology
Closely related to probing software is specialized CNC software for CMM and Metrology.
Shop Floor and Manufacturing Software
Shop Floor and Manufacturing Software includes everything from Tool Crib Inventory Management software, Estimation Software, and on to full-blown ERP (Enterprise Resource Planning) software. This CNC Software is focused on the business side of CNC work.
Estimation and Job Quoting Software
Estimation software is designed to help job shops quickly and easily estimate their costs when bidding on jobs. Some shops try to estimate costs from similar parts they’ve done in the past. Some will go to the trouble of CAM’ing the part to get g-code in order to get a reliable time estimate. That’s very expensive considering you have to do a fair number of quotes for each job you finally win.
Purpose-built estimation software is designed to make it fast and easy to get cost estimates. It’s helpful for Job Quoting as well as for understanding the potential to sub-contract a part where you’d like to know, “What should it cost?”
CNCCookbook’s Cost Estimation Module is called G-Wizard Estimator.
Tool Data Management
Tool Data Management involves keeping track of your cutting tool’s offsets–length and diameter, as well as managing all sorts of other aspects. It can include CNC software for offline tool setting, crib inventory, wear tracking, and so on. Used properly, TDM can ensure your tools are set up right for the jobs, help you evaluate the performance of the tools, reduce setup times, and provide you with a lot of insight into your tooling inventory you never had before.
You can go way beyond Tool Data Management and get into Product Data Management, where all aspects of a job including job setup sheets, tool lists, pictures, and the rest of the data needed on the shop floor to run a job are all integrated. Cimco PDM is a good example.
Manufacturing Data Collection
MDC is concerned with gathering data about the overall manufacturing process on the Shop Floor. It collects data from machines, bar code readers, and other sources that help answer questions such as:
– How much machine time was spent producing each part?
– How much time was spent while the machine was not running?
– What is the cost from tool wear for each part?
And so on.
ERP Software is the big daddy of manufacturing CNC software. It attempts to integrate all aspects of the enterprise including manufacturing, finance, supply chain, sales, project management, and customer relationship management. ERP is complex to install, but essential for larger manufacturers.
Imagine you need to cut out hundreds of parts from big flat sheets of material. You may use a CNC Router, Plasma Table, Waterjet, Punch Press, OxyFuel Cutter, Laser Cutter, or who knows what. Even if you’re great at jigsaw puzzles, chances are good that laying that work out by hand is not going to produce the best result. You’ll waste a lot of the material.
CNC Nesting Software is used to minimize that waste.
3D Printing Software
Oh, boy, here’s a whole new category of CNC software. 3D printing, also called “additive manufacturing” works differently than conventional machining (also called “subtractive manufacturing”). As such, it uses different tools. There are three kinds we’ll focus on: Machine Control, Slicers and Model Checkers.
Just like conventional CNC, 3D Printers have control software. It’s role is to orchestrate the operation of the 3D printer. Typically, it runs g-code, but it may also be capable of running a Slicer, calibrating the printer, and performing various other functions.
A Slicer takes a 3D model, usually an STL file from CAD or other sources, and slices it into the layers that will be printed. Each layer is represented as g-code which guides the nozzle around the printer, extruding filament. Other 3D processes may operate differently. A DLP-based resin printer just flashes an image of each slice up–no g-code required.
Slicers are the CAM of the 3D Printing world. Most are relatively simple, but complexity is coming. Like CAM Toolpaths, the exact way a Slicer chooses to lay down a layer matters, and we’re seeing increasing sophistication over time in what they can do.
Model Checkers are used to investigate and possibly fix whether a given 3D model (usually an STL file) is ready to be printed. It’s possible to create 3D models that have problems that will confuse the Slicer no end and produce bad results if you try to print one of these models. The role of the Checker is to at least identify that problems exist and hopefully to “heal” the model by fixing them.