Either a CAD modeler uses a structure tree, or it doesn’t; Paul Hamilton explains all. Originally published August 2007 in Engineering Automation Report, acquired in 2010 by Jon Peddie Research.
By Paul Hamilton
PHusion Engineering Solutions
[Editor’s note, 2007: For years mechanical design has been dominated by history-based modelers. From the day Pro/Engineer first came to market, on through the introduction and growth of such programs as SolidWorks, Solid Edge, and Inventor, history-based modeling has dominated the MCAD marketplace. But recently there has been an increased interest in alternative forms of CAD modeling. In a three-part series of articles, engineering consultant Paul Hamilton provides a complete review of the terms and technology, and offers best uses for the various MCAD technologies now available.]
[Editor’s note, 2011: When this article was first published, Paul Hamilton was an independent consulting engineer. He is now an employee of PTC. His personal blog is http://p-hamilton.blogspot.com/]
Engineering Automation Report, August, 2007—In the last year or so there has been increased talk in the industry about the differences between history-based CAD modeling tools and history-free CAD tools. From a designer’s standpoint, sometimes such discussions seem irrelevant. We just want to the designs done and move on to the next job. However, beyond user preference, there are significant differences between these technologies—and these differences can have a major impact on the product development process. Whether one uses history-based or history-free can impact most stages of the product design process, from initial innovation and concept design, to data re-use and data interoperability, and even whether design can be used only in the short-term or as part of a long product lifecycle strategy.
Many terms have been used to describe CAD tools, including parametric, feature-based, explicit, Boolean, hybrid, direct, and dynamic—to name only a few. I have heard and read these terms being used in so many different ways; I find they are as badly overworked as “PLM.” So let’s skip these terms for now and focus on the four basic concepts used to describe 3D space: octree, facet modeling, constructive solid geometry, and boundary representation.
I found the following definitions from Wikipedia to be good and accurate. All 3D Mechanical CAD systems today are still based on these same technologies:
Octree is a method of creating 3D space by “sticking” together smaller simple 3D shapes to form bigger and more complex shapes. It is not used today in 3D mechanical CAD. However, many analysis and simulation applications use Octree or similar technology for spatial partitioning. It is very similar to a “mesh” in an FEA application.
Facet modeling is common in 3D graphics when low accuracy will suffice, such as in 3D games and entertainment, geography related applications and imaging systems. Facet modeling is no longer in use in MCAD; the accuracy is just not high enough. The exception is for visualization, as it is a function of the computer’s graphics processor.
CSG (Constructive Solid Geometry) was once common in MCAD, but its use is waning. The last systems to use this technology were I-deas from SDRC and Catia. The problem with the use of pure CSG was low accuracy of the primitives and a limited set of primitives. Models were constructed by applying primitives to the model with one of three Boolean operators: union, intersection and difference. One component of CSG is still in use today, the “structure” or “tree” of primitives and related Boolean operations, which forms the basis of today’s history-based CAD systems.
B-Rep (Boundary Representation) is by far the most accurate technology for representing 3D geometry, and is used in all modern mechanical CAD systems. It was first used commercially in a geometry kernel called Romulus. The Romulus geometry kernel was used in several 3D modeling systems in the 1970s and 1980s, including Anvil, Graphtec, ME30, and Unigraphics. Many of the people that helped develop Romulus later created ACIS, a geometry kernel in widespread use by many of today’s 3D systems. Romulus was also the forerunner to Parasolids, which competes with ACIS as a geometry kernel for hire. Originally B-Rep modeling offered increased accuracy, but developing and modifying models was difficult. Designers would often resort to creating basic primitive shapes and performing Boolean operations on the model, just to make a simple change. This is known as explicit modeling. It was somewhat painful and time consuming, but the resulting model was very robust and accurate.
Those are the four major 3D modeling technologies, but there is one more worth mentioning. The original version of Pro/Engineer from PTC created CAD models with a combination of CSG and B-Rep technology; it became known as Hybrid. Unfortunately, the term “hybrid” has been used to describe other aspects of 3D modeling and has brought more confusion to the topic. In its original form, Hybrid referred to the combination of the CSG tree structure with B-Rep-based primitives. This gave the accuracy of B-Rep with the flexibility of CSG. It was a giant step forward in mechanical CAD.
What many today call history-based modeling is more accurately referred to as Hybrid modeling; it is by far the most common technology used in MCAD systems today. It is often, and incorrectly, referred to as “parametric modeling.” The problem with such usage is that parametric modeling is possible in both history-based and history-free CAD modeling.
Aspects of hybrid modeling include:
• Structure, history, and order are some of the terms used to describe the CSG tree. Most systems now have graphical interfaces to this tree and provide easy manipulation of the tree.
• The steps/operations used to create the model are captured in the (CSG) structure tree.
• The concept of a structure tree implies a parent/child relationship. This parent-child relationship has nothing to do with parametrics—it is inherent in CSG.
• Modeling steps are based on a 2D sketch or a 3D feature which may add or remove material from the solid model.
• Dimensions and geometric relationships are added, stored and tracked in the structure tree. These can be modified later to effect change in the resulting model.
• Interaction with the model is on the structure level, not on the geometry level.
• What you see is not always what you get.
History-free modeling is more accurately referred to as B-Rep modeling; it was the most common technology in the early days of mechanical CAD. B-Rep provided models of high accuracy without the hidden effects of the CSG tree.
Aspects of history-free modeling include:
• It is often referred to as explicit modeling, direct modeling, or dynamic modeling.
• The steps used to create the model are not recorded.
• Modifications to a model are done independently of how the model was created.
• Geometry in a history-free modeler is modified by changing boundary conditions through Booleans, local operations, and partial Booleans.
• Interaction with the model is on the geometry level.
• Dimensions and geometric relationships can be added and modifications can be driven parametrically.
• What you see is what you get.
While there are significant differences, both hybrid and history-free modeling are Boolean-based, both use B-Rep technology, and both can be parametric. The key factor is the recording of the steps used to create elements of the model.
Today’s non-history-based modeling tools are pumped-up versions of the older B-Rep modeling products. Through the use of evolving technologies such as partial Booleans and local operations, B-Rep modeling has reached amazing levels of flexibility. Today’s B-Rep CAD tools can tug and pull on “boundaries” to modify the geometry, something once unthinkable. Non-history-based systems now interact directly with the model’s boundary representation as if it were a piece of clay. Thus the rise of the term “direct modeling.” Current B-Rep technology can also embed relationships to boundary conditions and faces, to maintain conditions such as tangencies, offsets, and coincidences.
CoCreate OneSpace Modeling, and Kubotek KeyCreator are the two best-known non-history-based CAD systems on the market today. SpaceClaim, introduced early in 2007, is also a history-free modeler. I believe OneSpace is the most mature. It offers full 3D dimensioning and tolerancing and parametric capabilities at the part and assembly level, including equation-driven parameters. SpaceClaim offers interesting methods for defining geometric relationships on the fly.
There are a few history-based/hybrid modeling systems that claim “direct” modeling capabilities, including NX from UGS PLM Software. Some vendors and users refer to these CAD systems as “hybrid” because they appear to be both history and non-history. What this “direct” modeling refers to—in the context of a history-based system—is the ability to dynamically manipulate model primitives (features). Typically, primitives are manipulated either through a 2D sketch or a dimension. By adding so-called “direct” modeling capabilities to a history-based system, a user has one more option to modify the primitives. Keep in mind that a primitive can be as simple as a cylinder or as complex as a complete part.
Please remember, the most significant difference between these two technologies is the presence, or lack of, a parent/child relationship. Either a CAD modeler uses a structure tree, or it doesn’t. It sounds simple, but it can have a huge impact on processes, procedures, and the resulting design environment. The parent/child relationship will be discussed in more detail in Part 2.
Paul Hamilton is President and CEO at PHusion Engineering Solutions LLC, 8045 Allott Avenue, Fort Collins, CO. 80525. PHusion Engineering Solutions specializes in improving innovation and productivity for their clients by helping them select, deploy and integrate CAD, PDM and PLM tools and technologies that best support their business drivers and product development process. Interested parties can contact Paul at [email protected]