In the past three years, we've seen more dramatic change to the CAD industry that we've seen in the prior ten. Direct modeling has taken hold in many mainstream CAD applications. There has been an admission that 2D is a valid form of design and not just some laggard characteristic. There's been a literal explosion of capabilities all related to design and engineering. All of these changes hint that there was a prior problem with how traditional CAD served users.

In this post, we'll explore that notion. We'll take a look at the fundamental premise behind engineering. We'll then match that up against the capabilities of traditional CAD software. Specifically, we'll be looking for areas where those applications fell short.

The Nature of Design and Engineering

Before we jump into specific functionalities or capabilities that traditional feature-based CAD provides, I think it makes sense to step back and understand what problem these types of applications are trying to solve. Of course, there are lots of problems in engineering that needed to be solved. That includes getting changes to a design to show up on the engineering drawing. We'll talk more about that one in a moment. But here, I'd like to talk about how engineers design products and the problems it poses.

Designing for Function but within Constraints

Fundamentally, engineering is about developing a part's or product's form and fit in order to fulfill a function. It might be to generate thrust. It might be to control some sort of motion. It might be to survive some impact, crash or drop. Obviously the functions that parts and products must fulfill vary widely.

Now, engineers of course don't have completely free reign in their design. They must design products within a set of constraints. These might be form, fit and function constraints. But they just as easily could be related to cost, manufacturability, serviceability and far more. Just like a part's or product's function, constraints can vary incredibly widely.

Good Engineers are Explorers

So how do engineers go about designing for function but staying within constraints? Well, they think of a potential design that might work and try it. They develop it's form, fit and function. They check against its constraints. In some cases, that first effort actually does work. But engineers often do not stop there because there might be a better design that they haven't come across yet. So they try another one. That one might not work. Then they try something different. This effort goes on and on. Ultimately, the number of attempts is capped by the deadline in the schedule.

My point here is that engineer is all about exploration and iteration. It's about trying something, seeing it fail, trying something else and seeing it succeed. The more iterations that an engineer can explore, the higher the likelihood that the final design of the part or the product will be better. At its core, I think this is one of the key characteristics of engineering.

The Problem that Feature-Based CAD Solved

So, how is this related to traditional CAD?

Well, lets rewind the tape to when traditional CAD, and by that I mean feature-based CAD, originally was launched. The first releases of CAD software had a number of important capabilities. But the most impactful was associativity. That's the ability to make a change to a 3D model and have the modifications show up on the engineering drawing automatically. This capability offered dramatic advantages over updating 2D drawings by manually moving and modifying lines and arcs. This capability alone was the driver for many CAD purchases.

Now, of course, the associativity capability couldn't stand on its own. In order to propagate a change from a 3D model to the drawing, you needed some mechanism to modify the 3D model. And this is where parametric control and features came into play. Features allowed users to progressively build up 3D models step by step. Parametrics allowed users to precisely control the size, shape and extent of modifications to features.

Associativity offered dramatic advantages in updating drawings. But here's the key question. Did parametrics and features help engineers design products?

The Problem with Features

Parametrics offer numeric control of geometry. It's obvious that as engineers iterate on designs and explore new alternatives, they need that capability. I think that directly impacts an engineer's ability to find better designs.

Features, on the other hand, carry some baggage. You see, most traditional CAD applications put features in a linear sequence. Furthermore, features have something called external references. As external references change, it drives changes to the features that haven't been explicitly modified. In larger models with large numbers of features, you can end up with a huge network of interdependencies. A modification to a feature early in a model can result in unintended and even unknown changes in features that occur later in that linear sequence. Worse yet, that same change to an early feature can cause a feature failure later on.

The overall story is this: models based on features get more constrained as they get more complex. For engineers that are iterating on designs and exploring new alternatives, that fact actually hinders their efforts to find better designs.

But It's Not ALL Bad

OK. Reading so far, you might assume that I'm ready to hammer a nail in the coffin of feature-based model. But in reality, I'm not quite there.

There are advantages to the interdependencies created by feature networks. The biggest advantage is that they can be tuned to react incredibly intelligently to modifications. I'm not saying you can magically turn an engine block into phone, but you can save yourself quite a bit of time by embedding intelligence into models. That takes a near CAD expert to do something like this, but it can be well worth it. Especially for bid activities as well as configure to order businesses.

Summary and Questions

OK. We covered lots of ground here. Let's recap.

Engineers design parts' and products' form fit and function with the context of constraints.

An important characteristic of an engineer's design activities is to iterate on designs and explore new alternatives.

Early traditional CAD applications offer automated propagation of change from 3D models to engineering drawings. This capability is called associativity.

The mechanism to change 3D models in traditional CAD applications has been parametrics and features.

Parametrics allow users to modify geometry with numbers. Features are building blocks that are used to successively build geometry.

The problem with features is that they use external references, which can result in a large network of interdependencies in larger models. Modifications to features early in the sequence can result in unintended or unknown changes to features later in the sequence. They can also result in model failures.

This fact makes designing with features constraining and actually hinders an engineer's efforts to iterate on designs and explore new alternatives.

These networks of interdependencies do have advantages, however. They enable 3D models to react intelligently to change. They are especially well suited to bid work and configure to order businesses.

Alright folks, those are my thoughts. What are yours? Do you agree? Do you disagree? Point out the holes in my thinking or where I might have missed something important. Looking forward to your comments.