Thursday, January 29, 2009

History-Free Modeling Shootout

Round 1: Simple Topology Changes.

When using history-free explicit modeling technology, controlling topology of a solid model and doing it in a way that applies to the needs of engineers and designers is not trivial. Changing geometry can be simple, but when those geometry changes impact the topology of the solid model, things can get complex very quickly.  Since there is no recipe behind the features, the system must be intelligent enough to make sense of the topology as edits are being made. The ability to properly manage the topology of a B-Rep solid model is at the heart of effective history-free modeling.

I had the rare opportunity to use three of the history-free CAD systems several days ago and wasted some time playing with them. I noticed that each was behaving slightly different when making some modifications to the parts. I then setup a test part to try and get a more detailed and consistent look at it.

In this case I am only looking at how these systems handle topology as simple features are moved from one simple face to other faces and edges resulting in a topology change.  As such this test may not mean much to most of you, but I found it interesting.  Also, considering how fast this technology is changing, this particular test may be obsolete in a few months.

The part I used looks nothing like a part you would design in real life, but I created it so that it would include representations of a few of the more simple topological conditions that you will find in the parts that you design. I just put them all into one part for the test. To make it fair, I created the STEP file in Autodesk Inventor and used this same STEP file in all three systems.

You can see the part below. It has a simple boss, hole and a pocket on one side of the part. My test is to position these three features in different locations and check the results. Each position represents a different topology challenge. I purposely left blends/rounds off the part as in this case I’m not interested in the blend algorithms, but rather focusing only on the topology management capabilities of these three systems.

Even though some of the tests may not have worked so well or perhaps failed, the wonderful thing about history-free explicit modeling is that you can always undo and easily and quickly slice and dice to get the results you want. With a history-based system, if you don’t get the results you want, you have two options: 1) go through what can be a mind-numbing maze of interlocking relationships and constraints in the history tree to find and hopefully fix the problem or, 2) rebuild the model from the start. Actually there is a 3rd option IF the system provides robust direct editing capabilities that can properly manage the needed topology challenges.

In my test results you will see 3 images for each test:

On the left: PTC CoCreate Modeling 2008 (CC)

In the center: SpaceClaim 2008 SP4 (SC)

And on the right: Siemens NX6 with Synchronous Technology (ST)

This was a fairly simple test requiring very little knowledge of the CAD system. I just used one simple part and one command with nothing but the default options for all three systems. I used a variety of selection methods, selecting individual faces, boxing in the faces or using the system’s ability to recognize features, whatever provided the best result. The only command I used was the “Move” (in CC & SC) and “Move Face” (in ST). In each case I start the move from the original position.

So here we go.

Test #1 – Intersect with a face above the base face.
(Note: “base face” refers to the face that the features are attached to previous to the move.)

CC – The move works as expected.
SC – The move works as expected.
ST – The hole and pocket do not extend above the base face.
(Note: The term “as expected” refers to MY expectations, you may have other expectations)

Test #2 – Step up to a higher face.

CC – The move worked as expected.
SC – The move worked as expected.
ST – The move worked as expected.

Test #3 – Intersect with a taller face and a face that is lower than the orginal base face.

CC – The move worked as expected.
SC – The hole did not extend above the base face. This move was order dependent. If I moved the boss first then the hole, the part would look as displayed, if I moved the hole first then the boss, much of the part would be trimmed away. There is some strange interaction between the features.
ST – The boss would not extend to the lower face. If I moved it even another .1mm it would extend.

Test #4 – Intersects with a face that is lower than the base face, and lower than the bottom of the pocket.

CC – The move worked as expected.
SC – The move worked as expected.
ST – The move worked as expected.

Test #5 - Intersects with a higher edge and two faces.

CC – The move works as expected.
SC – Neither the hole or pocket would move to the desired location.
ST – The move works as expected.

Test #6 – Intersects with a lower edge and two faces. (The edge is at the same depth as the pocket)

CC – The move works as expected.
SC – Pocket and hole would move, but not the boss. Opposite of test #5.
ST – Pocket did not extend into left side of groove.

Test #7 – Intersects with a face that tapers from below to above the base face.

CC – The move works as expected.
SC – The move works as expected.
ST – The move works as expected.

Test #8 – Intersects with top shelf and a bottom face that is below base face.

CC – The move works as expected.
SC – The move works as expected, although I had to move the features in a particular order otherwise I would get the results in the smaller image.
ST – Pocket and hole moved good but I could not get the boss to move into the top faces.

Test #9 – Intersect with a thin wall. The bottom face is below the base face.

CC – The move works as expected.
SC – Boss worked well, but the hole and pocket extended through the sides of the shelves. I had to move the boss first otherwise much of the part was trimmed away.
ST – I could move the boss, but it would only extend into the lower right side of the wall. I could not move the hole or pocket.

Test #10 – Intersects with mid-shelf. The bottom face is below the base face.

CC – The boss extends through the top side of the shelf. The hole and pocket do not extend into the shelf. (If I select individual faces rather than a recognized feature, the hole and pocket will extend into the shelf.)
SC – The boss extends through both sides of the shelf. The hole and pocket do not extend into the shelf.
ST – The hole and pocket move ok but the boss will not move off the wall.

(not sure if CC or SC is right. I will give it to SC as it can often be easier to remove geometry than add)

Test #11 – Intersects with an angled wall.

CC – The boss extends through the top side of the wall.
SC – The boss extends through both sides of the wall and to the lower floor. Again, in this case I had to move the boss first otherwise much of the part would be trimmed away.
ST – Same as before, you can see how far the features will move, but from that point it failed.

(the comment in #10 applies here as well)

Test #12 – Intersects with the end of the part.

CC – Pocket and hole extend nicely. Boss extends out the end of the part.
SC – Pocket and hole extend nicely. Boss is trimmed by end face. In this case I had to move the boss last to get acceptable results.
ST – Pocket and hole extend nicely. Boss is trimmed by angled face on left side. If I move it just a fraction more the boss will be trimmed by end face.

(Not sure which one is right)

Test #13 – Pull features off part.

CC – Negative space features disappear as expected. If positive space features are pulled off the part and are not attached to a different part, they become a separate and new part.
SC – All features disappear, including the boss.
ST – You cannot pull the features off the part.

All 3 systems allow you to copy and paste features if you actually want a new copy of the feature.

OK, One last test, (and congratulations if you actually made it this far).

Test #14
If you want a more realistic test consider this part, a fairly typical plastic part. In this part there are many areas that have similar topology challenges as to the test part above. For this test I loaded the same STEP file into each system. I then selected the snap feature colored brown and tried to move it to another location, again only using the Move command. The new location of the snap feature will involve a complete new set of faces and topology that it will intersect with. It will need to be both trimmed and extended during the edit as it moves from curved surfaces to planar faces.

The move worked very easy and very fast. With CC you can also use the “keep feature” option of the Move command so that the original will be retained and a new copy will be created as the feature is moved (inset). Notice that all faces are properly trimmed and extended, no additional work is needed. Whether you “keep feature” or not the move works, simple and fast.

With SC I could not move the snap feature more than a few tenths of a millimeter. I was very careful to select only the faces that make up the feature, using the Protrusion selection option, and to select the same move direction, but i could not get it to make the move. By using the Ctrl key during the move, SpaceClaim will create a copy. Using this method I was able to move the copy into the desired location. It was properly trimmed and extended as needed. It was a bit slow and touchy, but the copy/move worked.

Like SC, with ST I could only get the snap feature to move about .5mm in either direction. I tried many times being very careful that I selected only the faces that make up the feature and to select the same move direction. In NX you can copy the faces that represent the snap feature, then paste them and move the results. The pasted set of faces do not make up a solid so you will need to make a solid out of it, unite it and trim it as needed.

I purposely am not going to make any summaries of the above findings, for a few reasons. First of all I work for PTC so you wouldn’t believe me anyways :<). And secondly, it is entirely up to you to determine which, if any, of these tests would impact you considering the type of CAD work you do and the characteristics of your parts. I did learn a lot about the 3 systems, the different selection methods they provide, the many differences in their feature recognition capabilities and the various methods for specifying the transformations. It was certainly interesting.

I will say this, with any one of these three systems I can get the expected results for all 14 cases. It’s just that some edits may require a few more minutes of cutting and pulling to do it. That’s the nice thing about history-free explicit modeling.

There is certainly more to a capable CAD system than this, but being able to properly manage topology during edits will have a big impact on your ability to get things done in a timely manner. A nice UI, convenient selection methods, synchronous relationships, design intent, integration of other applications, and other capabilities won’t mean much if the system can’t manage the topology in a useful manor.

If I get the privilege of a Round 2, I would like to see how these systems manage topology when the feature isn’t so nicely contained inside one simple face, but rather intersects several faces before the move – leaving a more complex hole to fill.

So, if I was going to score it, this is how I would do it:

I am certainly open for the real product experts to comment on how to make these tests work better in their application.  But in the end I am more hoping that this can have some impact on making history-free modeling even more robust than it already is.


Monday, January 26, 2009

Reducing Costs with Explicit History-Free Modeling

History-free modeling is not for every design and manufacturing company.  But, depending on the types of products you develop and the supporting processes, you may be one of many companies that can realize great cost savings by utilizing explicit history-free modeling for your CAD work.  With the economy as it is you must be looking for ways to reduce costs.  I recently posted some of the unique benefits of history-based modeling, which if properly taken advantage of, can contribute to better efficiency in the process.  Below are some of the unique benefits of explicit history-free modeling that, if it fits the process, can deliver improved efficiency and reduce waste (lean), and NOW is the time to consider this.

10 Ways to Improve Efficiency
  1. Lower your training costs with history-free modeling.  There is simply less to learn when there is no history tree to create and manage.  Intuitively interact with the geometry, directly.
  2. Get the right people engaged at the right time.  Eliminate CAD knowledge from the criteria for assignments and resource management.
  3. Hire the best designers and engineers, not just CAD jockeys.  Eliminate CAD knowledge from the criteria for hiring/staffing.
  4. Enhance the concept design process with flexible 3D modeling.  Concept design and history-based modeling are like “oil & water”; they don’t go together very well.
  5. Improve productivity for each individual by focusing on design, rather than model creation methods, technique and process.  Reduce costs by focusing all effort on product design rather than 3D modeling.
  6. Repurpose existing data easily with no need to understand model history.  Optimize parts once and reuse to the max.
  7. Greatly improve teamwork, team design and interaction with downstream and upstream partners to improve quality, innovation and reduce costs.  By eliminating the history tree, team members can immediately interact with the CAD data.  No need to study the model history.
  8. Get the maximum value from your rich CAD data by making it available, and understandable, to the extended team.
  9. Minimize IT infrastructure load.  Utilizing explicit history-free modeling technology can reduce average file size by 60% to 80%.  Can minimize RAM requirements, storage space requirements and network traffic.  This is made possible by eliminating data space requirements that are typical of the history tree.
  10. Improved general performance and load/store times for each CAD user by taking advantage of the lightweight footprint of explicit history-free modeling.
10 Ways to Reduce Waste
  1. Eliminate the waste of history tree management and structuring.  Focus on the task of design.  And don’t make the incorrect assumption that you cannot capture design intent without a history tree.
  2. Eliminate the need to rebuild models, something that is too common with history-based tools. (especially if you do concept design with them)
  3. Eliminate the need to create and manage standards and best practices for creating and managing history trees / history-based models.
  4. Add intelligence (features, parameters, …) to models and assemblies only when needed.  History-based systems may force the addition of this intelligence whether it will be used or not.  They will force relationships (parent/child), again whether this added information is actually useful or not.
  5. Upward compatibility can be a big issue with history-based modeling and can result in rework and duplication of effort.   There is no compatibility issue when working with geometry; i.e. explicit history-free modeling.
  6. Greatly reduce the effort of data exchange with suppliers and vendors.  History trees are proprietary. 
  7. Eliminate the need for other team members to study the history tree of other team member models just to make use of them.
  8. Designers will spend an estimated 25% of their “CAD time” managing and manipulating the history tree and related attributes and data.  Your designers can be 25% more productive by eliminating this activity.
  9. Greatly reduce the need to recreate CAD data just to get it into an editable format
  10. Reduce the time consumed in the change cycle, but eliminating the need to study the model creation history.  Focus on the process of change.
There, I made it – 10 for each, although there is a little overlap.  Some of you that have experience with history-free modeling can probably throw a few more in here.

Again, your processes/products may require some of what is suggested above as something to eliminate or reduce.  If that is the case, history-free modeling may not be for you.  But I challenge you to take a close look at your CAD requirements based on processes and product characteristics, rather than personal habits and preferences.


Tuesday, January 6, 2009

The Unique Benefits of History-Based Modeling

As the awareness of history-free modeling increases, there seems to be a growing desire to somehow merge the benefits of history-based modeling with the benefits of history-free modeling.  This may be a bit difficult to consider as we may all have slightly different ideas on what benefits each of these technologies bring to our own CAD requirements.  As we consider these technologies we should try to be specific about how they may or may not support our requirements.  Much talk has been made regarding the benefits of history-free modeling, but what are the benefits of history-based modeling that we may miss by moving to a history-free environment?  As an example, Siemens with Synchronous Technology makes it easy to switch, but what benefits will you miss out on by doing so?

I added the following comments in a previous blog, but I want to restate them for the purpose of this discussion.  There are a few absolutes regarding CAD technology.
  • A CAD system is either history-based, i.e. tracks the modeling history (features are ordered with a parent/child relationship) OR it is history-free, i.e. does not track history (explicit or direct with no parent child relationship). If it has history, it is not history-free. Features are either ordered or they are not. Once history is gone, it is permanently gone – there is no getting it back without starting over.
  • A CAD system either has parametric capabilities (constraints) or it does not. It doesn't matter if it is history-based or history-free.  Parametric capabilities can exist in both history-based and history-free modeling. The capability either exists or it doesn't.
  • A CAD system either has direct geometry editing capabilities, or it doesn't. A history-free CAD system depends on direct editing, (it can’t exist without it). For a history-based system, direct editing is a nice to have feature.  In both cases, history-based or history-free, the direct editing capabilities will apply to both native and imported data.
In my enthusiasm for history-free modeling I certainly have not kept my opinions secret with regards to the positives of history-free modeling (or the negatives of history-based modeling).  However, history-free modeling still may not satisfy all of your requirements.  Today it cannot replace all of the benefits of history-based modeling.  A few years ago, the list of unique benefits of history-based modeling as compared to history-free modeling, was a long list.  Today the list is much shorter, but there is still a list.  With this post I will try to describe some of these remaining benefits.  I hope others will add to the list, but keep in mind I am only referring to the benefits that come from a history-based system, specifically the ordered feature tree with its parent/child relationships, as compared to todays history-free technology.  There are certainly many other criteria to consider when evaluating a CAD tool.

So what benefits can be realized from "ordered" modeling features that are not available in the history-free environment (no order)?  That’s the question.  Here are the ones I’ve considered.
  • The “Shell” is an obvious modeling feature that benefits from a parent/child relationship.  When a change is made to the parent, the child feature (shell) will conform to the modified parent during the model regeneration.  So far there is not a common method in history-free modeling for managing a consistent wall thickness on a part.  At this time the current history-free modeling systems each handle this problem a little differently.  While you get much more flexibility in your shell with history-free modeling you don’t get the natural consistency that comes with the shell feature when properly structured in a history tree.
  • Support for multiple states, i.e. secondary operations (stock-finish).  There could be two different states such as a cast part that is machined.  Or perhaps even three states such as individual parts that are welded into one and then machined.  In these situations a part exists in more than one state, but from a design intent point-of-view you want to utilize the same geometry wherever possible such that a change to geometry in the first state is realized in the second state, and so on, i.e. associativity from one state to the next.  By properly structuring the history tree and the related parent/child relationships, you can support this requirement fairly well with a history-based system.  Features can be added/suppressed allowing the representation of a part in different states.  There are ways to solve this in a history-free environment but to date I have not seen a good solution for it, although I don’t think it is too far away. 
  • Ease of controlling a model/assembly parametrically.  Parametric modeling is completely possible in a history-free model or assembly.  It is nothing new.  The reason I keep this benefit on the list is not that it can’t be done in a history-free environment, but rather that it is still somewhat easier to capture this information by properly utilizing the parent/child relationship.  The parent/child relationship seems to make it a bit more intuitive when we want to drive the effects of one parameter into different areas of the part or assembly.  This translates into the ability to more intuitively support requirements for family-of-parts, configure-to-order or perhaps design optimization.  This benefit may have more to do with "familiarity" than being "intuitive".
  • Ease of controlling freeform shapes and surfaces in a solid model.  There is very mature technology out there for defining and controlling freeform surfaces without the need for history.  Surface modeling systems have been doing it for years.  Controlling freeform surfaces on a solid model is a bit more complex, however.  A solid model that includes freeform surfaces can be very difficult to accurately edit in a history-free environment.  Add complex blends to the model and it gets even more difficult. There are many ways to control and edit surfaces in a history-free environment, but one of the things you can’t do is to go back to the original sketches and/or curves (parent) that were used to generate the complex surfaces (child) originally, make the modifications to the curves and regenerate the surface geometry.  If the tree is structured appropriately for this type of edit, the change will work well.  Today it is hard to beat the benefit that a well structured parent/child relationship brings to accurate surface editing in a solid model.
So. what did I miss with regards to the benefits that come from ordered modeling features, i.e. history?

Some may want to add control for blend/round features to this list of benefits since these features are typically order dependent.  In other words, depending on what order you add a blend/round, the vertex region can be different.  This is true of history-based and history-free systems.  In history-free the order is not available to the user to manipulate and as such getting a different vertex region may be difficult. But it can be equally difficult to reorder the features in a history-based environment, especially if you also need to add or remove edges within the feature.  I am not convinced that either technology makes this very easy.

Some may want to add capturing “design intent” to this list.  All four of the benefits I mention above fit into the category of “design intent”.  Don’t just list design intent.  Be more specific.

Some may want to add "knowing how someone created the model".  But you need to be more specific than that.  What benefit do you get from having this knowledge?

There is one benefit of history-based modeling that most will miss when moving to a history-free environment and that is “familiarity”.  You will need to move past this one while considering this topic.

With an understanding of the unique benefits of history-based and history-free technologies, perhaps we can have a more uesful discussion on what the term “best of both” refers to in this context.  When a CAD vender claims to be deliverying the best-of-both, what are they talking about?