The Connection Between Design Intent and Purpose of CAD Models
3D CAD models can have several purposes, and each purpose requires a different approach to how you create the model. “Design Intent” is a concept that I believe is largely misunderstood, and mostly applied toward incorrect goals. The main use of the term has been as a sales tool to cudgel 2D users into getting more sophisticated. It’s continued use I believe is to try to assign some sort of meaning to history-based modeling. Both usages have some element of truth, but what most people think of as design intent is just something they’ve been fed over a period of time, and have come to believe when they don’t really practice it.
In order for the concept of design intent to apply at all, you have to have one of a couple of situations:
- You know how your models will change. In most cases, after the changes have been made, the idea that you started out with is not the idea that you wind up with. So In most or many cases, you can’t establish real design intent. If you knew what the change was going to be, you’d make it.
- You have a system that allows you to change your design intent as you go. As most of you know, I believe Synchronous or direct edit techniques are the only way you can fulfill this requirement. History requires you to pre-program a change regime, which in my experience is unlikely to actually survive the real changes that you end up making.
Your model may also serve one of several purposes, and the changes required for them will all be different:
- Concept
- Concept adjustment/detailing for prototype
- Approvals
- 3D print – prototyping
- production model used for CNC
- mold modeling, drawings…
- Drawings – general assembly drawings, inspection drawings, manufacturing drawings, BOM, exploded view etc…
- Analysis – optimization,
- Rendering
- Archived version
Some of these steps might have no requirement of the model at all except that it be correct. Some will require plastic mold shrink added to the part (for creating mold). Some you will want to be able to change, such as the concept stages and an optimization model. Some of these your process may require that they don’t change, such as the archive.
For all of this, you either need a very flexible design intent system or something that can make up it’s own intent as it goes. Face it, rebuilding the design intent when the purpose of the model changes completely undoes the proclaimed advantages of history-based methods.
This is why I advocate for history-free methods so strongly. You can create your own intent for each change, and you don’t have to worry about rebuild time, cascading rebuild errors or feature order.
Plus, tools like Solid Edge allow you to mix methods. You can build a synchronous model, and then apply some history-based features on top of it. Certain features really work better as history features. Things like extruded text. Imagine doing that with direct modeling… Draft can be useful as a history feature… But the point is that the majority of your model will benefit from being history-free.
The design intent argument has long been controversial. Most of the time, it just doesn’t work the way we expect it to, mainly because our product design process changes in ways we don’t expect it to. If you could predict how things would change, you’d do it that way to begin with, right?
Plus, there are always people who claim “you’re not doing it right” no matter how you do it. The fact is that the design intent itself is the thing that has to change, and history-based modeling doesn’t have a nice process for that. Sometimes you can make the changes work, but there’s a lot of re-jiggering – it’s not a basic skill, and they don’t have training classes on fixing design intent. Blow up the feature tree then repair all the relationships, reorder some features, and reconnect relationships without deleting any geometry.
I just encourage you to look at systems that are more flexible, and can combine the strengths of history and direct/synchronous. There’s a time for OCD modeling, but it’s not while you’re on the clock and somebody is paying for it.
I work with Solid Edge synchronous and ordered every day. And I’ve generated variable driven parts and assemblies as templates for components that are standard items for us but can be differently sized in the X, Y and Z linear axes.
And I concluded a while ago that sync is not practical, yet anyway, for use in the variable driven scenarios we require.
These are large assemblies which can potentially be 6 feet wide, 10 feet tall, 8 inches deep, consisting of long, thin (0.04″, 0.064″) sheet metal parts. The ratio of thinness and overall size compounds the problem with sync because changing a part with sync often requires a visual verification to see if the change is what you expect. It’s almost impossible to detect errors or distortions of less than 0.1″ in a part that is 120″ overall. Impossible until you generate orthogonal views in a draft and if you’re lucky you detect jagged lines on what are supposed to be horizontal or vertical lines without any jaggies. After which you go “oh, sh…” because the part is very likely ruined, there’s no prior version to fall back to and the fix is a bigger chore than just a redo of the part.
The reasons vary but it’s largely because design intent settings are global and start with the last settings used in the current Solid Edge session. They are not saved with components (I think they need to be). Because each component in the assembly may require different intent settings. That’s not possible now for parts in an assembly so you’re screwed there. It can also be very difficult to determine what persistent relations are needed or even possible to control the many faces in sheet metal parts.
But with ordered it’s pretty easy to completely control the 2D sketches behind every feature and assign variables for the X, Y and variances within, and to protrusion distances for the Z.
Bottom line: Variable driven assemblies containing parts that need to change are much more practical and reliable if the parts are good old fashioned ordered parts. At least as far as our needs go.
Your process works with ordered because it was designed to. If you had someone who wasn’t afraid of sync, I’d bet it could be done there as well, and more reliably.
The main criteria would be “is it prismatic”.
I witnessed the origin of the term “Design Intent” in 1992. Before feature-based parametric solids modeling, the drawings were the “king,” and the phrase “Design Intent” didn’t exist.
Pro Engineer’s parametric 2D profile was a fantastic new concept, but the profile always had to be “fully constrained” before exiting the sketch. Competition such as Unigraphics, SDRC, and Intergraph used the “fully Constrained” requirement to discredit Pro Engineer’s feature-based parametric modeling techniques.
Parametric Technology’s sales team successfully responded by creating the term “Capturing Design Intent” to justify their fully constraining profiles. ProE won that battle even though the opposition was right, and “fully constrained” eventually became an option.
Over the last 30 years, solids modeling terminology has been determined by each software platform’s marketing and training departments. As a result, there isn’t any consistency in describing even the most common operations. “Design Intent” is another term like “Master Models” that must be interpreted in the context of the source.
Like everyone else, Resilient Modeling Strategy has its interpretation of “Design Intent.” In RMS, its purpose is to control how your model responds to edits during the design phase. “Design Intent” is captured within a feature by constraints and dimensions and within a model by the parent-child relationships. Interestingly, it is usually characterized by the consequences of its misuse, “Domino Errors.” The most expensive consequence of poor “Design Intent” is when there isn’t an error. An objective “sanity check” or validation before release lessens this problem.
Hmmm… “design intent”. That term, as you mentioned, in my opinion is a “legacy” term. Maybe even a legacy term. If you are still working in 2D, for mechanical design, then obviously, that process is beneficial to you/your organization. I would have to look at current sales collateral to see if this is still being used.
Design intent was the idea that you could program your part to change as you mentioned. But it was also used to help someone understand how to make changes to your 3D model. The software companies have built in tools to help interrogate the actual build sequence. The ability to copy and paste features from model to model also reduces the need to “pre-program” your 3D model.
Add the ability to add spreadsheet driven parameters and more of the design intent falls by the wayside.
With all of that..I feel design intent is less effective as sales tool and a need for “strategic” design best practices.
Glenn, yeah, I get that, but the change comes through, and the hole moves to another part, or now there’s a bracket involved and the hole moves to another face. Or it becomes a broached hole. There are more potential scenarios where the design intent has to change than scenarios where the design intent applies as originally imagined.
In my world of fewer complex parts, even when you set up the design intent, the software changes reference names of entities and the references blow up. This is just the part level. Then you have to worry about the assembly and drawing levels as well. You wind up fixing a lot of errors, or deleting and recreating stuff.
I guess to me “Design Intent” means to set up models, especially sketches, to minimize time spent editing when the inevitable changes happen. For one simple example, if you know a hole will always be in the middle of a plate that’s 4″ wide, then use relations to put it there instead of dimensioning it at 2″ off one edge. That way if the width changes you won’t need to edit the sketch used to create the hole.
Glenn, maybe the true design intent is that you need a hole and then need material to extend 2″ in both directions of the X and Y axis’ from the edge of the hole 🙂
Then I guess you’d set it up so that the hole diameter drove the plate dimensions.
Glenn,
Why not have it so you can change how it’s driven on the fly? In the end, that’s the most reasonable way to do it. Determine the design intent at the time of the change, not before, because you really don’t know what changes you’re going to have to cope with. We’ve been conditioned to accept the limitations of the history based system because it was all we had.
That makes sense. I will admit it’s difficult for me to envision that since history based is all I’ve ever worked with.
Glenn,
Just so you know you can actually do that with Synchronous Technology!
You are almost there. In the majority of cases, you are putting a hole into a plate for what? It would be for a fastener of some sort. So why not go one step further and have the fastener drive the hole size and location. This becomes a “feature” of the fastener. Or even further and bring back the “computer-aided” with AI and tell the system I have bearing block A and it needs to go here. It sits on this plate and goes through to this plate. Then let the AI read the holes or slots in the mounting face, determine bolt/screw size and then length. Finally make the clearance holes in the plates. If the bearing block moves so, do the holes.
Forgot to mention that AI also places the needed attaching hardware configuration! Either you define a stack (bolt, washer, washer, nut or bolt and nut, etc.) or based on loads and other physical properties and analysis determine what it needs.