Thursday, April 30, 2009

Design Intent with History Free Modeling (another example)

As I have mentioned many times, combining parametric modeling capabilities with history free modeling to capture design intent is nothing new, as some CAD companies would indicate. There is certainly always room for improvement in how it is presented to the user, but the basic technology is fairly mature and robust. The term “parametric modeling” usually refers to capabilities in a CAD system that will allow users to get 3D geometry to behave as intended based on the design requirements, and this is typically done by capturing the steps (sketches, features, parameters) of the modeling process, i.e. the history tree. Many people understand the term “history-free” (or “direct” or “explicit”) then to imply that the capture of design intent is not possible. As this example will show, it is certainly possible and also can be easy to do.
In this example I am using PTC CoCreate Modeling to add intelligence to a non-intelligent assembly of a V8 crank assembly. You have probably seen examples like this many times, but I bet you have not seen one without a history tree.
In this case much of the geometry comes from a different CAD system through the STEP format. As you will see in the demo video, I add relationships (parameters/constraints) to control the assembly; how the parts relate to each other. I also add relationships to control the geometry of the crankshaft and other parts based on the stroke of the engine. It’s been a fun example as my son and I have recently finished building the engine for the Camero that we are restoring. In our case we took the stock 350 engine and stroked it to a 383. This is done by putting a 400 crank into a 350 block. When you do this, you have to use shorter rods and/or different pistons to accommodate the longer stroke. In this example I change the length of the rod based on the stroke.

As you may have noticed the change to the rod is somewhat simple from a geometry point-of-view. No topology change is required, only repositioning of some faces and stretching of others. The changes to the crank, on the other hand, are a bit more complex. There is still no topology changes required, but there are several tangencies, coincidences and blends/rounds that have to be maintained.
Direct history-free modeling systems may provide the capability to add (or assume) design intent within your models and assemblies, but that does not mean that the geometry kernel will have the power to solve the geometric problems driven through the parameters. In this case CoCreate Modeling was able to perform the required changes to the crankshaft and rod even though they were imported models with no history-tree.
If interested to learn more about direct history-free modeling, my team and I will be at PTC/User in Orlando in June. We will be presenting many topics related to history-free design, and also providing some free user training on CoCreate Modeling. Check it out at


Mike said...

I'm going to play devils advocate here and say so what if you can have Design Intent with a history free model. Sure you changed a connecting rod length really easy, but you could have done that just as easily on most any other system. Let me take that a step further and say you've really doubled your work using a history free model to make a change to a part like a connecting rod. The reason I say that is this, a connecting rod is a part made from another part (forging). If I make a change to the length, you need to change that forging as well. The way I see this is if I change any feature on that rod that isn't a machined feature I now have two models to change not just one. This is a problem I see everyday using this software with parts machined from castings. Instead of making changes to just one model, I've got two models needing the same modifications. Maybe I'm missing something but everything I've seen and have been told from CoCreate sale/support is that when I make a change to the raw form of a machined part I've got two models that I now have to update instead of one.

As far as making the engine perform like an engine, I'm going to say you doubled your work again. With a history based package I get those relationships when I position a part, with CoCreate once I position the parts I still have to add the relationships. Two steps where there should only be one.

This kind of stuff may not matter to CoCreates core user base where injection molded parts make up the vast majority of parts created (no secondary operations) but for those of us that have to machine castings/forgings this is a killer.

Paul Hamilton said...

Mike, Thanks for the comments.

I have already posted about the benefits that a history tree can bring in supporting the needs of multi-state parts – your points are valid. There are some nice ways to manage these requirements with a history-free CAD system like CoCreate, but for some people it is still more intuitive to do it through effective use of history.

Before you can accurately state that I have “doubled my work” you need to consider the entire effort of part and assembly development. There are several factors to consider. Here are just a few:
- There is usually some wasted effort in trying to get the history tree structured properly. Some of it is valid; much of it adds no future value.
- Many history-based CAD systems to some extent force the addition of constraints and parameters in the sketch, in the 3D feature and in the assembly – whether this “intelligence” will ever be used or not. I see much wasted time and effort when I watch history-based CAD users creating models/assemblies, simply because the CAD system demands it.
- Since some of these parts could have been created in-context of the others, there would be no time spent in part positioning. If they are not in the correct position you don't have to position the parts before adding the relationships, the relationship will do the positioning for you.
- It took me at most 15 minutes to add ALL required assembly relationships to this assembly.
Whether you agree with any of these or not, you should at least take a look at the bigger picture regarding “work” or effort.