Monday, August 17, 2009

Editing 3D Geometry – Indirect Editing

Indirect editing is typically used in parametric modeling, or history-based systems. With indirect editing, parameters, dimensions and other intelligence is associated to the 3D model and can be used to define possible transformations and relationships. In a history-based system this intelligence is captured in the history-tree at the time the model is being created. In contrast, with a history-free system the intelligence is captured in the B-Rep model, during or after model creation. In either case (history-based or history-free) this intelligence can be used to specify geometry transformations. The added intelligence describes “what” will change, i.e. the geometry, and “how” it will change, i.e. the transformation.

By modifying and processing this intelligence, the resulting 3D geometry will be different. What geometry is actually changed is completely dependent on how the intelligence is setup and structured. It is “indirect transformation” of 3D geometry.

The benefit of this technology (indirect editing) is that you can capture and/or assign a specific behavior to the model. In a situation where you can predict or anticipate future changes this technology can be very useful. It is also useful if it is important to tightly control relationships between faces, features and parts during edits.

Indirect Editing; History-Based

This is the environment that most 3D CAD users are familiar with. It is the standard method of changing 3D geometry in a history-based CAD system. Parameters at the 3D level are managed within the history tree and are structured in a parent/child relationship. Structure, relationships and parameters are always being created and ordered in the tree as the model is being developed. The process of properly organizing and managing this structure is not optional. It is something that every history-based CAD user must learn to be profecient with the tool . With history-based modeling you are either adding structure or modifying structure (indirect editing). When changes are made to the history (sketches, parameters, features, order) the tree/model is regenerated and is solved linearly based on the structure of the tree.

In this case it is important to know what the structure is and how a change will impact any child features. As it is linear there will be a “ripple” effect with this technology and as such it is important to know the structure before getting too aggressive with changes. In many cases the ripple effect is desired and equally in many cases it is not.

History tree in Pro/ENGINEER – ordered and structured

With history-based modeling users are actually editing the process and structure, or “recipe” that was defined at the time the model was created. You do not actually modify 3D geometry, but rather modify the recipe and then let the system rebuild the 3D geometry based on the modified recipe. In this context 3D geometry is always being recreated from the recipe rather than being modified.

As with any indirect editing capabilities, it is certainly possible to drive a change that can invalidate the model. Knowing how to work through these issues is critical to good history-based modeling.

This technology has recently been getting a bit of a facelift with what is called “dynamic” or “Instant” modification. With this capability a user can directly select a face or feature of a history-based model and dynamically modify the intelligence (parameters, dimensions) associated with the selected geometry. The intelligence is still solved linearly, but processing is more real time, or “instant”. It looks something like direct editing, but it is still indirect and as with any indirect edit, the results are completely dependant on the structure of the intelligence.

Indirect Editing; History-Free

This technology is not new but it is foreign to most CAD users. It provides the ability to indirectly manipulate 3D B-Rep geometry through added intelligence (parameters, dimensions) similar to indirect history-based modeling. However in this case parameters are not captured in a tree structure, but are rather captured, or “tagged” directly to the elements of the B-Rep model, i.e. points, edges or faces. Rather than being solved linearly these relationships are solved synchronously, or “nonlinear”. The order in which the parameters are assigned has no influence. With this technology there is no ripple effect based on a parent/child relationship, however one relationship can certainly drive another if desired.

Relations Browser in CoCreate Modeling – no order

With history-free indirect editing 3D geometry is actually being modified rather than being recreated as is the case in history-based modeling. There are several different technologies that can be used to modify B-Rep solid models. When modifications of a B-Rep are driven indirectly, the resulting transformation must not invalidate the B-Rep solid model. As we attempt to drive a particular geometry change through an indirect edit the system needs to be intelligent enough to provide the “expected” result, reliably.

As is the case with indirect history-based editing, changing a parameter will result in some change to the geometry. Knowing how the parameters are structured is important in order to make good use of the intelligence and achieve the desired results. As it is not order dependant (linear) it is relatively easy to manipulate this intelligence.

Today there are not many history-free CAD systems that provide this capability. PTC CoCreate Modeling is one of the few that does provide it. Here is an example of history-free indirect editing in CoCreate Modeling that I posted in a previous article:"Design Intent with History Free Modeling"

There are pros and cons to each; history-free indirect editing and history-based indirect editing. Understanding which one can best support your requirements can be a challenge, but will be worth the analysis.

In the next post we will review Direct Editing.



stella said...

You may find what we do with Editing 3D and 3D collaboration (inside MS Office also).
We are new and curious about your feedback as it relates to CAD PLM.

Paul Hamilton said...

Stella, thanks for the comment. I will take a look at it.