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.



Anonymous said...

I believe you probably did the best you could in your test to try and stay neutral and I also believe you that CoCreate is the most robust direct modeler… at this point in time.

However, what happens in the real world when the most important test is applied. The most important test is test 15. Test 15 requires that we move from creating pretty pictures on a computer to building a CAM program to actually machine the part.

Here are the results of test 15:

SpaceClaim - Fails miserably as it has no built in CAM.

CoCreate - Fails miserably as it has no built in CAM.

NX 6 with ST - Passes the test with flying colors. Not only does NX 6 with ST have built in CAM but its CAM for milling stands out as one of the best CAM systems in existence.

Jon Banquer
San Diego, CA

R. Paul Waddington. said...

Interesting indeed.

When teaching 3D CAD (I use AutoCAD/MDT and Inventor), particularly Inventor, a comment I repeat, to students, is that modeling software often ‘increases’ the designers’ work load due to the fact s/he needs to not only design the machine/object but also the way it is modeled.

I make this statement not as a criticism – of software - but simply as a generalized warning/guide to those not already familiar with the processes they are about to embark on.

Not all are going to get the chance to run multiple systems as you have done and in that respect your comment “As such this test may not mean much to most of you” has a ring of truth; but your post does have a not so obvious value for all users. That value is the way you have demonstrated the importance of taking a particular task and literally trying different permeations for no other reason than to learn ‘something’ about the tool(s) being used.

I do what you have done quite regularly, and encourage student to do it as well. To both new and existing users what you have done, in this post, is demonstrate a method of research and self training, if imitated that will yield benefits to ALL 3D modelers.

Matt Lombard’s Puffy Box was another great demonstration of a similar technique; everyone following that challenge HAD to have learned something.

Both of you should be applauded for providing the forum and making the effort to provide the useful information you do!

Matt said...


Wow, thanks so much for taking the time to do and document this. I would have been very interested in the results of the rounds testing, since that was the area where I had the most difficulties when using direct edit techniques.

I believe what you have shown here is the reason that direct edit has not seen more acceptance, and why I believe direct edit is going to be a tough sell to history based users. It's true that you were working on imported data, but it's also true that the results of working on native data would be little different.


Thanks for the plug! I was kind of surprised by the turn out for the Puffy Cube. I didn't think that we'd get 30 unique solutions to the problem.

blake said...

Hey Paul,

We just tried your benchmark in SpaceClaim, and it was easy to get elegant results for edits 1-13 on our recreation of your part. We need the actual model for the final test. We could not reproduce some of the problems you mention.

As you point out, with these types of topological changes, there are many arguably reasonable results to each edit. The key is being able to switch between results easily.

Please feel free to validate your findings with us. We’d be delighted to work with you to produce true apples-to-apples, expert-to-expert comparisons. Our own benchmarks show CoCreate to be the second-most nimble direct modeler next to SpaceClaim.

Co-Founder, SpaceClaim

Paul Hamilton said...

Good comments :<)
I will send you the file, and will be glad to post your results.


John Wright McCullough said...


This looks like a good set of test conditions for simple faces. If you have more time to 'waste' I'd be happy to get you set up with Kubotek KeyCreator.

I'd like to get a copy of your STEP model also (jmccullough at

Marketing Manager, Kubotek USA

Paul Hamilton said...

Sorry I didn't include Kubotek. I just don't have easy access to your software. I could set it up on my machine at my home office if you want. I will send you the file. Your welcome to send results back.


Roberto Ciarloni said...

As I have told in another site I think that capability to edit imported files from history-free modelers has been greatly exaggerated. Make topology changes in history based systems is easy because they are based just on defined and (almost) predictable boolean operation. Doing the same in history-free systems is MUCH more difficult because there is no theoretical setting behind.

Paul Hamilton said...

Can you make topology changes to an imported model in a history-based system? There is no "theoretical setting behind" features in imported data. You can add features, but how to you edit existing data? This is why direct editing is being added to history-based systems.

I think your use of the term "easy" is a bit of a stretch. With history-based modeling, features behave as they are programmed to behave at the time of their creation. As long as this behavior supports the part throughout it's lifecycle, you are good. if the behavior needs to change, especially late in the lifecycle, it can be very difficult.


Roberto Ciarloni said...

Paul let me clarify : I am a fan of direct editing since several years ! Nonetheless , having implemented both history-based and history-free algorithms I see the difference and this difference is confirmed on every system I have tested. To be honest I did not test Co-Create and I feel, based on your comments and based on the fact that they are working on it for so long time, that they could be ahead. The problem with Co-Create , as with SpaceClaim is that a complete system need both approaches.

A. Savelli said...

Hello Paul.

Nice test!

I guess some of the results could have been affected by the options and/or by the selection.
But at least you showed how easy and quick is to reach the result.

We would be happy to run the test on our direct editor, aka ISM.
Can you give me the models?

thanks very much
Alberto Savelli (think3)

Paul Hamilton said...

Go to My Profile and email me your email address and I will send it to you.

Mike said...

I've been stewing over this post for a while, not because I don't think you were neutral, but you could do any of the examples you've show just as easily with a history based modeler. SolidWorks has its instant 3D setting that while it doesn't work as slick as CoCreate it's still pretty handy. I think Jon B and I are two birds of a feather here. Unless you're building one off stuff I'm with Jon thinking that CoCreate and SpaceClaim fail miserably without either built in CAM like NX or a file format that can be directly read out into a 3rd party CAM system.

CoCreate does a good job of direct editing but from what I can tell using it most days for the last 6 months is that's about all it does well.

Anonymous said...


Here is another announcement from yet another CAM vendor moving to run inside of SolidWorks.

The days of having many stand-alone products trying to do the job and take the place of say something like NX are quickly drawing to a close and this is especially true when it comes to CAM. You don't get better CAM when you have a stand-alone CAM program as Paul has claimed. What you get with most stand-alone CAM is very weak toolpath chaining, a very modal user interface that fights change and the end result is a G code program that takes to long to create.

I'd like to give CoCreate some credit. I haven't read anyone at CoCreate or PTC claiming that their product is not CAD, where as I've read someone at SpaceClaim saying that they aren't really a CAD product. I have to wonder when this kind of B.S. is finally going to come to an end.

Both CoCreate and SpaceClaim should be doing everything in their power to get powerful CAM to run inside their programs if they want to survive / gain market share. Frankly I’ve never seen a product more poorly marketed than SpaceClaim and their poor marketing has gone on for years now. On the other hand, I do see improvement with CoCreate and the efforts PTC has just started to make... they still have a long, long way to go compared to the marketing job SolidWorks does.

Jon Banquer
San Diego, CA

lee woo said...

Love it! Very interesting topics, I hope the incoming comments and suggestion are equally positive. Thank you for sharing this information that is actually helpful.