pymel.core.modeling.polyBoolOp

polyBoolOp(*args, **kwargs)

This command creates a new poly as the result of a boolean operation on input polys : union, intersection, difference. Only for difference, the order of the selected objects is important : result = object1 - object2. If no objects are specified in the command line, then the objects from the active list are used.

Flags:

Long Name / Short Name Argument Types Properties
caching / cch bool ../../../_images/create.gif ../../../_images/edit.gif
  Toggle caching for all attributes so that no recomputation is needed.
classification / cls int  
   
constructionHistory / ch bool ../../../_images/create.gif ../../../_images/query.gif
  Turn the construction history on or off (where applicable). If construction history is on then the corresponding node will be inserted into the history chain for the mesh. If construction history is off then the operation will be performed directly on the object. Note:If the object already has construction history then this flag is ignored and the node will always be inserted into the history chain.
faceAreaThreshold / fat float  
   
frozen / fzn bool  
   
mergeUVSets / muv int  
   
name / n unicode ../../../_images/create.gif
  Give a name to the resulting node.
nodeState / nds int ../../../_images/create.gif ../../../_images/query.gif ../../../_images/edit.gif
  Defines how to evaluate the node. 0: Normal1: PassThrough2: Blocking3: Internally disabled. Will return to Normal state when enabled4: Internally disabled. Will return to PassThrough state when enabled5: Internally disabled. Will return to Blocking state when enabledFlag can have multiple arguments, passed either as a tuple or a list.
object / o bool ../../../_images/create.gif
  Create the result, or just the dependency node (where applicable).
operation / op int ../../../_images/create.gif
  1=union, 2=difference, 3=intersection Common flags
preserveColor / pcr bool  
   
useThresholds / uth bool  
   
vertexDistanceThreshold / vdt float  
   

Derived from mel command maya.cmds.polyBoolOp

Example:

import pymel.core as pm

# Union
pm.polyCube( n='Cube1', w=1, h=10, d=1 )
pm.polyCube( n='cub1', w=3, h=3, d=3 )
pm.polyBoolOp( 'cub1', 'Cube1', op=1, n='result1' )

# Difference
pm.polyCube( n='Cube2', w=1, h=10, d=1 )
pm.polyCube( n='cub2', w=3, h=3, d=3 )
pm.polyBoolOp( 'cub2', 'Cube2', op=2, n='result2' )
pm.move( 5, 0, 0, 'result2' )

# Intersection
pm.polyCube( n='Cube3', w=1, h=10, d=1 )
pm.polyCube( n='cub3', w=3, h=3, d=3 )
pm.polyBoolOp( 'cub3', 'Cube3', op=3, n='result3' )
pm.move( 10, 0, 0, 'result3' )