I added the following comments in a previous blog, but I want to restate them for the purpose of this discussion. There are a few absolutes regarding CAD technology.
- A CAD system is either history-based, i.e. tracks the modeling history (features are ordered with a parent/child relationship) OR it is history-free, i.e. does not track history (explicit or direct with no parent child relationship). If it has history, it is not history-free. Features are either ordered or they are not. Once history is gone, it is permanently gone – there is no getting it back without starting over.
- A CAD system either has parametric capabilities (constraints) or it does not. It doesn't matter if it is history-based or history-free. Parametric capabilities can exist in both history-based and history-free modeling. The capability either exists or it doesn't.
- A CAD system either has direct geometry editing capabilities, or it doesn't. A history-free CAD system depends on direct editing, (it can’t exist without it). For a history-based system, direct editing is a nice to have feature. In both cases, history-based or history-free, the direct editing capabilities will apply to both native and imported data.
So what benefits can be realized from "ordered" modeling features that are not available in the history-free environment (no order)? That’s the question. Here are the ones I’ve considered.
- The “Shell” is an obvious modeling feature that benefits from a parent/child relationship. When a change is made to the parent, the child feature (shell) will conform to the modified parent during the model regeneration. So far there is not a common method in history-free modeling for managing a consistent wall thickness on a part. At this time the current history-free modeling systems each handle this problem a little differently. While you get much more flexibility in your shell with history-free modeling you don’t get the natural consistency that comes with the shell feature when properly structured in a history tree.
- Support for multiple states, i.e. secondary operations (stock-finish). There could be two different states such as a cast part that is machined. Or perhaps even three states such as individual parts that are welded into one and then machined. In these situations a part exists in more than one state, but from a design intent point-of-view you want to utilize the same geometry wherever possible such that a change to geometry in the first state is realized in the second state, and so on, i.e. associativity from one state to the next. By properly structuring the history tree and the related parent/child relationships, you can support this requirement fairly well with a history-based system. Features can be added/suppressed allowing the representation of a part in different states. There are ways to solve this in a history-free environment but to date I have not seen a good solution for it, although I don’t think it is too far away.
- Ease of controlling a model/assembly parametrically. Parametric modeling is completely possible in a history-free model or assembly. It is nothing new. The reason I keep this benefit on the list is not that it can’t be done in a history-free environment, but rather that it is still somewhat easier to capture this information by properly utilizing the parent/child relationship. The parent/child relationship seems to make it a bit more intuitive when we want to drive the effects of one parameter into different areas of the part or assembly. This translates into the ability to more intuitively support requirements for family-of-parts, configure-to-order or perhaps design optimization. This benefit may have more to do with "familiarity" than being "intuitive".
- Ease of controlling freeform shapes and surfaces in a solid model. There is very mature technology out there for defining and controlling freeform surfaces without the need for history. Surface modeling systems have been doing it for years. Controlling freeform surfaces on a solid model is a bit more complex, however. A solid model that includes freeform surfaces can be very difficult to accurately edit in a history-free environment. Add complex blends to the model and it gets even more difficult. There are many ways to control and edit surfaces in a history-free environment, but one of the things you can’t do is to go back to the original sketches and/or curves (parent) that were used to generate the complex surfaces (child) originally, make the modifications to the curves and regenerate the surface geometry. If the tree is structured appropriately for this type of edit, the change will work well. Today it is hard to beat the benefit that a well structured parent/child relationship brings to accurate surface editing in a solid model.
So. what did I miss with regards to the benefits that come from ordered modeling features, i.e. history?
Some may want to add control for blend/round features to this list of benefits since these features are typically order dependent. In other words, depending on what order you add a blend/round, the vertex region can be different. This is true of history-based and history-free systems. In history-free the order is not available to the user to manipulate and as such getting a different vertex region may be difficult. But it can be equally difficult to reorder the features in a history-based environment, especially if you also need to add or remove edges within the feature. I am not convinced that either technology makes this very easy.
Some may want to add capturing “design intent” to this list. All four of the benefits I mention above fit into the category of “design intent”. Don’t just list design intent. Be more specific.
Some may want to add "knowing how someone created the model". But you need to be more specific than that. What benefit do you get from having this knowledge?
There is one benefit of history-based modeling that most will miss when moving to a history-free environment and that is “familiarity”. You will need to move past this one while considering this topic.
With an understanding of the unique benefits of history-based and history-free technologies, perhaps we can have a more uesful discussion on what the term “best of both” refers to in this context. When a CAD vender claims to be deliverying the best-of-both, what are they talking about?