CraDen7's picture

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:

  1. Load the non-manifold.tmr file into TransMagic.
  2. Open the Assembly Browser (Tools->Assembly Browser) and note the single part.
  3. Save this file as a Parasolid *.x_t file.
  4. 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.