The first question is really what does manifold or non-manifold mean?
Manifold is a geometric topology term that means: To allow disjoint lumps to exist in a single logical body. Non-Manifold then means: All disjoint lumps must be their own logical body. Of course that definition is often more confusing so perhaps the best way to think of Manifold and Non-Manifold is this: Manifold essentially means "Manufacturable" and Non-Manifold means "Non-manufacturable". In other words manifold means: You could machine the shape out of a single block of metal....and with a non-manifold shape you could not.
Take a look at the following image, it depicts a simple non-manifold body:
If you have a copy of TransMagic, click here to download this file and load it into your copy of TransMagic.
This file consists of two cubes that were Boolean United along a single shared edge - resulting in ONE logical body. This is a simple yet effective illustration of a non-manifold body - where each block is a "disjoint lump" yet there is a single body. The shared edge between the blocks is the actual non-manifold condition. Since this edge is infinitely thin there is no manufacturing process that could create such a shape as an infinitely thin edge can not be manufactured. In reality, eventually you'd just separate the two blocks.
TransMagic is an example of a non-manifold geometry engine - a math engine where these types of shapes are allowed to exist. There are two types of modeling engines: manifold modeling engines and non-manifold modeling engines. TransMagic, ACIS, CATIA V4, Inventor, CATIA V5 & Pro/E are all examples of non-manifold modeling engines. NX, SolidWorks, SolidEdge and Parasolid are all examples of manifold modeling engines.
Manifold modeling engines are not allowed to represent disjoint lumps in a single logical body. Each lump must be its own body. To see proof of this concept for yourself do the following:
- Load the non-manifold.tmr file into TransMagic.
- Open the Assembly Browser (Tools->Assembly Browser) and note the single part.
- Save this file as a Parasolid *.x_t file.
- Re-load this Parasolid *.x_t file and open the Assembly Browser.
You will notice that a by-product of simply saving the Parasolid *.x_t file out of TransMagic is to separate geometry where necessary to conform to Parasolid's manifold requirement. When using a non-manifold modeling application such as CATIA V5, for example, during the creation of very large and complex parts it is possible that non-manifold conditions get created inadvertently from operations such as Booleans, blending, sweeping, lofting, shelling, etc. When TransMagic takes these very large and complex non-manifold solids and saves them out to a manifold modeling format such as Parasolid - these conditions will necessarily need to be "split" at the non-manifold locations. When solids can’t be created then a surface model is created.
It's simply a matter of communicating two different mathematic models and this splitting cannot be avoided.