Friday, July 13, 2012

History-Based Modeling and Direct Editing

Most all parametric history-based CAD tools on the market now have some level of direct geometry editing capabilities. Without direct editing, users of history-based CAD tools can only edit preexisting information captured in the structure tree during model creation. Information like sketches, 2D constraints on the sketch, 3D feature parameters and feature order. To make these edits, it is important for users to have some level of knowledge about the structure tree and the process and methods used in the creation of the structure and resulting model. In the case of imported models, this information is typically not available and as such the imported model may not be editable, with the exception of adding new features to it. In the earlier days we tried to recognize features in imported models to develop an editable feature tree, but that typically only worked on relatively simple models. In other cases we tried feature tree translators. There are several companies that provide these types of translators, but a feature tree translation can be problematic depending on geometry characteristics, it will be version specific, and can be somewhat expensive.

Direct editing is being introduced into history-based CAD systems now to simply provide another option in history-based modeling for the editing of 3D models. With good direct editing we can be somewhat less dependent on a well-structured feature tree. However it does seem that some parametric history-based purists consider direct editing within a history-based CAD tool as somewhat of a risk. Perhaps they are concerned that it provides a way to “corrupt” the design intent. I find this a little strange in that if in fact the design intent (feature structure and definition) is already pure and perfect, there would certainly be no need for direct editing. Unfortunately this is rarely the case.

In reality direct editing in a history-based tool is just another parametric modeling feature. And like any parametric modeling feature, there needs to be clear best-practices and modeling standards associated with it. If used correctly, direct editing can be one of the most powerful parametric modeling features you may have in your CAD toolbox.

I want to try to highlight some of the potential power of direct editing within a history-based model in the video below. In this case I will be using Creo Parametric. PTC added direct editing to Creo Parametric with what they call “Flex Modeling”. Mature direct editing requires tools for geometry selection, methods to define the transformation (edit), and robust predictable results.

So having another method; direct editing, for creating an intelligent and ordered parametric feature can be very powerful when used correctly. It should be nothing to fear, but rather leverage when and where it makes sense – as with any parametric modeling feature.

PTC has done a nice job integrating the necessary functionality with a robust kernel to make their direct editing (Flex Modeling) very capable, predictable and robust. The same can be said of Siemens and their direct editing (Synchronous Technology) in both NX and Solid Edge. But as you consider direct editing, pay close attention to these three things:
  1. There must be good geometry selection methods including feature recognition, geometry rules and the ability to add and remove from the selection
  2. There must be intuitive methods for defining the transformation including dynamic handles and dimensions. AND, you should be able to make multiple transformations in one edit.
  3. You must get stable, predictable and robust results. In some cases there may be multiple results to a given transformation. The system should provide the possibilities and allow the user to select the appropriate one.
Not all history-based CAD tools do direct editing very well. Direct geometry editing requires functionality from the geometry kernel that typical history-based modeling systems have not had to do. History-based CAD systems are basically Boolean engines that are programmed through the history/feature tree, with the parametric feature being one of the primitives in the Boolean. With direct editing, besides Booleans, the system needs to know how to do local operations, how and when to close gaps, add and remove faces, and extend and trim geometry - all based on actual geometry manipulation. If it doesn't do these things well it will certainly show.


Monday, July 9, 2012

Parametric Direct Modeling

I continue to enjoy seeing what is possible with history-free direct modeling when coupled with a synchronous parametric solver; i.e. Parametric Direct Modeling – or whatever you want to call it. This is the truest form of uniting the control of parametric modeling with the flexibility of direct, or explicit, modeling. If, on the other hand, the modeling process is the basis of your design intent, as is the case with history-based modeling, then you are forced to plan ahead before modeling. This firm coupling of the modeling process with the definition of design intent can greatly inhibit flexibility.

When adding direct editing technology to a traditional history-based parametric modeling tool, you still end up with a structured and ordered model. The direct edits are just another form of a “parametric modeling feature”. They, of course can be very powerful and useful in the right context and I'll discuss this in a future post.

By combining parametric control with direct modeling it is possible to have history-free geometry and assemblies that behave according to the designer’s intent. You can develop relationships and intent independent from the modeling process. There is no need to plan ahead before you start modeling, and certainly no need to ever recreate a model just because the model construction process and methods no longer support the designer’s intent. Parameters can be added to any geometry at any time. There is no dependence on where, how or in what order the geometry features were created, or how they were orginally constrained.

Here are several examples. Some you have seen before on this blog and some you have not. The video is organized into these three groups.

Geometry level design intent:
In these two examples we are simply controlling geometry with a few parameters. As this is direct modeling, it makes no difference where or how the geometry was created, or in what order the constraints were applied. The parameters are solved synchronously, not linearly.
  • Variable flange with pattern
  • Automotive wheel supporting a family of wheels
Assembly level design intent:
With these examples we are controlling assemblies. In some cases we’re using permanent constraints and in other cases the system is doing real-time solving based on the physical properties of the 3D models.
  • Iris Simulation
  • Complex gear simulation
Combined assembly and geometry design intent:
With these last two examples we are controlling both assembly and part relationships as well as geometry. In the case of the drill press we are using NO permanent constraints or relationships. The constraints and relationships are managed real-time based on part and geometry selection. In the V8 engine example we are using a large number of geometry and assembly constraints.
  • Drill press design change
  • V8 engine stroke change

I hope those examples make sense. There is still much room for improvement in the area of parametric control in direct modeling, but progress is happening. Some of the solving you saw happen in the embedded video was done using the DCM Solver technology from Siemens, and some was done with solver technology developed at PTC/CoCreate. I'm also excited to watch what the people over at LEDAS are doing with this technology. With the emergence of this type of technology CAD is certain to look different in the not too distant future.

Next up I want to show you some of the powerful things you can do by utilizing direct editing within a history-based tool - its not only about editing geometry.