Monday, October 12, 2009

Predictability With Direct Editing

I have written a few times about the need for predictability and getting expected results with direct editing. In the recent past I have received a few questions about what I am referring to with regards to “predictability”. So with this post I hope to explain this a bit more.
Direct editing technology gives us the ability to interact directly with geometry. The alternative is "indirect editing” which involves parameters, dimensions, variables and so on.
When we use direct editing technology we are usually moving geometry around by directly selecting the geometry that we want to move and then defining a transformation by pulling, pushing or rotating about a direction or axis. The CAD system then takes over. It should provide results that the user is expecting, but that is not always the case. When pulling and pushing on faces there are usually a variety of solutions that can be derived. The big question is; what happens to the adjacent faces of the face that we are moving. Are they stretched? Are faces added or removed? What happens to the pulled or pushed face? Does it retain its shape and size or does it change?
For this article I thought it might be best just to create a video of a simple example. You can easily recreate this example in your favorite CAD system and compare direct editing results. Direct editing is now available in both history-based systems (parametric modeling) and history-free systems (direct/explicit modeling). So you can try this example in most any CAD system. Be careful not confuse functions like “Instant3D” or “Dynamic Modification” with direct editing. These type of functions are dynamically manipulating parameters, dimensions, variables and sketches – i.e. “indirect editing”.
I’ve actually tested this simple example in about 7 different CAD systems, but I will only show you the results using CoCreate Modeling since I now represent this product. Other experts can try the example on their system of choice. The key is to use the default settings that the CAD system gives you. There are certainly options to functions that will give different results. What I was interested in while doing the test was to understand the default behavior of the CAD tool.
Here are the steps to create the example:
  • Create a block. We are not concerned with size for this example. Only topology.
  • Taper two adjacent faces on the side of the block. Any angle will be fine
  • Add a round/blend to the edge joining the two tapered faces
  • Add a round/blend to the top back edge, any size as long as they don’t touch each other
  • Add 45deg chamfer, width to be less than round/blend radius
  • Add a hole through the center of the block
  • Add a chamfer to the top of the hole
Hopefully the topology of your part matches the one in the picture.

Now let’s try some direct editing.

Try this example on your favorite CAD tool. Can you get expected and predictable results? Do you have to use box select? Do you have to use other options to the command to get it to work or did the default behavior deliver the expected results?
One of the things that you may have noticed in the video is that CoCreate Modeling understands what blends and chamfers are from a mechanical design point of view. It does this by interrogating the B-Rep solid model and identifying conditions that are important to mechanical design. It is not just a geometry making machine. This is where “maturity” comes in with regards to a Mechanical CAD tool (perhaps another topic for a future article). Unfortunately many CAD tools are just geometry making machines with little regard to what engineers are really trying to do.
Of course this simple example and the edits I make are easy to do in a history-based system by changing the base feature, IF you created the features correctly and in the right order to start with, and IF the part was not imported from another CAD system. These are two of the key reasons for having direct editing in the first place.
I tested this example on 6 other popular CAD systems. I was not impressed at all. With one very popular CAD system I could not even create the part - when I tried to add the chamfer it completely failed. So I could not even try the direct editing tests. Too bad, I thought CAD had progressed beyond that. I also noticed that on many of the systems I tested, the chamfer around the blend was very inaccurate and tangencies were not being maintained through the edits. Amazing!
The next level of “predictability” to review is when we start changing topology during a direct edit. For example; move one of the tapered side faces in to the point that it intersects the hole. In some CAD systems, the direct editing functionality won’t allow this type of edit. In others it may work but with some strange results. Then in others you may get what you expect. The technology is certainly improving rapidly.
Anyway, have fun with the example and please post your findings and results. Were the results predictable?


blake said...

Nice benchmark. Everything checks out beautifully in SpaceClaim, and the edits all flow well in real-time.

-Blake (a SpaceClaim founder)

jamie said...

Hi Paul

I had a go in spaceclaim (2009 sp3) and it did exactly the same as cocreate apart from the removal of the hole, I needed to select hole and chamfer. I would like to see the same editing done to the whole part. Spaceclaim acts differently when you move the faces after the part is mirrored not as predictably as only half. Can you post a video of cocreate moving the faces after you have mirrored I would be interested to see if cocreate maintains its predictability? Thanks for the interesting video.


Anonymous said...

I would expect CoCreate to come out on top when it comes to predictability. CoCreate should be the most robust in these tests as they've been at it the longest.

It's just as predictable that CoCreate in V17 is doing everything possible to copy SpaceClaims's Push / Pull user interface. From what I can tell in the YouTube videos the coming CoCreate V17 Push / Pull user interface still isn't anywhere near as clean and as nice as SpaceClaim's Push / Pull user interface.

Where CoCreate has really taken the lead is in how PTC has positioned CoCreate next to Pro/E. PTC has come out and said history based modeling has severe limitations and where one needs to use explicit (direct) modeling instead.

There is a lot SpaceClaim marketing could learn from how PTC is positioning CoCreate vs history based modeling systems. PTC doesn't pretend to offer a complimentary modeling system to history based modeling like Spaceclaim tries to do rather they attempt to determine which system is better for the customer. I have no doubt that when it comes to machining job shops that have to work with numerous types of CAD files from different CAD systems that direct modeling is the best choice.

Jon Banquer
San Diego,CA

Paul Hamilton said...

Blake, Jamie, thanks for reporting back.

Jamie, I might get some time to capture some video. With CoCreate the mirror function makes no difference with how the future modifications work. You can still pull on any of the faces with the same results. It is certainly possible to keep symmetry and other types of conditions, but it is not the default. The point with direct editing is that a model modification should not be constrained or impacted somehow by past modeling operations. (design operations - yes, modeling operations - no) (I guess I might have to explain that someday)

Thanks for the comments so far.

Paul Hamilton said...

Actually CoCreate has had push/pull for many years now. What is new is the dynamic update of the model. Every CAD company is implementing this dynamic update whether history-based or history-free; now that we have hardware that can support it. Certainly SpaceClaim was one of the leaders in this - (although they were followers in direct modeling :) ).
Thanks for the comments.

Anonymous said...

"Actually CoCreate has had push/pull for many years now. What is new is the dynamic update of the model."


I'm trying really hard to imagine Push / Pull without "dynamic update" and I'm having a hard time doing so.

Perhaps this is similar to imagining SpaceClaim's Direct X graphics being anywhere close to Open GL.


Jon Banquer
San Diego, CA

3dmad said...

How do you get "part mirror" command started after preselecting the part?

Paul Hamilton said...

3Dmad, in the video I used the new v17 mini toolbar to access the Reflect function. With the current version I have assigned Reflect to a hot key.

Kevin De Smet said...

I don't really think it's to be expected that if you select just one face, for example of the hole, that the chamfer comes along.

If you select both the hole and chamfer face it can be enlarged correctly, I'm using Solidworks.

Moving the top face up and down seems like a no-go though.

Paul Hamilton said...

Thanks for trying it out and sharing. What if the adjacent faces were blends, should they move? I personally think that blends and chamfers should be treated as such. I guess we can agree to disagree, and that is why there should be options for either.

Be sure to check out this other example: Predictability With Direct Editing - Part II