移動先: 概要 戻り値 関連項目 フラグ Python の例

概要

polyEvaluate( [poly poly...] , [accurateEvaluation=boolean], [area=boolean], [boundingBox=boolean], [boundingBox2d=boolean], [boundingBoxComponent=boolean], [boundingBoxComponent2d=boolean], [displayStats=boolean], [edge=boolean], [edgeComponent=boolean], [face=boolean], [faceComponent=boolean], [format=boolean], [shell=boolean], [triangle=boolean], [triangleComponent=boolean], [uvComponent=boolean], [uvSetName=string], [uvcoord=boolean], [vertex=boolean], [vertexComponent=boolean], [worldArea=boolean])

注意: オブジェクト名や引数を表す文字列はカンマで区切ります。これは概要には示されていません。

polyEvaluate は「元に戻す」が可能、「照会」が不可能「編集」が不可能です。

指定したオブジェクトで必要なカウントを返します。
コマンド ラインでオブジェクトを指定しない場合は、アクティブ リストのオブジェクトを使用します。

MEL では、値はフラグを設定したときと同じ順序で返されます。Python には引数の順序という概念はないため、項目はキー設定された辞書にフラグ名の順で戻されます。Python では、要求された項目が 1 つだけの場合、辞書には返されません。
使いやすくするために、フラグを設定しなければ、すべての値がエコーされます。

-fmt/format を除くすべてのフラグは照会フラグです。使いやすくするため、-q フラグは省略できます。

フォーマットしない出力の注意事項は以下のとおりです。

戻り値

Any要求されたフォーマット、および呼び出し元の言語に応じて、値の MEL 配列、 Python 辞書、または文字列。

関連項目

polyInfo

フラグ

accurateEvaluation, area, boundingBox, boundingBox2d, boundingBoxComponent, boundingBoxComponent2d, displayStats, edge, edgeComponent, face, faceComponent, format, shell, triangle, triangleComponent, uvComponent, uvSetName, uvcoord, vertex, vertexComponent, worldArea
ロング ネーム(ショート ネーム) 引数型 プロパティ
displayStats(ds) boolean create
アクティブなビューのポリゴン統計の表示/非表示を切り替えます。 このフラグを指定すると、その他すべてのフラグは無視されます(サポートしていません。headsUpDisplay コマンドを参照してください)。
vertex(v) boolean create
頂点の数を整数で返します。
edge(e) boolean create
エッジの数を整数で返します。
face(f) boolean create
フェースの数を整数で返します。
uvcoord(uv) boolean create
UV 座標の数(指定されていない場合は現在のマップ)が整数で返されます。
triangle(t) boolean create
三角形の数を整数で返します。
shell(s) boolean create
シェル(切断されている断片)の数を整数で返します。
boundingBox(b) boolean create
3D 空間のオブジェクトのバウンディング ボックスを、MEL では 6 つの float(xmin xmax ymin ymax zmin zmax)として、Python では 3 組のタプル[ ((xmin,xmax), (ymin,ymax), (zmin,zmax))]として返します。
boundingBox2d(b2) boolean create
2D 空間の(指定されていない場合はカレント マップに対する)オブジェクトの UV バウンディング ボックスを、MEL では 4 つの float(xmin xmax ymin ymax)として、Python では 3 組のタプル[((xmin,xmax), (ymin,ymax), (zmin,zmax))]として返します。
vertexComponent(vc) boolean create
選択した頂点のオブジェクトの数を整数で返します。
edgeComponent(ec) boolean create
選択したエッジのオブジェクトの数を整数で返します。
faceComponent(fc) boolean create
選択したフェースのオブジェクトの数を整数で返します。
uvComponent(uvc) boolean create
選択した UV 座標のオブジェクトの数を整数で返します。
triangleComponent(tc) boolean create
選択したコンポーネントの三角形の数を整数で返します。
boundingBoxComponent(bc) boolean create
3D 空間で選択したコンポーネントのバウンディング ボックスを、MEL では 6 つの float(xmin xmax ymin ymax zmin zmax)として、Python では 3 組のタプル[ ((xmin,xmax), (ymin,ymax), (zmin,zmax))]として返します。
boundingBoxComponent2d(bc2) boolean create
2D 空間で選択した UV 座標のバウンディング ボックスを、MEL では 4 つの float( xmin xmax ymin ymax)として、Python では 2 組のタプル[ ((xmin,xmax), (ymin,ymax))]として返します。
accurateEvaluation(ae) boolean create
バウンディング ボックスの計算で正確な結果を出すために使用します。頂点の数が多いオブジェクトでは、正確な評価に時間がかかります。
format(fmt) boolean create
結果を明示的な文で表示するために使用します。
uvSetName(uvs) string create
UV セットを指定するためにテクスチャ頂点を照会するときに使用します。UV セットが指定されていない場合は、オブジェクトのカレント マップが使用されます。
area(a) boolean create
ローカル空間にあるオブジェクトのフェースのサーフェス領域を float で返します。
worldArea(wa) boolean create
ワールド空間にあるオブジェクトのフェースのサーフェス領域を float で返します。

: コマンドの作成モードで使用可能なフラグ : コマンドの編集モードで使用可能なフラグ
: コマンドの照会モードで使用可能なフラグ : タプルまたはリストとして渡された複数の引数を持てるフラグ

Python の例

import maya.cmds as cmds

cmds.polyPlane( n='plg', sx=4, sy=4, w=5, h=5 )
cmds.select( 'plg.f[2]', 'plg.f[4]' )

# query the number of faces
cmds.polyEvaluate( f=True )
# Result: 16

# query the number of triangles
cmds.polyEvaluate( t=True )
# Result: 32

# query the number of selected faces
cmds.polyEvaluate( faceComponent=True )
# Result: 2

# query the number of vertices and faces
cmds.polyEvaluate( v=True, f=True )
# Result: {'vertex': 25, 'face': 16}

# formatted query of the number of vertices and faces
cmds.polyEvaluate( v=True, f=True, fmt=True )
# Result: "face=16 vertex=25"

# query all
cmds.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
cmds.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
cmds.polyCylinder( r=1, h=2, sx=20, sy=1, sz=1, ax=(0, 1, 0), tx=1, ch=1 )
# Result: pCylinder1 polyCylinder1 #
cmds.rotate( 38.340875, 0, 0, r=True, os=True )
cmds.rotate( 0, 0, -36.177835, r=True, os=True )

cmds.polyEvaluate( b=True )
# Result: ((-1.3974823703620598, 1.39748217791327), (-1.7164316223605844, -1.7164316223605844), (-1.6512467204212007, 1.6512465272260637)) #
cmds.polyEvaluate( b=True, ae=True )
# Result: ((-1.3974823951721191, 1.39748215675354), (-1.4071073532104492, -1.4071073532104492), (-1.3598332405090332, 1.3598330020904541)) #

# Local and World Space Area
cmds.polyCube( w=1, h=1, d=1, sx=1, sy=1, sz=1, ax=(0, 0, 1), cuv=1, ch=1 )
cmds.setAttr( 'pCube1.scaleY', 2 )
cmds.polyEvaluate( a=True )
# Result: 6
cmds.polyEvaluate( wa=True )
# Result: 10