Thursday, May 28, 2009

Direct Editing in History-Based CAD

In a recent post by Deelip Menezes titled “Direct Editing and Direct Modeling” Deelip brings up the fact that within the context of history-based modeling, this term can refer to two different things. He notes that in a typical history-based system like Alibre, a direct edit to geometry will result in a new “Move Face” feature that will be added and ordered into the tree. He then notes that in SolidWorks using the Instant3D functionality, the edit is not recorded into the tree. The two technologies referred to here are very different as I will explain below. Unfortunately they are both often referred to as “Direct Editing”. You can access his article by clicking on the link to his blog under “My Blog List”.

As I mentioned above, in the context of history-based modeling, the term “direct editing” is used to describe two completely different things:

1) Some history-based CAD systems (almost all of them now) have at least one or two functions that will allow a user to directly manipulate geometry – at the geometry level. When this manipulation is done within a history-based model the system must track the edit in the tree otherwise the next time the model is regenerated, the edit will be lost. This type of editing is great for parts in which the history tree has become unmanageable or overly complex and you just need to make a quick change, or when you are working with imported geometry. Direct manipulation of a B-Rep solid is not a trivial thing and many of these history-based systems don’t have the capabilities to solve complex topology problems. As such much of this capability can be very limited. This technology is the heart and soul of history-free direct-modeling CAD. A history-free CAD tool must be very good at solving topology problems, whereas a history-based system relies more on the tree.

2) Some history-based CAD systems provide the capability of dynamically manipulating parameters. Such is the case with SolidWorks and their Instant3D capability. This edit graphically appears to be a direct edit as defined in #1 above. In reality it is very different. There is no new “move” feature added to the tree, only existing parameters that are being dynamically edited. This method simply provides instant feedback of the parameter edit rather than waiting for a model regeneration. It requires that a parameter exist in the model. As such it may not always work, based on how the model was created in the first place, and as with any history-based edit it can impact child features. It also may not work for imported data. This is not new technology. IronCAD has been using it ever since it came into existence many years ago. We will certainly see much more of this technology in history-based CAD. Just to be clear, in history-free direct-modeling, you can also dynamically manipulate parameters, it’s just that the parameters are not history-based.

As I have mentioned before, there are really only two fundamental technologies used in mechanical “solid modeling” CAD today; 1=history-based (CSG+B-Rep hybrid) or 2=history-free (B-Rep). Direct geometry editing and dynamic parameter editing (or whatever we want to call it) can be available in both. It’s just a matter of how the geometry is managed; with history or without. They both have their pros and cons and each can greatly impact the design process.



Kevin said...

And IronCAD happily has married both methods 1 and 2.

For example, my part starts with features A, B, C, D, E and F, nice history.

With a "direct move face" option that combines features C and D into a BREP shape "C1" so I now have:
Features A, B, C1, E and F

C1 is a "history free BREP shape" inside a history-based part.

Further, I can combine all features into a "single BREP shape" and continue making direct face moves and moves and moves and still only have 1 shape, "truly-history-free".

Later I can start adding history-based features back into the part:
Features: "BREP Lump", A, B, C, etc.

Total Modeling Freedom!

John Wright McCullough said...

I’ve heard a few different CAD companies using the term “direct” with different meanings. The common denominator I’ve observed regarding the term "direct" is that it describes a modeling operation which was done by selecting the faces of the model "directly" in the 3D graphics window instead of through a feature tree. As you point out, the technology behind that edit can be very different.