CNC Software: Digital Tooling for CNC
This article is a roundup of Digital Tooling: CAM Software, Simulators, Controllers, Editors, and the host of other Utilities available to speed CNC operations.
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 CAM program to be really productive with the machine. G-Code editors and feeds and speeds calculators were not far behind. There are no doubt a number of other kinds of software, which I've taken to calling "Digital Tooling", that are important to your 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 $69 for a sophisticated 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 software. Go figure. With CNC, your digital tooling may have a bigger productivity impact than any of your "real" tooling.
Given that CNC goes through cutters faster than manual machining (through no fault of it's own really, it's my fat fingered MDI moves or the far bigger piles of chips being slung around), I may not be able to reduce my regular tooling budget much. And, to get the most productivity possible, I may need to spend nearly as much again on Digital Tooling. Maybe the higher cost of a CNC vs manual evens it all out and regular + digital tooling = machine cost. I could believe it, although I didn't need a cart full of CAT40 tool holders for my old manual mill.
This page is a high level round up of the different kinds of Digital Tooling available for CNC'ers.
||How it all fits together...
Let's start out with a quick
overview of how all the different software components fit together. In general, CNC involves the following kinds of software from start to finish:
- 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.
- 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 a variety of 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.
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. Most of these programs have a free trial, and you should take advantage of it to see which ones you like. They are each quite different, although there are some similarities, such as whether one is designed for explicit modeling or parameteric modelling and whether they are 2D or 3D.
There are several things to consider when you're evaluating CAD programs:
- Are your customers likely to bring you drawings created in a particular format? How easy is it to hire programmers that already know the software? Solidworks is extremely popular and many shops choose it for compatibility with their customers and to make it easier to hire programmers experienced in the tools the shop uses.
- How good is the software at importing and exporting other formats? I've found Rhino3D to be particularly good, for example.
- Is the software good at the sorts of work you need to do? Rhino3D is particularly good with flowing curvy 3D shape modelling.
- 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?
- Do you need solid models, dimensioned drawings, or both? How important is 2D?
Of course you'll want to look at the cost of the package, available training and options. CAD packages can be expensive, so take your time making a good choice. You're likely to live with it and continue to invest in it for many years.
Of these, the one I use most is
Rhino 3D. I say this because it is the package I'm most productive with. SolidWorks is a close second for me, but I find for reasons I will get into in a moment that the parametric capabilities in SolidWorks slow me down. If I spent much time exhanging drawings with others using SolidWorks, I might change my mind, but I make all my own drawings, so that's where I need the productivity.
Another one that is very popular among the homeshop CNC crowd is Alibre.
It is a parameteric CAD program, and many like it better than Rhino for
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 and intimidating.
Not to worry. Even the most hardened machinist experts go through the
learning curve and eventually emerge smiling on the other side.
The first part design I did in Rhino 3D was a reproduction
of my chuck backplate project...
a copy of Rhino 3D version 3 from EZ-Routers 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!
Getting ready to "subtract out" the holes
on the backplate...
I use hexagons or other polygons to lay out bolt
If you have
any interest in Rhino or better are already using it, I have compiled
a page of "Rhino Tips"
I've discovered during my learning process that make me more productive.
They're probably obvious to most experienced Rhino users.
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.
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
There are a variety of programs
available in this category including:
- OneCNC: The first CAM package I learned, easy to use and very popular on our CAM survey.
- VisualMill: One of the most popular packages on our CAM survey.
- Mastercam: The market leading CAM package by many measures.
- HSMWorks: A fresh look at CAM, extremely powerful, and brought to you by the Cimco people.
- Bobcad: Very popular entry level package.
- Meshcam: A super easy to use 3D only package we recently reviewed.
- Dolphincam: Another entry level package I'll be taking a look at soon. Reports are it is very good.
And many others. We ran a week long survey of CNCCookbook visitors to see which CAM package they were using and got the following results:
We had hundreds of visitors participate in the survey in December 2010, so the proportions should be pretty accurate. An important note is that the division between "Hobby" and "Pro" was based solely on the pricing of the most inexpensive module in a CAM company's lineup. VisualMill, for example, is available in a set of versions that span the gamut from Hobby to Professional class CAM.
I've used OneCNC, VisualMill, HSMWorks, MeshCAM, BobCAD, and DolphinCAM and fine useful capabilities in all of the programs. This software is not cheap,
but you want to be careful to get something that works well. The creation
of g-codes will be the heart of your CNC operation unless you're a real
whiz at manual programming.
Consider also that some
of this software is oriented to a single machine. There are different
versions of OneCNC for lathe versus mill, VisualMill only works for mills,
but some others do it all. There are even more specialized CAM packages for machine types that need a special solution including wood routers, plasma cutters, lasers, and EDM machines.
In addition, some CAM packages have
powerful Cad capabilities integrated with the package that may eliminate
the need for you to buy a Cad program altogether--a considerable savings.
In other cases, such as HSMWorks or SolidCAM, the CAM is a "plug-in" that runs inside the CAD package so you get to keep using your favorite CAD (assuming it's the one the CAM plugs into) and add powerful CAM to it.
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...
Bling bling wheel for a kid's wagon...
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.
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 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 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.
||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:
As I just finished discussing, the postprocessor is the part of your CAM program that converts generic geometry to controller-specific g-code. Given the importance of this component and its impact on productivity, it should come as no surprise that there are a number of utilities out there related to postprocessors. They range from tools to help you manage the postprocessor of a specific CAM package to generic postprocessors that can be used instead of your CAM package's post.
Posthaste is an example of a generic postprocessor you might check out.
There are also utilities that can translate g-code intended for one machine to work on another machine, sort of like reverse postprocessing.
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?
Let's take the simulation and verification case first. As mentioned above, CAM produces a geometry file and then postprocesses it to create g-code. Most of the simulators that run inside the CAM program run off the geometry file and not the g-code. Therefore, what they're showing you is not actually what your machine controller sees. It's entirely possible for mistakes or bugs in the postprocessor to create problems that are invisible to the CAM program and show up for the first time when you run the part on the machine. That can be a bad thing, especially for a 4 or 5 axis machine where expensive parts of the machine itself are moving and could come into contact with a tool. Since all CAM programs have at least a few bugs, many shops insist on running programs through simulators before they run them on the actual machine to provide some additional testing and security. For more on g-code simulators, check out the chapter from our G-Code course.
What about G-Code Editors and Debuggers? These are tools designed to facilitate manual g-code programming. There is a case to be made for doing this entirely from scratch and a case to be made for modifying CAM generated g-code to make it more optimal. Programming from scratch usually involves relatively simple programs. Lathe programs are often simple enough that a lot of machinists do it by hand rather than via CAM programs. For more about CNC G-Code Editors, check out our page on the subject.
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
- NCPlot: G-Code editor with backplotter
- Discriminator: G-Code editor with backplotter
- Cimco Edit: G-Code editor with backplotter
- Vericut: A very high-end (with commensurate price tag) simulator/verifier.
There are programs specifically designed to optimize g-codes in various ways. They come in after a CAM program or manual programmer has completed g-code and try to make it better through various transformations. One common type of transformation involves fitting arcs to replace long series of line segments, resulting in a g-code program that is smoother and faster to evaluate. For a little more information on this kind of transformation, check out our page on Milling Toolpaths.
For a good example of this kind of software, see Cimco's Filter product.
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 many other programs such as MEPro.
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:
Mach series by Artsoft
- EMC2, which runs under Linux
- 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
Feeds and Speeds Calculators and Cutting Knowledge Bases
As mentioned, it's handy for CAM programmers to have feeds and speeds and other reference utilities available at the CAM workstation. It's also very useful to have this data available on the shop floor. This provides greater flexibility and insight when tuning the cuts, but more importantly, it provides the opportunity to start building a Cutting Knowledge Base.
The ultimate feeds and speeds that are possible are dependent on a lot of factors very specific to your shop's machinery and best practices. By carefully keeping a record of all the cutting parameters you use, and by gradually increasing feeds and speeds until problems start, you can build a Cut KB that will help your shop to run at maximum productivity. For more on this sort of thing, check out our article on Toolroom versus Manufacturing Feeds and Speeds.
If you'd like to play with a Cut KB and associated Feeds and Speeds Calculator, give G-Wizard a try for free:
Try the Free Trial Version of G-Wizard Speeds and Feeds Calculator...
No credit card required--just your name and email.
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 include Cimco's DNC-Max. Many g-code editors also include built-in DNC.
Conversational CNC, sometimes called "Wizards", is designed to make it not only possible but easy to create simple g-code programs without CAM or manual programming. Think of it as a collection of Wizards for creating simple g-code. 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. 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 is sometimes available with the CNC controller software, but is more often sold as a stand-alone. Kipware or Mach3's Newfangled Wizards would be two examples of Conversational CNC software. CNCCookbook also offers a conversational programming module called G-Wizard CNC Conversational Programming--check it out!
Nesting software is used to lay out parts for sheet work, such as milling, plasma cutting, or laser cutting. Its aim is to minimize waste.
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.
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.
Estimation software is designed to help job shops quickly and easily estimate their costs when bidding on jobs.
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.
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.