CNC Software: Digital Tooling for CNC

Digital Tooling for CNC

Digital Tooling: We need software as much as hard tooling to be successful CNC’ers…

Why 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 spot on 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. If they aren’t already on the machine, you have to put a DRO and any power feeds in this category as well. 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.

G-Code editors and feeds and speeds calculators were not far behind. There are many other kinds of CNC software, which I’ve taken to calling “Digital Tooling”, that are important to CNC work.

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. 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 software. Go figure.

With CNC, your digital tooling may 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 Digital Tooling.

This page gives you a high level round up of the different kinds of Digital Tooling available for CNC’ers. It’ll give you an idea of how it all fits together.

CADCAM Workflow: The Big Picture

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. 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 workflow looks like:


View a picture at full size

CADCAM Workflow: From CAD Drawing, to GCode, to Part…

In this workflow, you use the following 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 Software: A variety of other kinds of g-code software helpful to CNC programmers is available including G-Code Simulators, G-Code Editors, and G-Code Verification Software.

– Machine Controller 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 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:

Alibre: Inexpensive parameteric CAD

AutoCad and Inventor: CAD software from Autodesk

Rhino3D: 3D modelling with explicit modeling (also called direct manipulation).

Solidworks: The market leader in parametric CAD from Dassault Systems

I’ve tried all of these programs, and my favorite is Rhino3D followed by Solidworks. I’m not recommending those two over the others–I’m just telling you my own preference.

To figure out the best package for your own needs, try 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 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 need to have constructed. It’s a completely different process than sketching on the back of a napkin, and until you become proficient, it can be utterly frustrating andintimidating. Not to worry. Even the most hardened machinist experts go through the learning curve and eventually emerge smiling and able to produce amazing drawings.

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 20 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 circles…

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 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 the 3D package to produce 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 Software?

We live in the Internet Era, and with the Internet comes Cloud 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 generation trial (i.e. Free) packages that will enable you to try them. Their biggest challenge is that they’re not quite as feature rich, stable, or able to integrate and exchange files as well as desktop software. But, they’re improving fast and they can be a lot cheaper than desktop software, so they may be worth a try.

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 can be very expensive or could force you to make compromises you wouldn’t otherwise make.

There are a variety of programs available in this category including:

Meshcam: The world’s easiest CAM package.

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.

HSMWorks: A fresh look at CAM, extremely powerful, and even available in the Cloud via Fusion 360.

Dolphincam: Another entry level package I’ll be taking a look at soon. Reports are it is very good.

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?

– Available toolpaths and other key productivity features such as rest machining. (See the Toolpath roundup page for more on Toolpaths as well as the Milling Toolpath Techniques page)

– Incidental costs and flexibility, especially around the Postprocessor. ( See my notes on Postprocessor Utility Software below for more postprocessor help!)

– 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…

 Parallax Penguins

Penguin BattleBots!

CNC Valve Covers

Valve Covers…

Kids Wagon Wheel

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, the also reflect some of the power of the 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. It 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 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.

What’s a Postprocessor?

I mentioned Postprocessor in passing above, but they’re an extremely important part of the CAM program. When they are creating g-code, CAM programs first create an intermediate program that consists strictly of geometry in a language that isn’t really g-code (there are some standard languages for this such as APT or CL files, but we digress). All CAM programs include a special sub-program called the “postprocessor” that is responsible for converting that geometry language into g-code. The reason it’s done this way is that g-code isn’t really a standard language–there are many different g-code dialects based on which machine controller will be used.

Customizing the postprocessor or “post” to work with your controller is a necessary step when you get your CAM program or a new machine. Hopefully the CAM maker will already have a postprocessor for your machine that is pretty good. In many cases you can spend quite a lot of consulting dollars having to create a post for your machine. The productivity of your shop is also heavily dependent on the post which can be customized to facilitate your machine’s strengths or your shop’s best practices.

Don’t wait until you’ve bought the CAM to start thinking about your post!

Carving Software

Carving Software is another approach that attempts to simplify CAM. With 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: 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.

Conversational CNC Mill Wizards

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 software available to help CNC programmers. This is 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. Here’s 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.

Typical examples of G-Code Editors, Simulators, and Verifiers include:

– G-Wizard G-Code Software Editor: CNCCookbook’s G-Code Editor.

– Predator Editor: G-Code editor with backplotter

– Cimco Edit: G-Code editor with backplotter

– Vericut: A very high-end (with commensurate price tag) simulator/verifier.

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:

Machine Controller Software: G-Codes to Motion

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:

The Mach series by Artsoft

EMC2, which runs under Linux. This package has been steadily gaining in popularity and has replaced Mach3 on Tormach machines.

– TurboCNC

– DeskNC / DeskWinNC

While these programs are popular among hobbyists, their performance and capabilities is generally less than that of the OEM Turnkey controllers.

CNC Utility Software: Help for Machinists and CNC Programmers

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 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. Examples includeCimco’s DNC-Max. Many g-code editors also include built-in DNC.


A variety of 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 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.

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 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.

G-Wizard Editor has some simple Tool Data Management capability built in as a convenience for small shops. A more sophisticated example would be something like WinTool.

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. Predator MDC is a typical example and Cimco has MDC too.

ERP Software

ERP Software is the big daddy of manufacturing 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.

Nesting Software

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 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.

© 2017 Privacy Statement Facebook Building your CNC router