MODO CAD Sexy
Do I really need PowerTranslators?
Generally, yes. MODO is a polygonal modeler, and CAD systems are not (see Context below). You need a way to convert the analytical CAD geometry (planes, arcs, and NURBS surfaces) into a poly mesh (verts, edges, and polygons). PowerTranslators is a plugin that reads CAD geometry, converts it to a polygonal mesh, and feeds that mesh to MODO. Without the plugin, MODO can't read CAD.
Ideal formats:
- STEP (step, stp)
- IGES (iges, igs)
- Rhino (3dm)
Good, but less so:
- Parasolid (x_b, x_t)
- ACIS (sat)
Bad, but workable:
- Stereolithography (STL)
- SolidWorks Parts and Assemblies (sldprt, sldassm) - MODO for Windows only
There are, of course, a few other ways you can get CAD into MODO, but the above is best.
What about SolidWorks files? I thought MODO could read those natively?
Sort of. The SolidWorks compatibility in MODO is kind of a hack: SolidWorks has been kind enough to save their OpenGL triangle meshes into their native files, and MODO (Windows only) can read that mesh data. So yes, Windows users can technically "open" a SolidWorks file, but the result is far from ideal. It can work for really simple stuff, but I don't recommend it.
And yes, you can use the old "SolidWorks Kit" for MODO to make matters somewhat easier, but it doesn't fix the underlying problem with the "native" compatibility: the OpenGL meshes that come over from SolidWorks are just not very good.
My CAD system can export .OBJ files. Is that okay?
Yes. If your CAD tool can natively export polygonal mesh formats like OBJ, you might be able to work it that way. The meshes tend to be poor quality in most cases (MoI being the exception), but they're often quite workable.
I heard Moment of Inspiration (MoI) is the best CAD mesher. Is that true?
MoI is a simple, inexpensive CAD tool that just-so-happens to have a really spectacular meshing engine built-in. If you're on a tight budget, have relatively simple CAD files, and don't mind a little extra legwork, MoI might be just the ticket.
There are several reasons I don't use MoI:
- It chokes on big CAD files. It works well up to a point, but I've found it too limiting to be of use to me in most projects.
- It "flattens" the CAD structure. With simpler files this isn't a big deal, but, again, with complex files like the ones I typically have to parse, it's a serious problem.
- It's a third wheel. If you're only doing it occasionally or your needs are fairly simple, this might not be a big deal. If you need to do it every day, it's a real pain.
- The meshes are good, but not that much better than other options. PowerTranslators does a pretty good job these days.
It's fine, but for the best workflow, use PowerTranslators.
Why aren't my imports all quads?
Because they don't need to be, and to make them quads would be less accurate.
People in the poly-modeling world have a religious belief that any non-four-sided-polygon is of Satan, and that anyone who espouses otherwise should be cut off, shunned, and/or exiled. If you fall into that camp, I won't try to convince you of anything else. Peace be with you.
If, however, you think poly modelers are tools for the creation of great images, I have good news for you: you can get great images out of CAD imports!
I should specify that this only applies for static hard-body models. If you want deformations like cloth or rubber, you'll need to retopologize your meshes using quad-modeling. Also, if you want complex UV maps with good wrapping around complex surfaces, you'll also be looking at retopology. In those cases, clean quad meshes become very important. In most cases, however, it's totally unnecessary.
Don't be a purist. Get stuff done.
Client sent an .XYZ file. What do I do?
There are literally dozens of CAD formats out there, most of which are proprietary. I generally recommend that MODO users unfamiliar with the CAD world sign up for Onshape or Fusion 360: both have free versions, and both can read a wide variety of native CAD formats. After opening your file in Onshape or Fusion, just export a STEP file and import it using PowerTranslators.
What about Sketchup?
Sketchup isn't CAD. It's a poly modeler (see below). The Pro version can export .OBJ files, so that's probably your best bet. You don't need PowerTranslators.
I see weird black splotches on my imported CAD. What gives?
It's probably a broken normal map. You have two options: re-import, or delete the normal map. See normal maps below for more.
Normal Maps?
Normal maps are a clever way of creating smooth looking poly surfaces without using super-dense meshes. Instead of subdividing the NURBS surface into ten-gazillion polygons, we can instead create a smaller number of polys and rely on a "normal map" to help make the surface look smooth at render time.
If you're using PowerTranslators, a normal map is generated on import that calculates the best possible normal directions for each poly in the scene. Without these, your file might look faceted.
The problem comes when you move the polys in a mesh item. The normal map is built based on specific vertex positions within the mesh item. If your mesh is moved or rotated relative to the item center, the normal maps will be incorrect, and may lead to really strange looking artifacts.
- NEVER move component geometry within an imported CAD mesh. Only CAD meshes in items mode.
- NEVER move the item center of an imported CAD mesh. Try moving the Pivot instead or, if you must move the item center, do it using the Merge Meshes command instead.
- NEVER copy/paste polygons from an imported CAD mesh into a different mesh item. Use the Merge Meshes command instead.
In recent versions of MODO, the RMB > Merge Meshes command contains a "Transform Compensation" option. This option will transform the normal map values so that they correspond correctly with the new vertex positions in the merged mesh. This is the only safe way of getting polygons from an imported mesh into another mesh. Use it!
Parts?
In CAD-speak, a "part" usually refers to any single chunk of material in the physical world. A nut is a part, a bolt is a part. A nut and bolt together are an assembly.
In MODO-speak, a "part" is really just a type of polygon tag, not unlike a material tag or selection set. It's usually used as a way of grouping various chunks of a poly mesh into distinct entities for masking, selection, or convenience. It's really no different from a selection set.
When you import a CAD file into MODO using PowerTranslators, you may find that the resultant mesh items have lots of "parts" (in the MODO sense of the word) associated with them. There may be hundreds or even thousands of them. Each of these poly sets represents an individual surface patch in the underlying CAD model, and most users will never use them. Unless you are wanting to selectively apply materials to specific CAD faces, there's really no reason to keep them.
It is perfectly safe to delete these "parts" in the MODO import. It will have no impact on your final renders, and in some cases may greatly improve performance as you work with your meshes.
Long-Winded Context:
Pretty much everything I render in MODO comes from CAD.
In this article I'd like to clarify some things. I find that most CAD folks are pretty ignorant of DCC apps like MODO and vise-verse, and people in each camp tend to make a lot of faulty assumptions about tools on the other side of the digital design fence.
For those who aren't steeped in the art and lore of Computer Aided Design, "CAD" is not short for "AutoCAD" (a specific product made by Autodesk), but rather a generic term for a particular class of engineering software for the design of physical objects.
Common CAD systems in the product engineering and AEC markets include tools like (alphabetical): Alias, AutoCAD, Cobalt, CREO, CATIA, Fusion 360, Inventor, NX, Onshape, Rhino, SolidEdge, SolidWorks, SpaceClaim, or VectorWorks.*
* Some may note that Sketchup is excluded from this list. That's because Sketchup, while being used in what some would see as a CAD-like fashion, is really a poly modeler. More on that in a bit.
CAD tools are fundamentally different from Digital Content Creation (DCC) tools like Blender, Cinema 4D, Lightwave, Max, Maya, or MODO, not just in the way they present themselves to the user, but in their mathematical underpinnings.
DCC tools typically store arbitrary vertices and polygons in space (simple math), while CAD tools use analytical geometry kernels to describe mathematically precise geometry (complex math). Each has advantages.
The relative simplicity of the polygonal approach makes DCC apps incredibly fast, hence they are excellent for animation, gaming, and other real-time interactive applications. Polygonal data can very easily be deformed in fluid, organic ways, making it perfect for character animation, fluid simulation, and general-purpose ooey-gooey goodness. Modeling a human face is surprisingly easy in a DCC app. But a dimensionally-accurate engine block? Much harder.
Conversely, the mathematical precision of CAD tools makes them far superior for documenting geometry for use in engineering, fabrication, and manufacturing processes. Modeling a dimensionally accurate engine block is far, far easier in CAD than in a DCC app. But a human face? No friggin' way.
As for rendering, since DCC tools are used in visual arts industries like film and advertising they tend to have extremely advanced texturing and rendering tools for making gorgeous images of those models. Similarly, CAD tools are common in engineering and design industries, so they tend to have incredibly powerful 2D drafting, physical simulation, and manufacturing features. There's no rule that says a CAD app can't have a kick-ass rendering engine, nor that a DCC app couldn't have built-in 5-axis CNC path generation tools, but typical users in each camp don't tend to demand those things.
CAD tools are neither better nor worse than DCC apps, they're simply different animals with entirely different strengths and weaknesses.
What about Sketchup?
Sketchup is a special case. It's really just a stripped-down poly modeler with some convenient features for drawing somewhat-dimensionally-accurate architectural shapes, so long as they are comprised mainly of boxes and cylinders. You can make surprisingly complex models with Sketchup, but their usefulness is severely hampered by its polygonal nature.
It exists in the vague liminal space between polygonal modelers and CAD: it's too limiting to be a proper polygonal modeler, and far too dumb to work as a proper CAD tool. It owes its popularity to being (a) cheap, (b) easy to learn, and (c) cleverly marketed.
Regardless, the simple fact is that getting a Sketchup file into MODO is as simple as exporting an .OBJ file from Sketchup Pro. Done.
It's all about the kernel
Since DCC apps use relatively simple math, each tends to have its own special sauce for the efficient storage and manipulation of 3D vertices. CAD tools, on the other hand, rely on incredibly complex and difficult math--so much so that it would be unrealistic for a typical CAD tool to build every aspect of its core from scratch. Instead, most CAD vendors build their tool on top of an existing math engine, or "kernel".
Most CAD apps use one of a very few geometry kernels under the hood, most commonly Parasolid or ACIS. Of these, Parasolid is the most common the world over, powering such industry standards as MasterCAM, SolidWorks, SolidEdge, and Siemens NX, not to mention dozens of smaller packages like Onshape and Vectorworks.
Interchange formats
Each geometry kernel has its own native file format. Parasolid uses X_T and X_B files, ACIS uses SAT files.
That said, CAD users of all stripes need to exchange files with one another, and there are three formats that are almost universally supported in the CAD world: STEP, IGES, and, the ugly duckling, STL.
Of these three, STEP is by far the most powerful and versatile.
If your tools all use the same geometry kernel, the best possible interchange format will be the native format for your kernel. For example, if you're sharing between SolidWorks and NX, both are Parasolid-based systems, so a Parasolid file would be the least-disruptive interchange format available. If you're sharing between SolidWorks and CATIA, however, there is no common kernel, so STEP would be a better choice.
STL files are really just a lowest-common-denominator format for the easy exchange of triangular polygon meshes. They're used mainly for 3D printing, and not good for much else. Don't use them if you can avoid it.
Too much information
Having just finished this ridiculously long article, I realise that most of it is way beyond the needs of a typical user. Most people just want to open up a CAD file and start rendering, right?
Hence the opening paragraph: