Kernel Confusion and Legacy Models

Evan Yares left a comment on my earlier post (“Inventor Fusion and SolidWorks Confusion“), attempting to explain why SolidWorks could not switch to the Dassault V6 modeling kernel. This is what he had to say:

“There are very good reasons. I don’t think they’re beyond your comprehension — but they may be beyond your experience. Talk to someone who has done kernel-level interoperability work, and ask them how easy it is to replicate the weirdnessess of one kernel in another. The issues of surface parameterization and modeling tolerance alone are enough to make most developers run away screaming. Dassault owns both the ACIS and CATIA modeling kernels. Either one could be ‘bolted in’. Neither one would provide support for legacy SolidWorks models.”

When someone like Evan says something, I listen. He comes with a lot of experience in the CAD software industry. However, on this particular point, I would beg to differ.

IronCAD offers its users a choice between two modeling kernels – ACIS and Parasolid. Their software works perfectly with both kernels. IronCAD does not maintain two file formats, one for each modeling kernel. This is because the job of a modeling kernel is end up with a valid waterright solid model, basically trimmed NURBS surfaces stitched together. A modeling kernel has very little to do with the presence or absence of parameters or history that makes up the recipe which cooks up that solid body, if any at all. Tomorrow morning the developers at IronCAD could very well add a history tree to their software and still continue to use both modeling kernels.

IronCAD is a perfect example of how a solid model created by the ACIS modeling kernel can be converted into an exact same solid model as defined by the Parasolid modeling kernel, and vice versa. IronCAD users are even known to switch between modeling kernels, because one does blends better than the other. In fact, I believe that IronCAD is the best way of transfering data from modeling systems that use ACIS and Parasolid, as compared to using neutral file formats like IGES and STEP. Their programmers have figured out a way to map data perfectly between ACIS and Parasolid.

I may not have a lot of experience in modeling kernels, but I do happen to have some experience in file formats and the issues that surround them. But in this case, a little bit of common sense was more than enough to figure this out. I believe that the programmers at SolidWorks are at least as competent as those at IronCAD. This SolidWorks-Dassault kernel discussion is a business issue, not a technical one.

And talking about SolidWorks wanting to support legacy files is a joke. They don’t even save to earlier versions of their own software. The excuse given is that they add new features in every new version that cannot be broken down into older features. Anyone with half a brain and a little knowledge of the SolidWorks feature tree will be able to see how much water that argument really holds.

For argument sake, lets accept the SolidWorks argument at face value. I have another question. Why cannot SolidWorks save to an older version as a dumb solid? There can certainly be no reason for not doing so. If a SolidWorks 2009 user wants to send a model to a SolidWorks 2008 user, he needs to export to a neutral format which can then be imported into the older version. This introduces huge problems of missing geometry, gaps and what not. Instead of putting their customers though this, doesn’t it make sense for SolidWorks to spit out an older version file with the model as a dumb solid. At least the user of the older version will not have to worry about the integrity of the data that he has received from another SolidWorks user.

And this is true for all parametric modeling systems, not just SolidWorks. We all know why these CAD vendors do this. They actually shove their “valued” customers down a path of great risk in the hope that they will upgrade to the latest version or buy a subscription.

Trust me, you don’t want to get me started on this.