BREP Booleans Power Solids Operations - Basic

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:

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.  

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


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.  Note that this does not yet perform the Boolean
Operation it is just constructing the Tree.  Hitting the "OK" button will produce the
result and optionally hide the original objects.  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 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.