ジャンプ先: 概要. 戻り値. 関連. フラグ. 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