Monday, October 27, 2008

Key Capabilities of History-Free Modeling

Whether it is Dynamic Modeling, Explicit Modeling, Direct Modeling, Synchronous Technology, Natural Modeling, it all refers to history-free modeling. There are only a handful of companies that have developed usable history-free modeling and all of them have claimed to be the first to do it. They're all wrong. History-free modeling actually existed in the very early days of CAD in products like Anvil, Graphtec, ME30 and Unigraphics to name a few. Back then it was called Explicit, or Boolean based or B-rep modeling. The systems were robust but also slow and inflexible. When history-based modeling hit the market with Pro/E, we were all amazed and most never looked back - until now.

I started out thinking I was going to write up a comparison document between some of the history-free modeling technology out there. But maybe it would be better just to review what some of the key capabilities are of history-free modeling so that you can do your own evaluation.

Actually some of you may be asking questions like: Why should we even care about history-free modeling? What’s wrong with history-based modeling? We’ve been using it for about two decades now. Here are a few reasons why history-free modeling is gaining popularity:


  • Team members do not need to understand the modeling history
  • Imported data does not include modeling history


  • No need to be concerned about how you model a part – focus on design, not modeling
  • No need to understand how a part was modeled.
  • Much easier to learn and use.
  • Some are starting to realize that the extra effort involved with history-based modeling does not justify the value, (very process and product dependant) and are looking for an alternative.


  • Computer power and technology has now evolved to make history-free modeling a viable alternative to history-based modeling.
  • Robust and mature technology exists that allows for the capture of design intent directly in geometry rather than through the modeling history.

There is certainly a lot more to a good CAD system than creating and editing geometry, but this is a good place to start with an evaluation.

With history-based modeling, the methods for geometry creation are fairly well defined. Typically geometry is created with sketches and 3D operations and by adding features such as holes, cuts and filets. CAD companies continue to make this process more intuitive and capable, but in general there are limitations based on the fact that each modeling operation must be maintained and ordered in the tree. With history-based modeling you are either creating features or modifying features. With history-free modeling, the line between creation and modification becomes very blurry.

With history-free modeling, developers have a much more flexible environment to work with. There are really no limits to geometry creation methods and processes. In modern history-free systems a sketcher may be used very rarely. You may start with a sketch to get some quick geometry in place. But from that point on the modeling process will be made up of a mix of feature creation and direct geometry manipulation.

As you look at the capabilities of history-free modeling, you certainly need to look at the capabilities of the sketcher and the other methods for creating different types of geometrical features. However, direct geometry manipulation is the key to history-free modeling. When looking at direct geometry manipulation, there are three primary areas that must be considered:

  1. Geometry Selection
  2. Transformation Definition
  3. Predictable Results
    - Adjacent faces
    - Topology changes
    - Design intent

With history-based modeling, the first two are determined by the process that was used to create the model in the first place. The last one is only possible, if you thoroughly understand the model creation history, AND, if the model was created in such a way to support the needed edit.

With history-free modeling the system needs to provide intuitive methods for:

  • Selection of geometry and perhaps automatic selection of geometry depending on geometrical characteristics, such as pockets and bosses.
  • Intuitive methods for defining transformations in 3D space. This can be done with parameters and dimensions, it can also be accomplished with some useful tools for defining 3D directions and axis.
  • Once the geometry is selected and the transformation is defined, the system then needs to intelligently make the change. There are usually multiple solutions from a geometric point of view, but getting the expected and most logical result is what's important.

Pay close attention to these 3 things when looking at history-free technology. Here is a look at the three in more detail.

Geometry Selection
Most geometry edits involve a face or a group of faces depending on what you are trying to do. Here are some possible face selection methods.

  • Single
  • Multi-select
  • All
  • Pocket
  • Boss
  • Rib
  • Slot
  • Adjacent
  • Tangent
  • Chain
  • Viewport box
  • 3D box
  • By color

Some of the above methods require much intelligence in the system to interrogate geometry to determine resulting selections. Pay close attention to the results. These selection methods should work on imported geometry as well as native geometry.

Transformation Definition
Once you have selected the geometry that you want to edit, you will need to specify how the geometry will change. Positioning geometry in 3D space is nothing new, but in this case we are positioning a face or collection of faces in 3D space. Again with history-based modeling the possible transformation is determined at the time the model is created. History-free modeling has to provide much more capability in its methods of defining 3D transformations. Here are a few of the common methods.

  • 3D direction and distance
  • 3D axis and angle
  • Point to point
  • Radial
  • Mate
  • Align
  • Match points (3 points to 3 points)
  • Dimension (linear or angle)

There are a variety of ways that CAD companies have come up with to help with the process of defining 3D transformations. Some of the methods include 3D icons that represent 3D direction vectors and 3D axis. Others allow the use of existing 3D geometry to specify points, vectors and axis. Other coordinate systems can be used as well.

Also some systems allow the combination of the methods listed above into one command to make the transformation quicker and more intuitive.

Look closely at the tools and methods provided to define 3D transformations on a face level.

Predictable Results:

> Adjacent Faces
One critical aspect of a predictable change is in what happens to the adjacent faces when a face, or collection of faces, is moved. Edits usually require adjacent faces to be stretched, shrunk or adjusted in some way, and it should be fairly intuitive. In the images below we see a simple diameter change of a hole. The next change involved two faces moved, and in the last example a collection of faces are selected and moved. In all 3 cases, the changes are very simple in that there was no change to the structure, or “topology” of the model. The edits only required that adjacent faces adjust.

Where it gets challenging is when the adjacent faces are blends (filets or rounds). Some systems can recognize faces as blends, while others can’t. In history-free modeling it is common for the system to attach an attribute to a blend face so that the system knows it is a blend. If so, the result should be that of the second image below. If not, the result could be that of the third image or perhaps failure. The real test is to try this on an imported STEP model to see if the system can still recognize the blends.

This is a very simple example. You really need to look at more typical situations you may find in your own parts.

> Topology Changes
When you start tugging and pulling on the faces of a history-free model there is a high likelihood that you will force a change in topology. “Topology” describes how a b-rep solid model is connected. Points are connected with edges. Edges connect to form faces, and faces connect to form a solid. A b-rep solid is all about connectivity. The big question is; how is the system going to handle topology changes? Of course the best way to find out is to try it. Select a face or two, specify a logical transformation forcing faces to run into other faces, and see what happens. Maybe an easy test is to move a boss, pocket or hole from one face onto another face.

Here is a simple example of a topology change in a history-free model. In this case a boss was automatically selected, and then a transformation was defined (one picture shows a point-to-point transformation, the other is a direction and distance, and the last is a combination of a direction and distance with a rotation). You can see the results of each, and in all three cases the topology of the model is changed.

> Design Intent
Another thing to consider with history-free modeling is the design intent of a model. In this case I am only referring to intent at the geometry level, not the assembly level. At the geometry level there are several types of relationships than can be captured such as:

  • Tangent
  • Coincident
  • Coaxial
  • Symmetric
  • Parallel
  • Perpendicular
  • Distance
  • Angle

Take a look at what capabilities the system has for adding this type of information into the model. In some cases it may be automatic. There also may be flexibility to turn the conditions on or off during modification. Then look at how modifications work when these conditions are active.

The technology behind history-free modeling is moving ahead at an amazing pace. It is likely that sometime in the very near future you may wonder what value a history tree provides.


Friday, October 17, 2008

Synchronous Technology and My First Impressions

I finally got my hands on NX6 and have been able to try this so-called breakthrough in CAD technology that Siemens calls Synchronous Technology.

I first got myself back up to speed by using NX6 in its default history-based mode. And as with any history-based modeling system, it is a painful process making sure that the tree is structured properly and constrained in a useful and predictable way. And as usual once you do have a nice model created that behaves the way you want, you feel gratified. Kind of like when I solved the Rubix Cube for the first time. Highly constrained and structured models certainly have their place in product development, but conceptual design is not one of those places. And just hope that you do not have a sudden change come to you once you have this nice and highly constrained model completed.

With NX6, like many other history-based systems you do have the option to perform direct edits on geometry. This capability is provided to allow you to accommodate small unforeseen changes that may come at you without having to mess with the tree or parameters. Unfortunately these direct edits are captured in the tree so that the next time you have to regenerate the model, the changes are not lost. The end result is an even more complex and volatile tree.

So to work around all the usual issues of using a history-based system for concept design, rapid design cycles, interoperability, and so on, Siemens has introduced Synchronous Technology, which will save us all from this misery.

Siemens has claimed to introduce the next breakthrough in 3D CAD with what they are calling “Synchronous Technology”. The demos that are out there look reasonable good, as any demo should. The use model looks nice and the graphical interaction and feedback appears to be very nice.

On the contrary though, what Siemens has introduced, was in reality introduced 10 years ago when Hewlett Packard first imbedded the synchronous parametric solver from D-Cube into their product – SolidDesigner. Since then the product was moved out of HP into CoCreate, and is now part of the PTC product line. The product is now called PTC CoCreate Modeling. Siemens’ Synchronous Technology is simply a combination of history-free modeling with the D-Cube synchronous parametric solver. Exactly the same as what HP did in the late 90’s. The D-Cube solver delivers synchronous solutions to geometrical relationships like dimensional parameters, coplanar faces, concentric faces, tangent faces, parallel faces, perpendicular faces, symmetry and coincidence. This capability allows an explicit – or “history-free” modeling system to apply needed relationships/parameters to 3D points, edges, faces, features, parts and assemblies. The relationships are solved synchronously and simultaneously. It is a mature and robust technology.

There are so many terms that we are hearing and using in so many different ways, that it causes much confusion. I think marketing departments purposely try to do this to keep us in the dark. The term “parametric modeling” usually refers to history-based modeling. The problem with using this term to describe history based modeling, is that it implies that explicit modeling can’t be parametric, which is completely untrue. Fully constrained models and assemblies in a history-free environment is possible. The difference between managing parameters in a history tree versus a history-free environment is that with the history tree, parameters are solved linearly as the tree is regenerated. In a history-free environment the parameters are solved simultaneously or “synchronously”.

Another term that gets abused is “direct editing”. In most cases this describes the capability to make direct edits to geometry while in a history-based environment, as discussed above. These direct edits are capture in the history tree. They must be maintained in the tree otherwise a model regeneration would remove the edits. Don’t confuse “direct editing” with explicit modeling. They are two different things. Explicit modeling is simply modeling without a parent-child relationship (history tree).

I am a long time user of CoCreate Modeling and am now getting some good experience with ST (although no formal training). Explicit modeling requires much intelligence in the modeling system to manage connectivity with the model (topology). It can be very complex. CoCreate has spent many years on this technology to ensure that results of edits are intuitive and expected and that the model remains a solid. CoCreate is very robust and easily handles complex topology changes in the model. It also properly manages adjacent faces, blends and chamfers, even on imported geometry. On the other hand ST is VERY immature in this area. Very rarely are edits that require topology changes successful. It has no concept of recognizing blends and chamfers. It does understand tangency, coplanar, parallel and similar conditions, but again rarely does that deliver the required results. It does recognize bosses and pockets, but has a lot of limitations even with this.

ST simply does not provide enough capabilities (yet) to justify sacrificing your history tree. Just use the direct edits that are already available.

For companies that can use the flexibility that comes from explicit modeling, CoCreate is still the best choice. The choice should not be based on user preference either. The parent/child relationship is not optional with history-based modeling and it has huge impact on process. I can’t tell you how many companies I have visited over the years that have developed huge manuals to define modeling standards for their users to follow in order to structure history trees in ways that will allow for team design, leverage and reuse and predictability in the model. For some companies this is required. For others, once they understand explicit modeling, they will realize what a waste of time and effort managing a history tree is.

I am currently going through a comparison of ST with CoCreate and will post my results when complete.