Tuesday, February 9, 2010

SolidWorks, the CATIA Kernel & Direct Modeling

In my last blog post: Technology and the Product Development Process, one of the readers asked a great question:
  • Paul, I know it is coming out in bits and pieces, but at SolidWorks World there is a good deal of reporting about solidworks enhanced direct editing, and even some speculation that solidworks is switching to the catia kernal. What would this indicate about the future of direct modeling, and cocreate's place within it?
This question opens up many good discussion points, and I apologize in advance for the length of the post.

It is interesting to see discussion about the CATIA kernel in context with direct editing. A geometry kernel has little to do with whether a CAD system is history-based or history-free or has direct editing or not. Direct editing does demand more of the kernel than history-based modeling does, but I see no evidence that the CATIA V6 kernel brings anything special to direct editing. CATIA certainly has direct editing capabilities but much of what you see in CATIA Live Shape is very similar to Instant3d in SolidWorks and Dynamic Editing in WildFire. As stated in this video: CATIA V6R2010 User experience, CATIA Live Shape allows you to “manipulate feature parameters directly on the geometry itself instead of editing through panels and keyboard input” - you are not directly editing geometry but rather dynamically manipulating feature parameters that are managed in the tree.

So what about direct editing in SolidWorks and the future of direct modeling?

People still seem to have the idea that somehow we are going to be able to combine these two technologies and get “the best of both worlds”. Since it is not possible to “record history” and “not record history” at the same time, there are only a few approaches that developers can take. Several CAD companies have already made attempts at combining these technologies and several others continuing to work on it – but so far none have been able to provide “the best of both worlds”. First of all, what is “the best of both worlds”? Here is my attempt at an answer. Others are welcome to add to the lists:

The best of history-based:
  • Some claim that the history tree is the best way to capture design intent (I disagree, but that's personal preference).
  • Some may claim that the history-tree is the best way to manage and maintain associativity (however associativity does not require a history-tree).
  • History trees allow for faces to be consumed by an edit, and at some point in the future these faces can be exposed based on another edit – I guess this could be considered a best, not sure.
  • History-based CAD forces a very specific modeling process and behavior. This could be good in some cases.
  • Most of these systems are very mature with much depth and breadth in functionality – although this has nothing to do with being history-based, it is relevant.
What are some of the other bests of history-based modeling? I’m running out of ideas. The list used to be much longer but it continually gets shorter with the rapid advancements in history-free modeling.
The best of history-free:
  • No need to throwaway models due to bad trees – all geometry is of value
  • No regeneration/re-compute issues
  • Can manipulate geometry with no regard to how it was created in the first place
  • Natural in-context, top-down, bottoms-up, what-ever design (flexibility)
  • No need for part modeling and/or assembly modeling modes
  • No restrictions or complications related to the use of certain modeling and editing functions (unite, subtract, intersect)
  • Add and remove design intent as needed – on native or non-native geometry: Some Examples
  • Easy to reuse and leverage ANY geometry from ANY source, full interoperability
  • Large assembly modeling/management (simply much less data to manage)
  • What-you-see-is-what-you-get
Those are a few of the bests of history-free modeling. Of course not all history-free CAD systems are as mature as others, so the level at which you can realize these bests today will vary – although the technology is rapidly improving. What’s interesting here is that IF there is any hint of a history-tree in the CAD system, you will never realize most of the bests in the history-free list.
Equally, if there is no history tree you will never… I can’t think of anything. Maybe you will never be able to consume a face and at some point get it back.
Below is a quick review of some of the industries attempts at getting “the best of both worlds”:

Siemens, (NX, Solid Edge) – They simply have made the two technologies, (history-based/history-free) available under the same UI. In this case it is still one or the other. And when you choose history-free, the system lets you know that the tree and all the intelligence built into the tree will be lost – forever. If the history-free capabilities were more robust and complete most users may not care, but that is not the case - yet. In the history-free side of the product, Siemens has done a nice job at combining parametric control with history-free modeling with their Live Rules, but they have not combined history-free with history-based.

Autodesk, (Inventor/Fusion) – Inventor has already had direct editing for several years. Fusion is just another history-free tool, although not a very good one - yet. The Change Manager will recognize direct edits and translate them back to the history-tree in the form of a feature change or an added direct edit to the bottom of the tree. In the end, all of this functionality may be under one UI and transparent to the user, however the end intent is to maintain the history-tree. Unfortunately the Change Manager will never resolve problems that may show up in the history tree, and because they are maintaining the history tree most of the benefits of history-free modeling listed above will never be realized. The Change Manager functionality will also result in design intent being automatically changed, i.e. lost.

SolidWorks – SolidWorks has also had direct editing for a few years now. I haven’t seen this new stuff in person, but I assure you that there is nothing magical about it. They are either throwing away the history tree, or they are keeping it intact. Those are the ONLY two choices that are available. Most likely they are keeping the history tree intact, as SolidWorks will probably always be history-based. The new stuff is either an extension of Instant3D or it is direct editing that is, like Fusion and the Change Manager, being captured in the tree either as a feature edit or an added direct edit in the tree. As with Fusion and the Change Manager, most all benefits of history-free modeling will not be realized – as there is still a history tree.

PTC, (Pro/ENGINEER) – Even at PTC there is talk about combining these two technologies. In WF5 we are starting to see much more direct editing. Again, however, the same “laws” apply. Either the history tree is thrown away or it is kept intact. With Pro/E I am quite sure there will always be a history tree no matter how much direct editing they put into the system – and again, most of the benefits of history-free modeling will not be realized.

IronCAD – Ironcad was the first CAD system on the market to make a good attempt at combining these technologies. Although it was only recent that they exposed the history tree to the UI IronCAD has always been history-based, even before it was IronCAD (Trispective). Notice the references to the "tree": Introduction to IronCAD 2009. Their use and management of 3D primitives (3D shapes/features with no sketch) make it possible to directly edit these features, the edit simply changes the primitive. The primitives must be ordered in the tree. If the model is a single feature model (history-free) the direct editing capabilities can apply to the entire model. These direct edits are limited only by the robustness and predictability of the direct editing capabilities, as is the case with direct editing in any CAD system.

In all of the cases mentioned above the history-tree is fundamental to the system, regardless of any add-on functionality or fancy user interaction. As such most of the bests of history-free modeling cannot be realized. I understand that many of the history-free examples on the market still do not provide the depth and breadth of many of the mature history-based CAD systems, but this is quickly changing. History-based modeling is mature. We may have already hit the limits of what we can do with this technology. On the contrary, even though we have been playing with history-free modeling for many years, there is still so much more that we can do with it. It is relatively immature.

SpaceClaim posted record growth numbers for 2009. Kubotek claims that 2009 was their best year ever. As part of HP, CoCreate and now PTC CoCreate, I can tell you that we have never experienced the level of interest in the product and growth that we are experiencing right now. CoCreate's place in this market is very solid. To think that some combination of history-based modeling and direct editing is going to slow this growth is quite short sighted. The future of history-free modeling is very bright and there is nothing you can do with a history-based CAD system that will change that. In reality the only way we will ever get even close to “the best of both worlds” will be to start with something that is fundamentally history-free.


For more information on CAD geometry kernels please refer to a more recent article: The Geometry Kernel and What it Means to Product Development.