I’ve got a post in the works on comparing the sketch functions between SE and SW, but I’m waiting on some clarification for a couple of points. So I thought in the mean time I’d write something about design intent, since someone asked for that in the comments recently. This should have made my voting list, but somehow I left it out.
“Design Intent” is a phrase in search of a definition. It’s possible to consider design intent separate from CAD, in which case I think it means “the driving elements of the design”. But here I’m not talking about “design”, I’m talking about CAD modeling. Design happens in your head, and is usually already complete before you get the idea anywhere near a computer. What happens on the computer is modeling of your design idea.
For anyone who has read my books, I rename “Design Intent” to “Design For Change”, which to me is more descriptive, and something you can actually act on. Now that I’m thinking about it, “Modeling For Change” might be even better, because the CAD method should not affect the design. With the CAD model, you’re mainly interested in how your model will react to change. All history-based CAD users should agree that your modeling practice will have a big effect on how that model reacts when you change something about it.
Wikipedia talks about the topic like this, in a page on Computer-Aided Design:
3D parametric solid modeling requires the operator to use what is referred to as “design intent“. The objects and features created are adjustable. Any future modifications will be simple, difficult, or nearly impossible, depending on how the original part was created. One must think of this as being a “perfect world” representation of the component. If a feature was intended to be located from the center of the part, the operator needs to locate it from the center of the model, not, perhaps, from a more convenient edge or an arbitrary point, as he could when using “dumb” solids. Parametric solids require the operator to consider the consequences of his actions carefully.
For my purposes in this article, I’m going to use “modeling for change” in place of “design intent”.
It is possible to have design intent with dumb geometry. Here is an article written on extracting design intent from laser scanned objects. That discussion might be hard to follow, but you can definitely see that just from looking at a CAD model with no feature list, you can still discover elements that drive the overall design. Symmetry, patterns, repeated basic shapes.
Since you can do this by just staring at a part for a long time and recognizing patterns and symmetry, it stands to reason that a computer could be taught (programmed) to do the same sort of thing. In fact, “feature recognition” is something that has been around for a while, and as computers get faster, doing live recognition is easier. Building a feature list is a great way to establish intent, but it’s very rigid. What happens when your design intent, or how you want the model to react to change, itself actually changes?
Running along the right side of this blog post is a feature tree of a part with 341 features. I’ve put it here just as a graphic reminder of how much work goes into complex parts. This is a big machine casting, and used a wide range of features. A customer paid me a fair amount of money to recreate this from a STEP file and a couple of PDF drawings into this feature tree in SolidWorks. He just wanted to have features he could change in SolidWorks. While I was glad to do this and to take the money, I realized that it wasn’t really necessary. SolidWorks could not manipulate the imported STEP file efficiently. Sure it has “Move Face”. But “Move Face” is like trying to write a sentence if the only key on your keyboard is a period.
I’m not saying that history modeling is a bad thing. In fact, I think it’s necessary. But it’s not the only necessary thing. I don’t believe throwing away history-based concepts is a good idea at all. We have to keep history-based modeling as a tool in our toolboxes as people who model a wide range of mechanical components. History modeling is great for creating special kinds of features where the topology varies – the count of edges and faces.
Direct Edit applications could manipulate some of this part, but they can’t do all of it. It wouldn’t matter to Solid Edge ST4 where this model came from. It wouldn’t matter if it were from STEP or even native, if done strictly with direct edit tools. We’ve even seen this on things Dan Staples has done, where direct edit is simply not powerful enough to deal with the complex collision of fillets and other features.
Here I’d also like to address a misconception that I’ve found some people have. Some people think that direct edit software is not parametric. I haven’t done a survey of all the direct edit tools out there, but some do have parametric capabilities. You can still apply dimensions directly to model faces, and even apply relations such as parallel, symmetric, equal. This is still parametric modeling, just applied directly to the finished 3D part rather than to sketches. This is modeling for change that can be changed. You don’t have this indirect feature layer to work through. An extrude feature is meant to work a certain way, but if your intent changes in such a way that the extrude scenario doesn’t work any more, you’ve got a problem. If all you have are the faces
So if history can’t deal with all cases, and direct edit can’t deal with all cases, what are we left with? To me, the only thing that can conquer all cases is a combination of history and direct. This is what Synchronous Technology is all about (starting with ST3). Here’s a little movie that shows some simple design intent change using symmetry settings in Live Rules and dimensions. Live Rules is a blog post all on its own. I won’t go into a lot of detail here, just to show it working in this case. You might want to maximize the window for the movie so you can see the detail pics and the other small things I talk about. When I’m mentioning that you have to use some “shenanigans”, I’m talking about what you’d have to do in SolidWorks to make this kind of design intent change.