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 Toggle caching for all attributes so that no recomputation is needed. classification / cls int constructionHistory / ch bool 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 Give a name to the resulting node. nodeState / nds int 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 Create the result, or just the dependency node (where applicable). operation / op int 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' )