A Brief Introduction to CAD File Formats

Have you ever noticed that there are more types of CAD file formats than there are CAD systems?

precise gear versus tessellated gear

A precise gear (left) as compared to a tessellated gear (right).

Not only do most CAD systems create several different types of files, there are a myriad of interoperability formats that have different advantages when collaborating with your partners and customers.  Let’s take a look at some of the formats supported by GrabCAD’s 3D viewer, along with the strengths and weaknesses of those formats.

Precise versus tessellated

The main difference between mechanical CAD products and the 3D tools used in other industries is that mechanical designs need to be extremely precise.  Modern CAD tools can represent holes a micron in diameter on parts that are a kilometer long.  These models are commonly called “precise solids,” or more technically, “boundary representation” (B-rep) solid models.

To visualize the precise solid on the graphics processors that are in your computer and phone, the models need to be converted to an approximation of the underlying design.  These “graphics,” “tessellated,” or “mesh” models are generated on-the-fly every time you modify your design, and most CAD systems store the graphics in their files along with the precise data.  If you’ve ever noticed that a circle in CAD is actually made of a lot of little straight lines, it’s because you are looking at this approximation.  The reason that you don’t usually notice the triangles is due to a fancy lighting trick, but, if we disable the trick, you can see the difference in the picture, above.

All of CAD systems that GrabCAD supports store both precise and tessellated geometry.  When we display them to you in the viewer, we use the tessellated information whenever we can access it.  That means we can often show the world the exact same graphics you saw when working in your CAD system, minimizing the chance of translation error.

Proprietary versus neutral

Every CAD vendor creates their own file formats, and they also tend to support neutral formats that are designed for interoperability.  The vendors need their own file formats because every time they add a new type of entity, it needs to get stored in their files.  On the other hand, neutral formats are only useful for entities that are supported by many CAD systems.  The reality is that if you want to share all of the features, history, and special objects stored in the files, everybody involved needs to be using the same CAD tool.  On the other hand, neutral files are great when working with customers and suppliers, because the different stakeholders can have different CAD systems.

Neutral formats are designed to be easy for any vendor to read, and they are often the most reliable way to share work on GrabCAD.  We work as hard as we can to read data from many proprietary formats, but the reality is that there will always be funny things in those files that can cause errors.

When sharing files on GrabCAD, we recommend that you consider sharing both the native format and a neutral one.  The native files let people with the same CAD system as you see all the details of your work, and the neutral format helps guarantee than anybody will be able to see it on GrabCAD and easily incorporate it in their own CAD models.  On the other hand, if you don’t want to provide all of the details, a neutral format, perhaps even a tessellated one, can obscure them.

One more word about neutral files: there is a lot of debate in the industry over whether various formats truly qualify as neutral or not, and there are many different standards bodies and tests of neutrality.  At GrabCAD, we like to embrace anyone who has data to share, so for the purpose of this post, we will designate as neutral any format that has been designed or promoted as such.

Single-file versus multiple-file assemblies

Many CAD vendors create different file types for parts and assemblies.  Even those with only one file type often allow for references to external components.  In most cases, we need the entire assembly to display the design on GrabCAD, which is why we created an awesome multi-file uploader.  In some cases, most notably with SolidWorks assemblies, GrabCAD can extract all the necessary graphics from the assembly file itself, so you don’t need to upload all the parts and subassemblies or export to a neutral file if all you want to do is show off your work!

BOM versus flat list

Some file formats are smart enough to know that if your assembly contains 100 copies of the same bolt, it can store one part and the 100 different positions for it.  These contain the BOM (Bill of Materials) and the assembly hierarchy structure. Others are simpler, and need to store 100 copies of all the geometry of the same bolt.  The GrabCAD viewer lets you navigate the BOM when it’s available, which can be helpful for those examining your work.

Colors

Some formats allow us to embed color information, while others just contain the geometry.  If you can use a format that supports colors, your assemblies will look a lot better in 3D.  For individual parts, it doesn’t matter as much.

The List

With those categories defined, let’s take a look a the 3D formats supported by GrabCAD’s viewer:

formats

Click image to expand the view.

Our Recommendations

In addition to uploading the native data, your two best bets for viewing on GrabCAD are STEP for precise data and VRML for a graphics-only preview.  STEP has all the goodies, including BOM and color.  The only limitation of STEP is that it doesn’t contain its own tessellation, which leaves a small chance of error.   If you don’t need or want precise geometry, but you want your model on GrabCAD to look as good as it does in your CAD tool, VRML is your best bet.

  • Manolis Theofilos

    There is a mistake at the end of the list. SLDASM and SLDPRT are Solidworks files not Solid Edge files.

  • Kevin De Smet

    STEP 203 does not support colours, STEP 214 does. Yet another subtle difference in the world of file formats!

  • http://www.grabcad.com Blake Courter

    Kevin,

    Excellent point. I believe that some of the more modern flavors of STEP also support colors. If the STEP file contains color information, GrabCAD should pick it up.

  • Charlie Stirk

    STEP has supported multiple-file assemblies for years, see the recommended practice for (Nested) External References. So the File ORG for STEP should be “Either”. The new STEP AP242 that combines AP203 and AP214 has also added a new tessellated format, so the Geometry for STEP should be “Either/Both”. You can see which STEP translators support these capabilities here
    http://www.cax-if.org/vendor_info.php

  • Luis Daniel Ibarra

    Great entry, it’s been a long time since I wanted to get all these straightened up! Very informative and helpful.

  • http://www.grabcad.com Blake Courter

    @Charlie, thanks for the corrections. I was not aware that STEP supported external references, and I was only considering APs 203 and 214. We updated the table to reflect your comments.

  • http://www.cadexchanger.com Roman Lygin

    Hello Blake,

    Thank you for offering an overview of the file formats differences.
    Let me offer a few comments that would hopefully be helpful to you and others.

    1. Corrections:
    a. Colors:
    - IGES does support colors (both predefined and custom RGB)
    - Parasolid does support colors as often as any other format, so the comment “Not usually” is not really accurate.
    b. BOMs
    The way you describe BOMs seems to mean a capability of the format to describe assemblies consisting of multiple instances of the same part. If so, then essentially every format except STL is capable to do this. For instance, IGES has Subfigure definition and Singular Subfigure Instance; Parasolid has assembly/part/instance (which are often used); VRML has DEF/USE mechanism to share entities and so on.
    2. Additions:
    a. X3D format. You might want to add X3D which is essentially the same as VRML in terms of data model and just differs in terms of encoding (e.g. xml vs plain text).
    b. Attributes. There are other useful attributes in addition to colors. These include names (essentially every format except STL), materials (e.g. in JT), validation properties in STEP, PMI in JT, etc.
    c. Binary vs text. You might want to add this classification, if you think it can be helpful to the readers. Binary formats tend to be more compact than textual, but impossible to be read by humans.

    Hope this will be helpful.
    Roman Lygin, CAD Exchanger

  • http://grabcad.com Blake Courter

    Thanks, Roman,

    Thank you very much for your thoughtful response. I’ve made most of your recommended changes to the table. (Open Engineering even applies to blog posts!) I admit, I drew on personal experience more than specs to complete some of these fields, as this is intended to be a practical guide rather than a detailed spec. For that reason, I think to to claim that a format supports a BOM, it needs both the model hierarchy and the part names. VRML, for example, does not deserve to make the cut, as I don’t believe that they can contain this information.

    Also, when sharing files on GrabCAD, binary versus ASCII doesn’t matter much. Although text files can take a little longer to upload, we optimize the data for visualization on the server, so it doesn’t affect performance in GrabCAD.

    This list only includes files GrabCAD currently supports. X3D hasn’t made the list, but more formats will be coming soon. I expect that this table will ultimately evolve into part of our FAQ.

  • http://www.cadexchanger.com Roman Lygin

    Hi Blake,
    Thanks for accepting the comments, and explaining your point on ascii vs binary, and X3D.
    Just for your curiosity – this is the simplest assembly in VRML (http://cadexchanger.com/download/temp/assembly.wrl). It does contain a single part (with explicit name ‘MyShape’) and two instances thereof (‘MyInstance1′ and ‘MyInstance2′). Please let me know if you meant something different which VRML is not capable to support, perhaps I’m just missing something.
    Take care,
    Roman
    P.S. Is there a way to subscribe to the comments ? It looks like the only way is to return to the page :-|

  • http://grabcad.com Blake Courter

    Roman,

    I appreciate your tenacity. I uploaded your WRL to Workbench and was delighted to see that VRML can be used to represent assemblies. Please find your changes above.

    As for subscribing to comments, if you entered your email and didn’t see them, we might have that disabled. Apologies.

  • http://www.cadexchanger.com Roman Lygin

    Excellent! Thanks Blake for being open to feedback.
    Email has been always specified in the “Leave a comment” form, no notifications :-(.

  • Kevin De Smet

    I forgot there’s also like STEP AP203ed2 which arrived on the scene after AP214 and as such, in turn, took on some of its functionality as well. I believe including the colours thing.

    Also in between all those differences a big one was the definition of trim curves being either parameter space or world space, or both. It’s different in 203, 203ed2, 214 and can make a big difference depending on the sending and receiving system’s preferences on getting a solid or bunch of surfaces with several holes in it.

    Please pretty please, 242 save us from all this confusion and just become the standard STEP for mechanical parts and assemblies ;-)

  • http://grabcad.com Blake Courter

    Kevin,

    I’m with you, and I also have great expectations for AP242!

  • http://eagleapex.com eagleapex

    AMF is always forgotten. http://en.wikipedia.org/wiki/Additive_Manufacturing_File_Format
    But development on it has been glacial. It stands to replace STL as a basic 3D printing file format. It includes curved triangles, textures, materials and colors. There aren’t any non-beta programs that can generate it today.

  • Pingback: GrabCAD Tips: The Kernel, Why CAD Systems Don't Play Well With Others - GrabCAD news