Returns the required counts on the specified objects.If no objects are specified in the command line, then the objects from the active list are used. In MEL, the values are returned in the same order as the flags are set. Under Python, there is no concept of argument ordering, so the items are returned in a dictionary keyed by the name of the flag. In Python, if only one item is requested, then it will not be returned in a dictionary.For user convenience, if no flag is set, then all values are echoed. All flags (except -fmt/format) are in fact query-flags. For user convenience, the -q flag may be ommitted. Some comments for non-formatted output :3d bounding boxes are returned as 3 couples of floats, 2d ones as 2 couples of floats.if a bounding box is queried and cannot be computed (for example the component bounding box when no component is selected, or 2d bounding box for and unmapped object) 0 is returned for each array element, so that indices in the output array remain consistent.intvalues (queried by topological flags) cannot be mixed with floatvalues (queried by bounding box flags). Thus if no flag is set, only intvalues are returned.
Long name (short name) | Argument Types | Properties | |
---|---|---|---|
accurateEvaluation (ae) | bool | ||
|
|||
activeShells (activeShells) | bool | ||
area (a) | bool | ||
|
|||
boundingBox (b) | bool | ||
returns the object’s bounding box in 3d space as 6 floats in MEL: xmin xmax ymin ymax zmin zmax, or as a tuple of three pairs in Python: ((xmin,xmax), (ymin,ymax), (zmin,zmax)) |
|||
boundingBox2d (b2) | bool | ||
returns the object’s uv bounding box (for the current map if one is not specified) in 2d space as 4 floats in MEL : xmin xmax ymin ymax, or as a tuple of three pairs in Python: ((xmin,xmax), (ymin,ymax), (zmin,zmax)) |
|||
boundingBoxComponent (bc) | bool | ||
returns the bounding box of selected components in 3d space as 6 floats in MEL : xmin xmax ymin ymax zmin zmax, or as a tuple of three pairs in Python: ((xmin,xmax), (ymin,ymax), (zmin,zmax)) |
returns the bounding box of selected uv coordinates in 2d space as 4 floats in MEL : xmin xmax ymin ymax, or as a tuple of two pairs in Python: ((xmin,xmax), (ymin,ymax)) |
|||
displayStats (ds) | bool | ||
|
|||
edge (e) | bool | ||
|
|||
edgeComponent (ec) | bool | ||
|
|||
face (f) | bool | ||
|
|||
faceComponent (fc) | bool | ||
|
|||
format (fmt) | bool | ||
|
|||
shell (s) | bool | ||
|
|||
triangle (t) | bool | ||
|
|||
triangleComponent (tc) | bool | ||
|
|||
uvComponent (uvc) | bool | ||
|
|||
uvSetName (uvs) | unicode | ||
|
|||
uvcoord (uv) | bool | ||
|
|||
vertex (v) | bool | ||
|
|||
vertexComponent (vc) | bool | ||
|
|||
worldArea (wa) | bool | ||
returns the surface area of the object’s faces in world space as a floatFlag can appear in Create mode of commandFlag can have multiple arguments, passed either as a tuple or a list. |
Derived from mel command maya.cmds.polyEvaluate
Example:
import pymel.core as pm
import maya.cmds as cmds
pm.polyPlane( n='plg', sx=4, sy=4, w=5, h=5 )
pm.select( 'plg.f[2]', 'plg.f[4]' )
# query the number of faces
pm.polyEvaluate( f=True )
# Result: 16
# query the number of triangles
pm.polyEvaluate( t=True )
# Result: 32
# query the number of selected faces
pm.polyEvaluate( faceComponent=True )
# Result: 2
# query the number of vertices and faces
pm.polyEvaluate( v=True, f=True )
# Result: {'vertex': 25, 'face': 16}
# formatted query of the number of vertices and faces
pm.polyEvaluate( v=True, f=True, fmt=True )
# Result: "face=16 vertex=25"
# query all
pm.polyEvaluate()
# Result: {'vertexComponent': 0, 'shell': 1, 'triangle': 32, 'faceComponent': 2, 'vertex': 25, 'face': 16, 'triangleComponent': 0, 'edge': 40, 'uvcoord': 25, 'uvComponent': 0, 'edgeComponent': 0}
#formatted query of all information
pm.polyEvaluate( fmt=True )
# Result: vertex=25 edge=40 face=16 uvcoord=25 triangle=32 shell=1
# vertexComponent=0 edgeComponent=0 faceComponent=2 uvComponent=0
# boundingBox= X[-2.50,2.50] Y[0.00,0.00] Z[-2.50,2.50]
# boundingBoxComponent= X[-2.50,1.25] Y[0.00,0.00] Z[0.00,2.50]
# boundingBox2d= U[0.00,1.00] V[0.00,1.00]
# boundingBoxComponent2d= U[0.00,0.75] V[0.00,0.50]
# area=25.00 worldArea=25.00
# accurate bounding box evaluation
pm.polyCylinder( r=1, h=2, sx=20, sy=1, sz=1, ax=(0, 1, 0), tx=1, ch=1 )
pCylinder1 polyCylinder1
pm.rotate( 38.340875, 0, 0, r=True, os=True )
pm.rotate( 0, 0, -36.177835, r=True, os=True )
pm.polyEvaluate( b=True )
((-1.3974823703620598, 1.39748217791327), (-1.7164316223605844, -1.7164316223605844), (-1.6512467204212007, 1.6512465272260637))
pm.polyEvaluate( b=True, ae=True )
((-1.3974823951721191, 1.39748215675354), (-1.4071073532104492, -1.4071073532104492), (-1.3598332405090332, 1.3598330020904541))
# Local and World Space Area
pm.polyCube( w=1, h=1, d=1, sx=1, sy=1, sz=1, ax=(0, 0, 1), cuv=1, ch=1 )
pm.setAttr( 'pCube1.scaleY', 2 )
pm.polyEvaluate( a=True )
# Result: 6
pm.polyEvaluate( wa=True )
# Result: 10