Power Solids Boolean Tree Basic Usage

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):

  1. Select an Object as the Tree Root
  2. Select PowerBoolTree from the nPowerSoftware menu or type it in the command line
  3. Choose the desired Boolean operation for the first operand (Union, Intersection, Difference, Merge).
  4. Set the Filleting options if desired.
  5. Use the "New Operation" button to start picking objects to add to the operand.
  6. Repeat steps 3-5 to add all operands.


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:

  1. Operation Number - this number specifies the order the operations are performed.
  2. Tree Number - this number specifies what tree the node belongs to.  Typically
    several operations are used to build up a single object in a tree.  Then optional
    trees may be combined.
  3. Operation Type - this character string defines the operation being performed. 
    supported operations include:
  4. Four Fillet Flags - specifies which edges are to be automatically filleted after
    the current Boolean operation.  You can select any combination of these flags.
    At least one of these flags must be specified to enable the automatic filleting.
    The flags are ordered as follows from left to right:
  5. Fillet Radius - Radius used in the automatic filleting operation.
  6. Blend Scale - (valid range 0.1 to 2.0) Used to scale the tangents when a Blend
    Curve cross section is desired.  The following is a general guideline for determining
    blend scales:
  7. Cross Section Type - specifies what type of cross section to use in the fillet.
    The following are supported:

 


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.