GrabCAD Tips: The Kernel, Why CAD Systems Don’t Play Well With Others
Quick, what kernel are you running?
If you answered that question immediately, this blog post isn't for you. If like most CAD users you've heard the term "kernel" but aren't sure what it is or why it's important, keep reading.
In fact, if you're like most CAD users, at some point you have struggled to import a CAD model created in a different CAD system. If so, you've run into a kernel problem. In that case, this blog post is definitely for you. Let's start with the basics...
What's a kernel?
The kernel, also called a “geometric modeling kernel” or “solid modeling kernel” is the heart of a CAD system. The kernel is the code that determines how the image you see on the screen is actually described with math. This is important because describing manufacturable shapes in a mathematical representation involves making choices about how each shape is calculated and stored.
Even a simple cylinder, pictured above, can be represented in at least three different ways: a NURB surface, a “periodic” surface or a pair of ruled surfaces that have a pair of common edges. You can imagine the choices a kernel must makes when calculating and storing more complex organic shapes.
Kernels make your life easier
A kernel makes a CAD system easier to use - in fact, it makes it possible to use. A kernel
does all of the heavy lifting in creating shapes. A user might ask a CAD system to punch a hole through an object, but it is the kernel that intersects the cylindrical surface of the hole with the existing object to calculate the new edge curves at the top and bottom of the hole. If the object is an organic shape or the hole intersects more than a few faces this simple operation can involve some serious math. Other very simple instructions such as “hollow out this body for me” or “tell me if these two bodies will touch or interfere when I assemble my product” also require some very sophisticated mathematics and computer science to be performed accurately and quickly. It is the kernel that does this hard work.
But sometimes kernels make your life harder
As you’ve seen, different kernels can have different representations for the same shape. Sometimes the choices are simple and have little consequence, like the choice of how to represent a cylindrical face, and sometimes the choices are complex and have profound consequences, like how to round a set of edges where there are multiple valid possibilities or how to model an edge that cannot be calculated precisely.
These choices and the resulting differences between models created using different kernels make the translation of CAD models a challenging problem. The translation often requires both approximation and reparameterization of geometry. So even if a model is translated successfully from one kernel format to another the model is seldom “exactly” the same.
This translation challenge is sometimes made even more difficult by the feature-based modeling paradigm utilized by many popular CAD systems. Feature-based modeling helps engineers express design intent when creating a CAD model. Unfortunately the feature modeling capabilities in CAD systems are different enough that there are no widely deployed “feature” translators.
What about STEP?
The STEP format was created in part to help solve the problem of translating solid models from one CAD format (and one kernel format) to another. The trick is that a STEP model makes no assumptions about design intent - it doesn't know that the inside of a hollow object is a “shell feature”, it just knows that there isn't any material in this particular space. Because the STEP model is “dumb", there are no problems about disagreeing assumptions - no assumptions, no disagreements. The STEP definition also attempts to describe a geometric boundary representation into which most solid models can be reliably converted. So STEP models are a great way to move data from one CAD system to another, but in doing so you give up some of the information that makes it easier to modify the model. And the resulting model is very likely to include approximations.
The next step - Translation Tips
So now that you know what a kernel is and why it’s important, you may be wondering how you can share your model with someone on another CAD system without using STEP. We’ll dive into that topic in an upcoming blog post and give you some pointers that will help you minimize the hassles of translation.
About the author: (Jon Stevenson)
All posts by Jon Stevenson