Power Solids for Rhino has a Boolean Tree that is maintained for the duration of the Rhino session and then saved into the database for subsequent sessions. The Boolean Tree describes how to combine solid and non-solid primitives (surfaces and polysurfaces). There is an automatic filleting option that will produce fillets for intersection edges of the Boolean, Operand Edges, Operator Edges, All Edges or any combination of the first three three. The Boolean Tree can be used to perform Solid Boolean operations and to do surface Merge to create a closed solid from a set of surfaces that enclose a volume. The Boolean Tree Dialog is dockable (it is docked by default) in order to set up a parametric environment where design editing is facilitated. With the Boolean Tree dialog always visible, the design history (of the Boolean operations) is readily available for easily modifying Boolean operations, selecting components in the Boolean Tree, applying fillets, etc. If you have the Power Boolean for Rhino product, it is possible to create a Rhino Mesh using PowerBoolTree. The mesh can be created from the result of a NURBS Boolean or by doing Booleans using Meshes instead of NURBS.
Additional Information is for Power Boolean Tree Usage:
PowerBoolTree Dialog Overview:
The PowerBoolTree dialog is docked to the right
side of the Rhino window by default. It can be undocked and moved
elsewhere by selecting the dialog title bar (top of the dialog) and moving it
away. It can be docked again by selecting the dialog by the title bar and
moving it back to the menu bar. The first time you run PowerBoolTree,
it will dock this hierarchy dialog on the right hand side. It will remain
there for convenience until it is moved. The basic PowerBoolTree hierarchy
dialog is shown below. We will describe each of the items in sections
below. Then we will walk through some example usage.

PowerBoolTree Dialog Details:
Boolean Tree Root:
Boolean construction always starts with a Boolean tree. The Boolean tree
object is the
root of a hiearchy of Booleans. When you run PowerBoolTree the first time
in a session
with a empty model it will automatically create a Boolean tree.
Adding / Removing
Operations:
The general sequence of Boolean construction is to first choose the type of
operation
(i.e. Union, Difference, Intersection, etc.) and then click on the "New
Operation"
button. Clicking on the "New Operation" button will create a top
level entry in the
hierarchy panel of the dialog; they will be numbered from 1 (the Tree Root) to
N
(the last operation performed). If you wish to remove an operation, select
the
operation in the hierarchy panel, and then click on the "Remove
Operation" button.
Boolean Update:
If the "Automatic Update" check box is turned on, you will also see
the Boolean
operation performed immediately on the selected objects in the display.
The
Boolean objects will be shown in grey to indicate the result of the
Boolean
operation. The "Automatic Update" option is on by default.
If you choose to
turn this option off, you can use the "Update Boolean" button to view
the Boolean
result. You may choose this manual update process if your Boolean tree
gets extremely
complex.
Meshing:
If you wish to choose a mesh result for your Boolean operation, click on the
"Meshing"
button. For more information on the options, see Mesh
Booleans
and
Mesh Creation
from NURBS Boolean.
Adding / Removing Objects:
The "Add Objects" and "Remove Object" buttons are used to
update the objects
participating in the Boolean operations. When initially creating a Boolean
operation,
you are automatically put into the "Add Object" mode; thus any object
you select will
be automatically added to the Boolean operation and listed in the hierarchy view
under
the active operation. To remove an object, select it in the hierarchy view
and then click
on the "Remove Object" button.
Automatic Filleting:
To facilitate filleting of Booleans, the "Automatic Filleting" button
is available on the
PowerBoolTree dialog. For more information on automatic filleting see Filleting
Operations.
PowerBoolTree Basic Usage (Single Tree):

Set of Closed PolySurfaces used in the PowerBoolTree command.
Pick the Large Box
as the Tree Root and then start the PowerBoolTree command using the nPower
menu, clicking the PowerBoolTree Button, clicking on the PowerBoolTree button in
the
PowerBoolTree dialog window, or by typing "PowerBoolTree" into the command
line. For
convenience, the PowerBoolTree dialog is docked on the right side of the Rhino
window
so that you can view the history, select objects in the tree, or activate the
PowerBoolTree
command.

Initial Dialog - Select "New Operation" to Start Picking Objects for First
Operation Node in the Tree. The Operation performed is volumetric Union
in this case. The other volumetric operations include Difference,
Intersection,
and Merge.

You can then select one or more objects to be used in the operation. In
this case we
select only the Extrusion on the top for our Union. When you are done
selecting hit the
"Return" key to go back to the Dialog. Different "Operation
History" options are
available depending upon what you want to do with the original objects and the
Boolean tree.
They options are as follows:

Here is what the Dialog Looks like after the Selection. Note that the user
can choose
five different Accuracy settings for the Boolean Operations and subsequent
fillets
using the Boolean and Fillet "Accuracy" pull down. The list contains the
following
information left to right:

There are different options available for filleting each operation. First
we'll fillet
the intersection of the operand and operator with a radius of 0.4 shown below.
To do this, select the operation in the list box and then click on the
"Automatic Fillet"
button to bring up the dialog above. Then in the Automatic Filleting
dialog select the
"Intersection"
and modify the Radius to 0.4. You will note that the values change in the
list
box after you complete the dialog and click "OK".

Here you can see the small fillet along the intersection of the two objects.

When we select "All" edges to be filleted it produces this result.

NOTE: If an operation is selected in the Boolean
hierarchy panel, modifying the
Operation type will edit the operation. To prevent this from happening select
one of the objects before creating a
different kind of operation.

We will now add a difference operation to Tree #1. Select the desired
operation in the
list box and then hit the "New Operation" button to start picking.

Here we pick the three cylinders for the Difference operation.

We can expand/contract the tree and see the objects by name by clicking the [+]
or [-]
in the
list box. You can see the three cylinders. If you wish to identify
the objects by
name, you will need to assign a name to them. You can use F3 to get the
Object
Properties Dialog in Rhino. You can also select the objects in the list
and the
corresponding object will be made visible and highlighted on the screen.

Here is the result of the difference with 0.5 Radius
fillet applied to the intersection edges.

Here is the result after creating another Difference operation with a Linear
Cross section on the
fillet surface.
Now go to the "Boolean
Advanced" section to see how we complete this object using multiple
trees and Booleans between Trees.