Monday, December 1, 2008

History-Free, Parametric Modeling

History-Free parametric modeling? Is there such a thing? To some it may sound like a contradiction in terms. The term “Parametric Modeling” is often used to describe history-based modeling. Certainly parametric modeling came of age within the context of history-based modeling, but in fact, parametric modeling is not reserved for the history-based CAD products.

For me “parametric modeling” simply refers to the addition of persistent geometric relationships, constraints and parameters to 3D models. This added “intelligence” is then used to control the behavior of a model. The following are some common examples of relationships, constraints and parameters:

  • Parallel
  • Perpendicular
  • Tangent
  • Coincident
  • Planar
  • Distance
  • Angle
  • Radius
  • Diameter

History-based modeling provides a nice platform for parametric modeling in that you can easily add parameters to the 2D sketch. It is also common to have predefined parameters and constraints associated with 3D modeling features, such as the depth and diameter of a hole feature. During the creation of these features, users are given the opportunity to specify the value of the parameters. Once the sketch is defined and/or the modeling features are defined, they are captured in the history tree. Users are also given the option to add dimensional parameters to the sketch and/or modeling features. When changes are needed, a parameter or constraint can be adjusted and the history tree will be replayed to form a different model based on the modified parameters. The model is actually recreated from the point of change each time the tree is replayed, or regenerated. The parameters are similar to variables in a software program. Change the variables and replay the program to get different results.

Parameters and constraints in a history-free environment can be a bit more complex in that they are all 3D and must be solved synchronously. They must control conditions in 3D space that are typically controlled in 2D space within the history-based 2D sketch, such as tangent or parallel. Due to these complexities, the history-based platform may be the ideal platform for fully constraining a 3D model. However this is quickly changing with continued advancements in 3D parametric solvers and new intuitive methods for applying and interacting with 3D parameters.

Today there are only a handful of history-free modeling systems on the market, and only a few of those have full parametric capabilities. PTC CoCreate Modeling (Formerly HP SolidDesigner) has had this capability for many years now and probably has the fullest set of capabilities for managing 3D parameters within history-free geometry. As such I will use examples from CoCreate Modeling to highlight some of the challenges and benefits of history-free parametric modeling.

One of the key benefits of history-free parametric modeling comes from the fact that these parameters can be defined anytime during or after model creation. Parameters can be added and removed anytime regardless of the completeness of the model. As a matter of fact, an imported IGES or STEP file can be fully constrained and parameterized with a tool like CoCreate Modeling.

Below is a picture of a wheel that has been constrained using CoCreate Modeling. It is probably not fully constrained, but may be close. This wheel started out as an IGES file from some other CAD system, so all parameters were added after the fact. In this case there are basically three key variables identified in the solution. One for controlling the width, another to control the outer diameter, and another to control the bolt hole circle radius. The parameters are organized and managed in what is referred to as a “Relation Set”. Relation sets are owned by the part. In the picture of the Structure Browser you can see a part called “Wheel”. Underneath Wheel is a relation set called “Wheel_Set1”. Within the set is the list of all the parameters that have been assigned to the part. The first parameter in the list is a Radius parameter that is the driving parameter for controlling the outer radius of the wheel.

With a parameter set like this, it takes CoCreate Modeling maybe 12 seconds to solve the complete wheel when a change is made. It will not make a difference whether one variable is changed or all three are changed. It takes the same amount of time to solve, as you are solving the entire solution set simultaneously.

To reduce the amount of time it takes to solve a set, CoCreate Modeling allows you to have multiple relation sets per part; any number of sets with no limit. However, only one set can be active at a time. Multiple relation sets also gives you the opportunity to capture multiple studies or scenarios within one part. Something that is not possible with history-based modeling without building a new part. In the example below, I separated the parameters into 3 different sets. One set to control the width of the wheel, one set to control the outer diameter, and one to control the bolt hole circle. Each set is now independent and will not impact the other. In this case now, to solve for example a width change, the solution will take about 5 seconds to complete. (Of course this depends on the machine you are using). The change has no impact on the other relation sets. Notice how all other geometric conditions are being maintained within the model, conditions such as tangent and concentric.

You can also include equations into your parameter definitions. For example in the Wheel_Width set there is a simple equation that will drive the location of the hub based on the width. If you look closely from image one to image two you will see that the position of the hub changed relative to the front of the rim, as the width changed. The equations can also include many logical expressions such as if, then, else, and mathematical expressions such as equal, not equal, less than, less than or equal and others.

Here is another simple example of a history-free parametric model. In this case it is a plastic connector body. There are a few features and patterns that have been defined. Parameters are then used to define the number and placement of the features. One of the parameters is used to define the number of pins for this connector. Based on that number, features are added or removed and the geometry is adjusted.

As with any parametric modeling tool, it is possible to over constraining a part. If this situation happens in CoCreate Modeling the system will highlight the parameters that are involved with the over constrained condition to help the user quickly resolve the situation.

Parameters are only as good as the underlying geometry engine is at making the actual geometrical change. If the system is not capable of making complex geometrical changes, driving that same change with a parameter will also not work. As mentioned in an earlier blog article titled “Key Capabilities of History-Free Modeling”, properly managing adjacent faces and topology changes are critical to history-free modeling.

Of course adding parameters to a model is only good for one thing; controlling the behavior of the model. This type of control is not always necessary however. With history-free modeling you have complete flexibility in adding constraints and parameters to your model. Users can focus on the task of design, and only apply parameters and constraints where and when it makes sense and adds value. Keep it “Lean”. Don’t waste time on creating data that adds no value to the actual design.

So, history-free parametric modeling is a reality and it is VERY cool. It actually works like most engineers think – unless they have been brain-washed with history-based modeling. History-free parametric assembly modeling is also a reality. Maybe I will cover that topic in a later blog.



jonbanquer said...

Hi Paul,

What stops me from wanting to get to know PTC CoCreate is its lack of fully integrated CAM. If PTC combined great fully integrated CAM with CoCreate they would really have something. Lack of fully integrated CAM removes products like SpaceClaim and IronCAD from my consideration and it's what makes NX so appealing to me.

As manufacturing in the U.S. gets more and more pressure it's going to become clearer to more CNC programmers / machinists that without powerful integrated CAD it simply takes too long to program parts for a CNC machine.

I was totally amazed when I saw how much less chaining (think of chaining as the road needed for toolpath in most stand-alone CAM systems.)is needed in NX and how much better the geometry selection tools are in NX than in stand-alone CAM.

Jon Banquer
San Diego, CA

Anonymous said...


Could you post Modeling native files for the two parts you show as examples (wheel, connector) ??

That might help us learn "how it's done" -- maybe both in Modeling standard and personal edition format. :)

Paul Hamilton said...

Jon, you are right. NX certainly has a long legacy with CAM and is very strong in this area.
I was playing with PTC ProToolmaker and CoCreate Modeling last week. It is not a tight integration yet, but the tool paths are associative and it worked very well. I don't think ProToolmaker does lathe, but it sure does a nice job with multi-axis milling. There are several other CAM tools that work good with Modeling, but nothing as nicely integrated as with NX.

Paul Hamilton said...

Send me an email and I can send you back the model. I'm not sure how to post the file here.