移動先: 概要 戻り値 関連項目. フラグ. 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 フラグは省略できます。
フォーマットしない出力の注意事項は以下のとおりです。
- 3D バウンディング ボックスは 3 つの float で、2D バウンディング ボックスは 2 つの float で返されます。
-
バウンディング ボックスを照会したのに計算できない場合は(たとえば、コンポーネントが選択されていないコンポーネント バウンディング ボックス、マッピングされていないオブジェクトの 2D バウンディング ボックスなど)、それぞれの配列エレメントに 0 が返されるため、出力配列のインデックスは一貫性を保ちます。
-
int 値(トポロジ フラグで照会)は、float 値(バウンディング ボックス フラグで照会)と混在できません。
このため、フラグを設定しないと int 値のみが返されます。
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
|
|
|
アクティブなビューのポリゴン統計の表示/非表示を切り替えます。
このフラグを指定すると、その他すべてのフラグは無視されます(サポートしていません。headsUpDisplay コマンドを参照してください)。
|
|
vertex(v)
|
boolean
|
|
|
edge(e)
|
boolean
|
|
|
face(f)
|
boolean
|
|
|
uvcoord(uv)
|
boolean
|
|
|
UV 座標の数(指定されていない場合は現在のマップ)が整数で返されます。
|
|
triangle(t)
|
boolean
|
|
|
shell(s)
|
boolean
|
|
|
シェル(切断されている断片)の数を整数で返します。
|
|
boundingBox(b)
|
boolean
|
|
|
3D 空間のオブジェクトのバウンディング ボックスを、MEL では 6 つの float(xmin xmax ymin ymax zmin zmax)として、Python では 3 組のタプル[ ((xmin,xmax), (ymin,ymax), (zmin,zmax))]として返します。
|
|
boundingBox2d(b2)
|
boolean
|
|
|
2D 空間の(指定されていない場合はカレント マップに対する)オブジェクトの UV バウンディング ボックスを、MEL では 4 つの float(xmin xmax ymin ymax)として、Python では 3 組のタプル[((xmin,xmax), (ymin,ymax), (zmin,zmax))]として返します。
|
|
vertexComponent(vc)
|
boolean
|
|
|
edgeComponent(ec)
|
boolean
|
|
|
選択したエッジのオブジェクトの数を整数で返します。
|
|
faceComponent(fc)
|
boolean
|
|
|
選択したフェースのオブジェクトの数を整数で返します。
|
|
uvComponent(uvc)
|
boolean
|
|
|
選択した UV 座標のオブジェクトの数を整数で返します。
|
|
triangleComponent(tc)
|
boolean
|
|
|
選択したコンポーネントの三角形の数を整数で返します。
|
|
boundingBoxComponent(bc)
|
boolean
|
|
|
3D 空間で選択したコンポーネントのバウンディング ボックスを、MEL では 6 つの float(xmin xmax ymin ymax zmin zmax)として、Python では 3 組のタプル[ ((xmin,xmax), (ymin,ymax), (zmin,zmax))]として返します。
|
|
boundingBoxComponent2d(bc2)
|
boolean
|
|
|
2D 空間で選択した UV 座標のバウンディング ボックスを、MEL では 4 つの float( xmin xmax ymin ymax)として、Python では 2 組のタプル[ ((xmin,xmax), (ymin,ymax))]として返します。
|
|
accurateEvaluation(ae)
|
boolean
|
|
|
バウンディング ボックスの計算で正確な結果を出すために使用します。頂点の数が多いオブジェクトでは、正確な評価に時間がかかります。
|
|
format(fmt)
|
boolean
|
|
|
uvSetName(uvs)
|
string
|
|
|
UV セットを指定するためにテクスチャ頂点を照会するときに使用します。UV セットが指定されていない場合は、オブジェクトのカレント マップが使用されます。
|
|
area(a)
|
boolean
|
|
|
ローカル空間にあるオブジェクトのフェースのサーフェス領域を float で返します。
|
|
worldArea(wa)
|
boolean
|
|
|
ワールド空間にあるオブジェクトのフェースのサーフェス領域を float で返します。
|
|
: コマンドの作成モードで使用可能なフラグ
|
: コマンドの編集モードで使用可能なフラグ
|
: コマンドの照会モードで使用可能なフラグ
|
: タプルまたはリストとして渡された複数の引数を持てるフラグ
|
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