Thursday, July 8, 2010

Are you a Designer or a Programmer?

I don’t mean to imply that if you are a “programmer” you are not a “designer” or visa-versa. The question is; as a CAD user do you spend more time designing or programming?

Most CAD users are very familiar with history-based CAD. It is probably what they were initially trained on, and may be the only thing they have ever used. Relatively, very few people have used or understand history-free CAD. They may be familiar with direct editing, but history-free CAD is much more than the direct editing. Every week I personally witness more and more people catching on to the value and benefit of history-free CAD. Most had no clue that such power was available in such an easy and flexible tool.

So what’s the difference? Here’s one way to look at it.

With history-based CAD, users create a “program” typically called a history-tree. This program is created by defining 2D sketches, modeling features, and relationships using specific methods and structure. When the “program” runs, 3D geometry is created. In a history-based system, users do not create 3D geometry, but rather create a program that creates 3D geometry. In the same sense, users do not modify 3D geometry, but rather modify the program that will then create different 3D geometry. The program (history-tree) is the master.

History-based CAD can be a very powerful tool in the right hands, but there are some key requirements and best practices that must be followed. These requirements and best practices are very similar to those found in software development. Here are just a few of them:

  • Have a clear understanding of the end goal, or intent, before you start
  • Maintain a clear and consistent structure such that others can follow
  • Be sure the structure supports the intent
  • Define small-manageable components that are well organized
  • Pay close attention to references and relationships

There are also similar challenges with developing a good history tree and developing a good program. Here are a few:

  • Debugging the program
  • Translating a program from one language to another
  • Collaboration at the program level
  • Reusing an old program that someone else wrote
  • Managing references and relationships between programs
  • Managing very large programs

With history-free CAD, users are not creating a program but are rather directly creating and manipulating geometry. Since you are directly interacting with geometry there is no language to learn, no need to plan ahead, no need to understand how the geometry was created or what tool was used to create it, and no need to develop and manage complex references and relationships. What you see is what you get. Geometry is the master. There are certainly challenges yet to be solved with history-free CAD, but the technology is improving rapidly. It is a technology that has been around for many years, but if you haven't tried it recently you need to do so.

History-based CAD is certainly the dominant CAD technology used today for product design and engineering. It is a very powerful tool when properly aligned with the design process. It can also be a very problematic tool when misaligned. One thing to consider is the amount of effort that goes into “programming” vs. “designing”. If the resulting program yields value exceeding effort, then use it to the maximum. Programmatic development and control of geometry can be of high value in the right context. If however the program, including the typical challenges that come with “programming”, get in the way of progress and yield little future value, then consider the alternative.

History-free CAD is being used today by thousands of companies around the globe, as both an alternative and a compliment to history-based CAD. Here are some of the reasons why these companies are using history-free CAD:

  • If you need a tool that can help you more quickly review a variety of concepts you will want to consider history-free CAD.
  • If you have a need to involve more people besides the CAD experts in product design, you will want to consider the ease and flexibility of history-free CAD.
  • If you have a need to interact with geometry coming from a variety of CAD tools, you should be considering history-free CAD.
  • If your product life cycles are short, there may not be a return on your "programming" investment.
  • If you need to obsolete your products before your competitors do, you may not have time to develop well structured programs.
  • If you work with large assemblies (30,000+ parts) you need to consider history-free CAD.
  • If you need to leverage, reuse and share design data, it is likely easier and more intuitive to do so with 3D models rather than programs.


(To try out the most mature and capable history-free modeling at no cost, check out PTC CoCreate Modeling Personal Edition:


Jeff Waters said...

Good post, Paul. In your opinion, then, what needs are NOT met by a history-free approach? Based on what you've written here, I don't see any reason for companies to even want history-based CAD.

Paul Hamilton said...


Great question. I have been asked that question many times from individuals and companies that have recently experienced and/or evaluated CoCreate Modeling. Even though you can programmatically control geometry in CoCreate Modeling and other history-free systems, it is likely still more intuitively done with a history-based system. So, when is programmatic control important in product development? I can think of several examples. Here are two: 1) Think about situations where the geometry is not necessarily the master. Consider a turbine blade. The equations that are controlled by performance requirements are the master; the geometry is just a result. 2) Consider where and when complex variations to a part are required. The tire is a good example. When it comes time to detail multiple variations of the tire to reflect different widths and diameters, today it will best be done with a history-based system.

With the many advances happening today in history-free modeling, the list does grow shorter.


Jon Banquer said...

"With the many advances happening today in history-free modeling, the list does grow shorter."

The problem is the imaturity of most direct modelers. An example would be SpaceClaim doesn't even have a hole wizard. How is it possible for this situation to exist in SpaceClaim is beyond me. SpaceClaim should have had a hole wizard in its first release. Solid Edge ST did.

Also, most direct modelers don't have CAM that's fully integrated into them like say SolidWork does.
A user has the following choices for fully integrated built in CAM if they chose SolidWorks.

HyperMill For SolidWorks
Delcam For SolidWorks
Visual Mill For SolidWorks
BobCAD For SolidWorks

... and I'm sure many more that I missed.

Jon Banquer
San Diego, CA

Anonymous said...

Nice Reading. Thanks.
LRQA helps bring integrity, independence and world-renowned recognition to your assurance claims.

Quality-ISO 9001 Training
Environmental-ISO 14001 Training
Greenhouse Emission Management Training
Automotive industry Management Training
Construction & Engineering Industry Management Training