Advanced
Boolean Operations
Realsoft 3D
has a very powerful Boolean
featureset that allows the user to create
subtractions and unions of objects in many
ways. Not limited to simply cutting a hole
through an object, RS3D can cut entire scenes
in half and have complex level structures
join together to create very detailed objects.
Most commonly, Boolean operations are used
to subtract one object from another. For
example, a drill cutting a hole into a desk.
But the power of booleans allow us to use
more than just one object. By dropping a
whole series of objects to a level, we can
make multiple cuts into one object:
1/. Create an analytical cube.
2/. Duplicate the cube (Ctrl+D) and size
it so it is a very thin slit, smaller
than the original using the handles. Position
it so it is slightly inside the original
cube.
3/. Drop this thin cube into its own level
(Right click "drop to a Level")
and rename the level: "Cuts"
4/. Select the thin cube in the level.
Make the "cuts" level the current
level (Right click "Make Current")
5/. Turn on Macros/Record (Macro pull
down menu).
6/. Duplicate the thin cube and move it
up slightly. (Do not use the handles to
duplicate - use either the pull down menu,
right click or Keyboard shortcuts Ctrl+A
to duplicate)
7/. Turn off Macros/Record. Press the
"Ctrl+G" key to execute the
macro once. Repeat until you have the
desired number of thin cuts. (say 10)
8/. Make the Root level the current level.
Select the first cube, and the level "Cuts".
9/. Under the Construction tab in the
main toolbar - select Boolean.
10/. Select the AND NOT icon next to operation.
(% key shortcut) Leave all other values
to default and accept.

The Boolean operation now cuts the thin
cubes from the original cube. This is dependent
on the selection order - always select the
object you want to cut FROM, then the object
to be cut OUT.
Note that we can now add object freely
to this "Cut" level and they all
cut out from the original cube. Typically,
if only 2 objects are used in a Boolean
operation, the Cut object is set the attributes:
invisible in wire, and volume inverted.

By dropping these objects to a level before
applying the Boolean, the level inherits
these attributes and all objects underneath
inherit the layers properties. Hence we
can also change the layers color to change
all the cut colors. This ability to add
objects to the level without having to set
the "inverted volume" attribute
allows us to take this example further:
Adding materials to a cut object level
allows us to create all sorts of interesting
effects - For example, having a brick outer
wall, then cutting holes in the wall with
wood mapped cubes would yield a wooden window
sill in the walls.
Its important to note that booleans can
have booleaned objects. To create a piston
ring - one creates a cylinder, cuts a hole
in the middle, then uses that object to
cut out from another cylinder, then duplicating
the first cut ring to create a piston with
a ring cut and piston ring inside. Such
nesting of booleans is limitless - cutting
and shaping an object until the final form
is realized.
Primarily analytical objects are used as
they are closed shapes and the volume is
easily inverted. The polyhedron shape is
of particular use - as its RS3D's answer
to a freeform shape. By using polyhedrons
creatively, one can create almost any shape.
Piston
Example file: download here.
Attached is a relatively simple scene making
good use of Boolean operators. Starting
from a simple cylinder we "chiseled"
out the form of a piston. Thinking in terms
of subtraction is the key - How you want
to "Cut" the object to obtain
the shape you desire. Often this means cutting
the cut tool - as with this scene. Examine
how chamfers were cut from the shape with
cones then cut again from the piston cylinder.
Note that this object was created solely
from Analytical objects - predominately
cylinders.
 
A useful technique for modeling complex
forms such as this is to duplicate many
of the objects from the original cylinder.
This creates objects in the correct transform
space and often only requires simple scaling
or rotating.
When attempting to visualize the shapes
inside a Boolean - creating the cut shapes
OUT of the Boolean level is useful, placing
them in the correct location, then dragging
the icon into the "Cut" level.
Boolean representations can often be quite
confusing and the Wire and Open GL representations
quite inaccurate. Remember that these are
merely Previews of the object - renderings
show the final form. Working in Wireframe
is by far the fastest method with Booleans
- as the Open GL view is constantly being
updated, computation times can sometimes
be too slow for complex booleans. Working
in wireframe is best with complex scenes.
Under the object properties/wire tab of
a Boolean level is a tag "AND wireframe
off". This can be set to turn off the
automatic Boolean wireframe representation
if needed.
Problem
solving booleans
Occasionally, after much cutting and pasting
between levels - errors can appear. These
errors can either be strange artifacting
- which is quite possibly the result of
two shapes exactly on top of each other.
Or booleans looking completely wrong -If
this is the case, the easiest method to
check your objects is to drag half of the
objects out of the Boolean level and render
(Often the wireframe representation is enough).
If the Boolean looks OK then slowly add
various shapes back under the boolean level
until you can pinpoint which shape is causing
the problems (drag the icons out of the
Boolean level and turn off render.) The
problems are most likely due to having invert
on - check the problem objects for unusual
attributes under the Object properties/Gen
tab.
Notes:
With many operations in any 3D package
- one must be very careful as to placement
of cutting objects. Sometimes duplicates
may appear unknown to the user and strange
artifacting may result as two exactly the
same objects may be cutting another - finite
tolerance of computers allows us to place
objects in exactly the same positions, but
when cutting two objects - it is imperative
that the cut object is slightly away from
the edge or corner to allow at least some
cut or not cut right through with strange
results. This is also applicable when mapping
scope or finite materials.
When mapping Boolean objects - it is often
a good idea to drop the Boolean level to
another level, then apply the material.
|