In my previous post in the series I talked about my experience with CAD and some platforms that are available for Hobbyists. What I did not discuss was the history of CAD software and some of the key concepts that may differentiate one platform from another. However, I am not going to write the unabridged history of CAD, if you want to read that, I highly recommend going to Wikipedia and falling down the rabbit hole.
First, what do I mean when I say CAD? CAD, or Computer Aided Design, is a rather broad topic. It encompasses pretty much any software that can be used to aid in the process of designing something. This could range from PCB layout software (such as EAGLE or KiCAD) to a 2D drafting package (LibreCAD, AutoCAD, etc) to a full 3D modeling suite (Inventor, Solidworks, Fusion360, etc). I prefer to think of each of these as ECAD, 2D CAD, and 3D CAD respectively. Based on the content of the first post in the series it should be no surprise that when I say CAD I am referring to 3D CAD, or more specifically a 3D CAD modeling package. It should also be noted that there is an entire other world of CAE, or Computer Aided Engineering, software out there. This consists of specialty automated design and simulation software. While CAD software can be classified under the CAE umbrella, I am not going to talk about much about CAE software in this series.
Now that I’ve drawn a line in the sand between 3D CAD and other CAD flavors, I want to make another distinction between 3D CAD and 3D modeling. 3D modeling is certainly the broader term; any software that can be used to design a 3D shape can be considered 3D modeling software. But, as all squares are rectangles and not all rectangles squares, I do not consider all 3D modeling software to be a 3D CAD program (in the engineering sense). There are a lot of software packages out there that are wonderful for creating (designing even…) a 3D shape (Blender, Maya, 3DSMax all come to mind) but they are insufficient (in my mind) for creating an engineered component.
So, what sets a piece of 3D modeling software such as Blender apart from from a 3D CAD package such as Inventor Fusion 360? The key difference lies in how each represents a 3D shape. Blender, and programs like it, are designed specifically to create models that are represented as a mesh while a 3D CAD program represents a model as a series of features.
Mesh Based Modeling
Having your model as a mesh gives you a lot of flexibility in creating smooth organic shapes. A mesh based modelling program includes a lot of features to increase or decrease the density of the mesh and you are able to push/pull faces of the mesh to sculpt the model. In a model such as this the mesh is used to represent a series of surfaces, and as such, this is sometimes referred to as surface modeling.
Now, a lot of CAD packages do include tools for creating surfaces and provide some level of being able to sculpt your model. These mesh surfaces are usually defined by a Non-Uniform Rational B-Spline, or NURBS surface. However, although these packages include include tools for working with surfaces and meshes, they are not ideally suited for this task.
There is a ton of software available for editing mesh based models. Mesh based models are commonly stored in an STL or OBJ file (read more on these formats here and here). Both formats are extremely common in both 3D printing and videos games and as such software packages to edit or create may be of interest to many hobbyists. In the future I plan on using Blender for some other projects, but, I feel that mesh based models (and the associated software packages) are not ideal for designing any sort of mechanical assembly.
Feature Based Modeling
Most engineering 3D CAD packages use a concept called feature based modeling (this is sometimes referred to as parametric modeling). In feature based modeling, you build your part one feature at a time. These features can each be revisited to change or modify your design. There are typically many feature types used to build a model (such as extrudes/cuts, lofts, sweeps, revolves) and features used to modify a part (such as chamfers or fillets).
Features that are used to define the shape of your model typically start with a sketch or 2D profile that is going to be used to define the shape. In an extrude or cut this 2D profile is extended linearly to add or remove material (think prism). A revolve takes the 2D profile and extends it radially around an axis (think torus). A sweep takes the profile and extends it along a user defined path which is provided as a separate 2D (or 3D) profile. A loft is a special case that uses multiple 2D profiles to define a 3D shape. These multiple profiles are interpolated between to generate a solid.
It is helpful to think of each feature type of being a pair. An extrude or cut feature both take a 2D profile and extend it linearly to add material or remove it. Similarly, a revolve, loft or sweep can either add or remove material. Some programs treat these pairs as separate feature types while others treat them as the same feature type with a parameter that indicates whether material is being added or removed.
Additional features can be used to modify the shape of a part. This includes mirrors and patterns where a feature is repeated, chamfers and fillets that allow edges to be broken or rounded, and a myriad of other functions that modify the shape of the part.
In feature based modeling, each feature is typically defined by its edges and faces. This representation is called Boundary Representation, or B-Rep. These CAD documents are typically stored in formats that are proprietary to their platform. However, there are standard formats that most CAD packages can access such as STEP and IGES.
Other Modeling Schemes
Mesh and feature based modeling aren’t the end-all-be-all of 3D CAD. There are many other types of representing 3D data. You can read a lot more about other modeling schemes at the Wikipedia page on Solid Modeling.
The one that you will encounter as a hobbyist most often is Constructive Solid Geometry (CSG). In CSG, primitive shapes are combined using boolean operations (intersect, difference, join) to create complex 3D solids. Most CAD packages have support for performing these boolean operations on a feature or mesh based model.