In the previous post, I wrote about the failed promise of parametric CAD: problems such as parent-child dependencies and unwanted feature interactions, coupled with no easy way to either prevent, or check for them.
The difference between modeling and editing in a parametric CAD system is simply the difference between creating things from scratch, and modifying things you’ve already created. The distinction may seem academic, but it is only when editing that parent-child dependencies are a potential problem.
Consider a scenario, of creating a parametric part—one that you’ve worked out in your head pretty well ahead of time—where you start from scratch, modeling sequentially, and spending all your time working on the most recent feature without needing to go back to edit upstream features.
In that context, the model’s parent-child dependencies would exist, but would be benign. They’d never get in your way. That is, until you went back to edit the part.
In most cases, people don’t build models from scratch without periodically going back to adjust earlier features from time to time. In that process, they’ll catch, and be able to deal with, some of the dependencies. But not likely all, or even most, of them.
I’ve heard experienced CAD people use an interesting term for models with hidden and untested parent-child dependencies: Parts from hell. When you’re trying to modify them, you never know when a small change might cause them to completely fall apart. I think a better, more descriptive, term is brittle: Hard, but liable to break or shatter easily.
This also suggests a descriptive term for CAD models which are not liable to break or shatter easily: resilient.
I’ve only ever seen one group of users who could consistently create complex yet resilient parametric parts models from scratch: PTC application engineers from the early to mid-1990s. Of course, they could only do it during customer benchmarks, with parts they’d practiced ahead of time, where they had worked-out and memorized all the steps, and where they had a good idea of the parameter ranges. Even then, if you were to ask them to change a dimension that would cause a topological change, the models might unceremoniously blow up.
Not to paint too bleak a picture, there are certainly CAD power users who have the skills to create resilient CAD models. I’ve met more than a few of them: true professionals, who by combining experience, insight, and education, have earned the respect of their peers. They understand how to structure CAD models to avoid any problems with brittleness.
Nah. I’m just messing with you. Power users struggle with this just like us mere mortals. It’s just that their models don’t usually fall apart until you go outside the scope of parametric changes they had anticipated. Give power user’s carefully crafted CAD model to a user who has a black thumb (I’m sure someone comes to mind), and they’ll find ways to blow it up that the power user never imagined.
Next: The direct solution
Evan Yares says
Did I do that?
While this is a problem, I will accept the issue readily VS Starting over in my Modeling library. Solidworks does have Parent-Child dependencies, but thoughtful creation of the part minimizes the effect.
Thank you for taking the time to write this series of articles. As I read through, I noticed that the articles usually talk about the designer/or engineer making a change to the model. It has been my experience that the crucial and time sensitive changes are not happening in the initial design phase but in the Change Process. In these cases, it is not the same designer/engineer doing the changes but another group of designers/engineers- your “Current Products” group.
We run into the problem here that the new person working on the part has no clue about the “design intent” that may or may not be baked into the parametrics or formulas used to build the part- let alone the parent-child relationships. Sure, the new person making the change can look and take time to investigate the model history and formulas but they are in the crunch time. Change it an run as fast as you can- “The mfg line is on hold until that change is complete!”
Brittle is brittle. Resilient is brilliant.