CAD File Formats can be a confusing mess when you’re just starting out. There are so many questions that come up:
– What’s the best format to use for exchanging information between two different CAD programs?
– Why does this file open and look like my model but it seems broken in many ways compared to a real model?
– Why is this format showing all these weird triangles?
– And why is this format so much less accurate than it should be?
It turns out there are more CAD file formats than there are CAD programs, just to make things even crazier. And, most CAD software can create multiple file formats. What’s the right one to use?
Native (Proprietary) versus Neutral File Formats
The first thing to note is that CAD file formats generally fall into one of two categories–either Native or Standards-Based. Native file formats are Proprietary–they’re under the control of a particular CAD software maker who can choose to change them at any time. A Standards-Based format is in the hands of some standard-making organization which gets to decide when and how the format changes. Purportedly it will do so according to the best interests of all users, and not just the best users of a particular CAD software company. The Neutral formats were specifically created to encourage interoperability. In other words, to make it easier to exchange files with someone who uses different CAD software than you. To make matters more complex, the most successful Native Formats are supported by a variety of software. Once you become an industry standard, the world pretty much wants to do whatever it can to work with you. Sometimes, the ability to work with a Native File Format affords better interoperability than the Neutral File Formats.
One of the things I like to look for when I am “>evaluating CAD software is its ability to handle as many file formats as possible as well as possible. You never know when you’re going to get a file from a customer or some other source that you need to be able to read and do some work on.
Neutral File Formats
Let’s have a look at some of the Neutral File Formats and discuss their pros and cons:
– STEP: STEP is the most popular and most recommended of the Neutral Formats. It is an ISO standard, so we know it is in the hands of a reputable standards-making body. It’s biggest disadvantage is that it can be costly for a vendor to support it, but as end-users, we need not concern ourselves overly with that. STEP has a number of advantages over IGES such as:
o STEP includes tolerance information in the file, which is very important to precision machining applications.
o STEP does assemblies. It won’t just make 100 copies of the same part, it’ll refer to a single part 100 times.
o STEP does Solid Modelling
o STEP is an active and vigorous standard with many sub-standards to support specialized use in various areas.
– IGES: IGES is an older standard started by the US Air Force and taken over by ANSI. It’s somewhat in decline because STEP has so many advantages over it. In terms of software years, IGES last evolved sometime in the late Jurassic era. As a standard, it has been abandoned, and will not be improved ever again. It is a pure geometric representation, which seems like a good thing in a CAD file format. Unfortunately, there is a lot more to a modern format that is simply lost when we convert to IGES. For example, there is no real notion of structure, the relationship of parts to an assembly, and that sort of thing. IGES is decent at wireframes, but it was baked before Solid Modelling was really worked out very well. Consequently, there are lots of Solid Model-related issues with IGES files that have to be manually resolved.
– Parasolid: Parasolid is a complete CAD kernel that can be licensed from Siemens by any company that wants to use it. Combining the actual code kernel with a file format helps make sure everyone’s use is compatible, which is a good thing. There are a great many CAD and CAM companies that use Parasolid. Many are listed in the Wikipedia article on it. I see a lot to recommend Parasolid. It’s kind of like a Native Format that’s handled by a lot of different software. Given that companies such as GibbsCAM, Siemens, MasterCAM, and man others are deeply involved, it seems likely to be here to stay for a long time.
– DXF: DXF is a pure 2D format and technically should be viewed as a Native format. It is Autocad’s native 2D format. But Autocad is so ubiquitous and so many CAD programs support it that DXF has come to be a pretty universal interchange format for 2D information.
Tip: Check our library for free DXF files that you can use in your designs.
– STL: STL is perhaps the universal format for pure 3D information. It is much-loved by 3D printers and somewhat loved by CAM. The biggest problem with STL is it is just a triangular mesh. It has almost no “smarts” about the object other than its overall shape. This is fine for 3D printing where a slicer doesn’t need to manipulate the CAD data much, but it is often not the best thing for CAD where you load a file that turns into a monolithic lump that is hard to edit much.
– VRML: VRML carries somewhat more information than STL, but is read by fewer software packages. In general, there are better Neutral Formats for CAD than STL or VRML.
Native File Formats
Most every CAD package has one or more Native formats in addition to any Neutral formats it supports. For the most part, your CAD package will do the best job loading its own Native formats–no surprises there. But if the package does a good enough job on a Neutral format, why use the Native/Proprietary format?
Well, “good enough” is in the eye of the beholder, but the loss of features and productivity of using pure Neutral formats all the time can be profound. For example, neither STEP nor IGES capture any parametric data. It’s extremely common to load a Neutral format and find that most of the commands in the CAD package just won’t work on the objects loaded, even though they look fine.
The fact is, you’ll probably be using Native Formats more often than the others. Every time you can avoid the Neutral format in many cases. The Native files simply contain more information for your CAD software to manipulate.
So, whenever possible, it’s good to have a CAD system on hand that can load multiple Native formats, not just its own. Ideally, it should load formats from the most popular CAD software in the market. And what is the most popular CAD software?
Well, CNCCookbook has done extensive surveying to determine that. Here are some overall market shares:
If there are particular formats you know you’ll be exposed to, perhaps due to knowledge of your customer’s needs or the market niche you’re in, be sure to consider those. Also, don’t just focus on the Mainstream CAD market share. Review our CAD Market Share article and see about the different market segments we’ve classified things under.
CAD File Formats and CAM Considerations
You’ve got a pretty good grasp of what the various File Formats mean for CAD software, but there is more to CNC than CAD. Perhaps most importantly, there is CAM. Before a CAM package can post gcode, it needs to geometry that it can use to generate toolpaths. That geometry comes to it from a CAD file being loaded.
The critical issues for the CAD file formats and CAM fall into two categories:
– Can I properly identify the features my toolpaths correspond to in the CAD model?
– Are the features represented with the degree of accuracy needed for accurate g-code reproduction?
– Is there other information in the file that the CAM will make use of?
As with CAD, this leads us to preferring file formats that capture as much useful information as possible. The difference is CAM is a little less sensitive to the amount of information available because you’re less likely to want to change the CAD model from within the CAM package.
Unfortunately, CAM is much more sensitive to the accuracy available from the CAD file. There are various sources of inaccuracy in these files. For example, a purely tesselated file format (one that contains only the triangular mesh), such as STL, has nothing but triangles in it. There’s no way to tell what resolution or tolerance was specified when the triangle mesh was created. The CAM software just has to take the triangles as gospel and hope for the best. OTOH, a more complex file format may make it easy to tell when a wall is truly vertical and not just triangles within some tolerance of vertical. It can tell when a round hole is a hole, and not just some array of triangles that are within some tolerance of being a hole. Perhaps there is further information annotating the hole in some way that tells even more.
Here is a view of what a typical triangular mesh looks like:
A triangular mesh…
This is the kind of thing that matters to CAM software. It’s also one reason why having CAM integrated into the CAD package has become so popular. Not only is it easier to have it all under one roof, but typically the CAM can tell more about what’s going on by using API’s that let the CAD package tell it potentially even more than is captured in the file. Or perhaps to tell it in a way that is easier and more useful to the CAM.
Here is a part that is showing the results of inaccuracies and imprecision from the CAD file:
A part that is faceted…
As you can see, the part is faceted where a smooth curve was expected. This can happen for a variety of reasons. Perhaps the file format simulates all curves as line segments, for example. Combine that with a low precision setting and you’re going to get visible facets. Imagine the difference between the precise mathematical definition of a circle and one simulated as a series of line segments–there is room for quite a lot of error if you’re not careful!
For most CAD, it is possible to set the precision. You’ll to experiment with it a bit to get the results you want. The more precision, the better the results, but too much precision can also make files much larger and software will run more slowly. So, there are tradeoffs.
This has been a general overview of the different file types used by CAD software and some of the impacts on interoperability and on downstream CAM software. There’s much more going on, but that’s better left to specific cases and questions. If you are having a problem, track down the user forum for your software and check in there first. Chances are you will not be the first one who had that particular issue. Someone else may already have solved it and can tell you an answer right away.
Like what you read on CNCCookbook?
Join 100,000+ CNC'ers! Get our latest blog posts delivered straight to your email inbox once a week for free. Plus, we’ll give you access to some great CNC reference materials including:
- Our Big List of over 200 CNC Tips and Techniques
- Our Free GCode Programming Basics Course
- And more!
Just enter your name and email address below:
100% Privacy: We will never Spam you!