Boolean operations…
05-Jul-95 12:18:26
Sb: #177695-Boolean operations…
Fm: Forcade & Associates 72007,2742
To: Andrew McClary 71234,35
Andrew,
There is a major difference between how programs like AutoCAD do booleans and
how 3DS does booleans. This effects the chances of successfully generating the
new surface. AutoCAD will only do boolean operations on objects created from
solid primatives and simple extrusions. 3DS will do booleans on any objects
(or at least attempt to).
When doing booleans with solids, AutoCAD has an exact knowledge of the form of
the original pieces and can easily predict the boolean result. Solids have
know forms, volumes, and definate insides and outsided. They always have fully
closed surfaces. AutoCAD cannot do booleans on arbitrary surfaces. When it
comes time to put a mesh surface on booleaned solids, AutoCAD will seperatly
generate meshes for each surface. The vertices for each surface may not line
up and may not be connected. You will have to manually move and weld vertices.
3DS must analyze and attempt to find the surfaces of completely unkown forms
and must figure out where the inside and the outside of the surfaces are.
Sometimes it doesn't get it right. Several things can complicate the issue.
Objects in 3DS don't have to be closed. They can be deliberately open or there
can simply be inadvertant gaps in the mesh. This can confuse the routine that
determines where the insides and outsides of a form are. Objects with multiple
elements can also have this effect, expecially if the elements overlap. Any
overlapping faces in the mesh will also confuse the boolean operation. Long
thin faces are probably a problem because of rounding errors.
Unify/Normals has similar problems with complex or damaged mesh surfaces. It
will handle faces with mixed up faces. That is what it is designed for, but if
there is a gap in the mesh or overlapping faces or multiple elements, then
Unify/Normals will also get confused.
3DS's boolean function, when it fails, may create gaps or overlapping faces.
If you do a subsequent boolean, it will compound the problem and Unify/Normals
will not help.
When you do a complex boolean in 3DS it is often best to do it in stages, one
element at a time, checking the mesh carefully between steps for errors. Save
a new version of the file between each step. This lets you go back to any
given step and start over. You want to do this because you may not catch an
error until some later step.
I do hope that Yost Group will develop a smarter boolean function for R5 that
has less tendancy to trash a mesh when it fails. I doubt that there will be a
revolutionary improvement because of the difficulty of doing booleans on
arbitrary mesh surfaces, but who knows.
This is not meant as a flame at you, but just to let you know that there is not
way that AutoCAD and 3DS can just "share code" for booleans.
Terry Gilbert
Forcade & Associates