インタフェース: EditablePoly
 
 
 
 

   

編集可能ポリゴン - クイック ナビゲーション

3ds Max 5 では EditablePoly インタフェースが Editable_Poly クラスに追加されました。

トピック ナビゲーション

 

表示/非表示

名前付き選択セットのコピー/貼り付け

作成

削除

アタッチ/デタッチ

ブレーク/スプリット/分割

頂点を挿入

集約

面の押し出し

ベベル

面取り

ブリッジ

Relax

スライス

切り取り

連結

エッジからのシェイプの作成

平面化

サブディバイド

三角形化

面の選択

UI コマンド

フラグによる取得/設定

スライス平面

データの取得/設定

プレビュー モード

選択内容の変換

削除

接続

シェーディング面の切り替え

選択の取得/設定

頂点の取得

エッジの取得

面の取得

マップ チャンネルの取得

Editable_Poly インタフェース:

Interface: EditablePoly

メソッド:

表示/非表示

<bool><EditablePoly>.Hide <enum>mnSelLevel [flags:<DWORD>]

mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}

flags default value: 1

指定されたサブオブジェクト レベルで flags によって定義されたサブオブジェクトを非表示にします。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。

   

<bool><EditablePoly>.unhideAll <enum>mnSelLevel

mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}

指定されたサブオブジェクト レベルを表示します。[修正]パネルが、効果を得るためにこのメソッドの同じサブジェクト レベル内にある必要はありません。正常に終了した場合は true を返します。

p = convertToPoly(Plane()) --平面を作成し、EPoly に変換
polyop.setFaceSelection p #{1,2} --最初の 2 つのポリゴンを選択します。
p.Hide #Face --2 つのポリゴンを非表示にします。
sleep 1 --少し待機します
p.UnHideAll #Face --非表示の面をすべて再表示します。

名前付き選択セットのコピー/貼り付け

<void><EditablePoly>.EditablePoly.namedSelCopy <string>Name

選択を指定された名前にコピーします。

   

<void><EditablePoly>.namedSelPaste <bool>useRenameDialog

名前付き選択を貼り付けます。useRenameDialog が true の場合は[名前変更]ダイアログ ボックスを使用可能にします。

作成

<index>createVertex <point3>point [pointInLocalCoords:<bool>] [select:<bool>]

pointInLocalCoords default value: true
select default value: false

指定された座標で新しい頂点を作成します。オプションの pointInLocalCoords 引数が true の場合、座標はローカル スペースで取得されます。オプションの select 引数が true の場合、作成後に新しい頂点が選択されます。新しい頂点のインデックスを返します。

   

<index><EditablePoly>.createEdge <index>vertex1 <index>vertex2 [select:<bool>]

select default value: false

2 つの指定された頂点の間に新しいエッジを作成します。オプションの select 引数が true の場合、作成後に新しいエッジが選択されます。新しいエッジのインデックスを返します。

p = convertToPoly(Plane()) --平面を作成し、EPoly に変換
p.createEdge 1 7 --頂点 1 ~ 7 の間にエッジを作成
<index><EditablePoly>.createFace <index array>vertexArray [select:<bool>] 

select default value: false

指定された頂点の配列を使用して新しい面を作成します。オプションの select 引数が true の場合、作成後に新しい面が選択されます。新しい面のインデックスを返します。

p = convertToPoly(Plane()) --平面を作成し、EPoly に変換
polyop.DeleteFaces p #(1) --最初のポリゴンを削除します。
p.createFace #(1,6,5) --新しいポリゴンをその場所に作成します。

<bool><EditablePoly>.capHoles <enum>mnSelLevel [flags:<DWORD>]

mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}

flags default value: 1

新しい面を作成し、開いたエッジ ループをキャップします。msSelLevel enums を使用して、穴を定義する開いたエッジ ループを取得します。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。

p = convertToPoly(Plane()) --平面を作成し、EPoly に変換
polyop.DeleteFaces p # (6) --ポリゴンを削除
--削除されたポリゴンを囲むポリゴンをすべて選択
polyop.SetFaceSelection p #(1,2,3,5,6,8,9,10)
select p --平面を選択
max modify mode --[修正]パネルに切り替え
subObjectLevel = 4 --面レベルに移動して選択を確認
p.capHoles #Face --選択を使用して穴をキャップ

削除

<bool><EditablePoly>.delete <enum>mnSelLevel [flags:<DWORD>] [deleteIsoVerts:<bool>]

mnSelLevelenums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}

flags default value: 1

deleteIsoVerts default value: true

指定されたサブオブジェクト レベルでサブオブジェクトを削除します。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。

   

<bool><EditablePoly>.deleteIsoVerts()

孤立した頂点を削除します。正常に終了した場合は true を返します。

   

<bool><EditablePoly>.DeleteIsoMapVerts()

孤立した頂点を削除します。正常に終了した場合は true を返します。

   

アタッチ/デタッチ

<void><EditablePoly>.attach <node>nodeToAttach <node>myNode

ノードを Editable_Poly オブジェクトにアタッチします。追加ノードは、アタッチされるノードの変換を提供します。 nodeToAttach myNode として使用して、その独自変換を使用することができます。

p = convertToPoly(Plane()) --平面を作成し、EPoly に変換
s = sphere radius:5 --球プリミティブを作成
p.attach s s --球を EPoly にアタッチ
p = convertToPoly(Plane()) --平面を作成し、EPoly に変換
b = Box() --ボックス プリミティブを作成
b.rotation = eulerangles 45 45 0 --ボックスを回転
t = teapot radius:5 --ティーポット プリミティブを作成
p.attach t b --ボックスの変換を使用してティーポットを EPoly にアタッチ
<bool><EditablePoly>.detachToElement <enum>mnSelLevel [flags:<DWORD>] [keepOriginal:<bool>]

mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}

flags default value: 1

keepOriginal default value: false

指定されたサブオブジェクト レベルで flags によって定義されたサブオブジェクトを要素にデタッチします。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。

p = convertToPoly(Plane()) --平面を作成し、EPoly に変換
polyop.SetFaceSelection p #(6) --ポリゴン 6 を選択
--選択されたポリゴンを要素にデタッチし、オリジナルを維持します。
p.detachToElement #Face keepOriginal:true

ブレーク/スプリット/分割

<bool><EditablePoly>.breakVerts <DWORD>vertFlags

edgeFlags で定義された頂点をブレークします。フラグ ビットの説明は、「polyOp.getEdgesByFlag」を参照してください。

   

<bool><EditablePoly>.splitEdges edgeFlags:<DWORD>

edgeFlags default value: 1

edgeFlags で定義されたエッジをスプリットします。フラグ ビットの説明は、「polyOp.getEdgesByFlag」を参照してください。

   

<index><EditablePoly>.divideEdge <index>edgeID <float>proportion [select:<bool>]

select default value: false

配置コントロールのプロパティを使用して指定されたエッジを分割します。新しい頂点のインデックスを返します。select が true の場合、新しい頂点が選択されます。

   

<index><EditablePoly>.divideFace <index>faceID <&float array>vertexCoefficients [select:<bool>]

vertexCoefficients is In and Out parameter

select default value: false

vertexCoefficients を使用して指定されたポリゴンを分割し、新しいエッジを配置します。新しい頂点のインデックスを返します。 select true の場合、新しい頂点が選択されます。

頂点の挿入

<index><EditablePoly>.insertVertexInFace <index>faceID <&float array>vertexCoefficients [select:<bool>]

vertexCoefficients is In and Out parameter

select default value: false

指定されたポリゴン内部に頂点を挿入します。新しい頂点のインデックスを返します。

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
--ポリゴン 6 の中間に新しい頂点を挿入します。
--new_vert には新たに作成された頂点のインデックスが含まれます。
new_vert = p.insertVertexInFace 6 #(0.5,0.0,0.5)
<index><EditablePoly>.insertVertexInEdge <index>edgeID <float>proportion [select:<bool>]

select default value: false

配置コントロールのプロパティを使用して指定されたエッジに頂点を挿入します。新しい頂点のインデックスを返します。select が true の場合、新しい頂点が選択されます。

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
--新しい頂点を挿入し、エッジ 17 をそのエッジの 1/3 の位置で分割します。
--new_vert には新たに作成された頂点のインデックスが含まれます: 
new_vert = p.insertVertexInEdge 17 0.3
polyOp.setVertSelection #{new_vert} --新しい頂点を選択
select p --平面を選択
maxmodify mode --[修正]パネルに切り替え
subObjectLevel = 1 --頂点レベルに移動して確認

集約

<bool><EditablePoly>.collapse <enum>mnSelLevel [flags:<DWORD>]

mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}

flags default value: 1

指定されたサブオブジェクト レベルで flags によって定義されたサブオブジェクトを集約します。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
polyop.setVertSelection p #{7,8,12,13} --いくつかの頂点を選択
p.EditablePoly.collapse #Vertex --選択された頂点を集約

面の押し出し

<void><EditablePoly>.extrudeFaces <float>amount [faceFlags:<DWORD>]

faceFlags default value: 1

faceFlags で定義されたポリゴンを指定された量だけ押し出します。

既定では、選択されたポリゴンを意味するフラグ 1 を使用します。

フラグ ビットの説明は、「polyOp.getFacesByFlag」を参照してください。

サンプル スクリプト

--ランダムな押し出しから摩天楼のような構造を作成
p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
for i = 1 to 50 do --50 回繰り返し
(
polyop.setFaceSelection p #{(random 1 16)} --ランダムなポリゴンを選択
p.extrudeFaces 5.0 --選択範囲を押し出し
)
<bool><EditablePoly>.ExtrudeAlongSpline faceFlag:<DWORD>

faceFlag default value: 1

フラグで定義されたポリゴンをスプラインに沿って押し出します。

正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getFacesByFlag」を参照してください。

<bool><EditablePoly>.HingeFromEdge faceFlag:<DWORD>

faceFlag default value: 1

フラグに定義されたポリゴンをエッジからヒンジ立上げします。

正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getFacesByFlag」を参照してください。

ベベル

<void><EditablePoly>.bevelFaces <float>height <float>outline [faceFlags:<DWORD>]

faceFlags default value: 1

指定された量とアウトライン値を使用して faceFlags で定義されたポリゴンをベベルします。

既定では、選択されたポリゴンを意味するフラグ 1 を使用します。

フラグ ビットの説明は、「polyOp.getFacesByFlag」を参照してください。

--ランダムなベベルから未来的なスカイラインを作成
p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
for i = 1 to 50 do --50 回繰り返し
(
polyop.setFaceSelection p #{(random 1 16)} --ランダムなポリゴンを選択
p.bevelFaces 5.0 (random 0.0 -1.0) --選択範囲をランダムにベベル
)

面取り

<void><EditablePoly>.chamferVertices <float>amount open:<bool>

open default value: false

指定された量を使用して選択された頂点を面取りします。

オプションの open: キーワードを指定して true に設定すると、面取り操作によって生成される新しい面は削除されて開口部が残ります。

3ds Max 8 以降 で使用可能です。

p = convertToPoly (Plane()) --平面を作成し、Epoly に変換
polyop.setVertSelection p #{1,5,21,25} --コーナー頂点を選択
p.EditablePoly.chamferVertices 5.0 --選択範囲を面取り
<void><EditablePoly>.chamferEdges <float>amount open:<bool>

open default value: false

指定された量を使用して選択されたエッジを面取りします。

オプションの open: キーワードを指定して true に設定すると、面取り操作によって生成される新しい面は削除されて開口部が残ります。

3ds Max 8 以降 で使用可能です。

p = convertToPoly (Plane()) --平面を作成し、Epoly に変換
polyop.setEdgeSelection p #{7,10} --両面のエッジを選択
p.EditablePoly.chamferEdges 5.0 --選択範囲を面取り

ブリッジ

<bool><EditablePoly>.Bridgesel Level:<enum> flag:<DWORD>

selLevel enums: {#Object|#Vertex|#Edge|#Border|#Face|#Element|#CurrentLevel}
selLevel default value:#CurrentLevel
flag default value: 1

指定した選択レベルおよびフラグを使用してブリッジを作成します。

成功した場合は true、失敗した場合は false を返します。

注:Bridge メソッドの結果を制御するプロパティは各種あります。詳細は、「Editable Poly のプロパティ - ブリッジ」を参照してください。

b = box() --ボックスを作成
b.heightsegs = b.widthsegs = b.lengthsegs = 5 --セグメントを 5 に設定
convertToPoly(b) --編集ポリゴンに変換
--ボックスの両側の中央の面を選択: 
polyOp.setFaceSelection b #{57..59, 62..64, 67..69, 107..109, 112..114, 117..119}
b.bridgeSegments = 5 --ブリッジ セグメント プロパティを 5 に設定
b.bridge selLevel: #Face --選択したポリゴンをブリッジ

<bool><EditablePoly>.ReadyToBridgeFlagged selLevel:<enum> flag:<DWORD>

selLevel enums: {#Object|#Vertex|#Edge|#Border|#Face|#Element|#CurrentLevel}
selLevel default value:#CurrentLevel
flag default value: 1

指定した選択レベルとフラグについてブリッジの用意ができていれば true、その他の場合は false を返します。

   

リラックス

<bool><EditablePoly>.Relax selLevel:<enum> flag:<DWORD>

selLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
selLevel default value:#CurrentLevel
flag default value: 1

指定した選択レベルとフラグを使用して頂点をリラックスします。

成功した場合は true、失敗した場合は false を返します。

注:Relax メソッドの結果を制御するプロパティは各種あります。詳細は、「Editable Poly のプロパティ - リラックス」を参照してください。

b = box() --ボックスを作成
b.heightsegs = b.widthsegs = b.lengthsegs = 5 --セグメントを 5 に設定
convertToPoly(b) --編集ポリゴンに変換
b.relaxAmount = 1.5 --リラックス量プロパティを 1.5 に設定
b.relax selLevel:#Object --メッシュ全体をリラックス
b2 = box() --別のボックスを作成
b2.heightsegs = b2.widthsegs = b2.lengthsegs = 5 --セグメントを 5 に設定
convertToPoly(b2) --編集ポリゴンに変換
b2.relaxAmount = -1.5 --リラックス量プロパティを -1.5 に設定
b2.pos = [40,0,0] --ボックスを最初のものから 40 単位離して配置
b2.relax selLevel:#Object --メッシュ全体をリラックス

スライス

<bool><EditablePoly>.slice <point3>slicePlaneNormal <point3>slicePlaneCenter [flaggedFacesOnly:<bool>] [faceFlags:<DWORD>]

flaggedFacesOnly default value: false
faceFlags default value: 1

法線ベクトルと中心で定義されたスライス平面をスライスします。両方の値は、ローカル座標内で指定されます。

flaggedFacesOnly true に設定した場合、 faceFlags で指定されたポリゴンのみが影響を受けます(既定ではフラグは 1、つまり選択されたポリゴン)。既定値では、EditablePoly オブジェクト全体に影響します。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getFacesByFlag」を参照してください。

--ボックスを作成し、Epoly に変換
p = convertToPoly(Box())
--対角平面を使用して高さ 10 でスライス
p.slice [0,1,1] [0,0,10]
--側面のポリゴンを選択
polyop.setFaceSelection p #{3}
--水平平面のみを使用して選択されたポリゴンを高さ 15 でスライス
p.slice [0,0,1] [0,0,15] flaggedFacesOnly:true

<bool>inSlicePlaneMode ()

EditablePoly がスライス平面モードの場合は true を返します。

   

切り取り

<index><EditablePoly>.cutVertices <index>startVertex <point3>endPosition <point3>viewDirection

開始頂点、指定されたポイント、およびビュー方向で定義される平面を使用してカットします。

   

<index><EditablePoly>.cutEdges <index>startEdge <float>startProportion <index>endEdge <float>endProportion <point3>viewDirection

2 つのエッジとプロパティおよびビュー方向で指定されたポイントで定義される平面を使用してカットします。

   

<index><EditablePoly>.cutFaces <index>startFace <point3>startPosition <point3>endPosition <point3>viewDirection

2 つの面の位置およびビュー方向で指定されたポイントで定義される平面を使用してカットします。

   

連結

<bool><EditablePoly>.weldVerts <index>vertex1 <index>vertex2 <point3>destinationPoint

2 つの指定された頂点を連結し、その結果生じる頂点を指定された位置に移動します。

正常に終了した場合は true を返します。

   

<bool><EditablePoly>.weldEdges <index>edge1 <index>edge2

指定された 2 つのエッジを連結します。

正常に終了した場合は true を返します。

   

<bool><EditablePoly>.weldFlaggedVertices [vertexFlags:<DWORD>]

vertexFlags default value: 1

指定されたフラグで定義された頂点を連結します。

正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」を参照してください。

   

<bool><EditablePoly>.weldFlaggedEdges [edgeFlags:<DWORD>]

edgeFlags default value: 1

指定されたフラグで定義されたエッジを連結します。

正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getEdgesByFlag」を参照してください。

エッジからのシェイプの作成

<bool><EditablePoly>.createShape <string>shapeName <bool>curved <node>myNode edgeFlags:<DWORD>

edgeFlags default value: 1

指定されたフラグで定義されたエッジからシェイプを作成します。

正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getEdgesByFlag」を参照してください。

平面化

<bool><EditablePoly>.makePlanar <enum>mnSelLevel [flags:<DWORD>]

mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
flags default value: 1

指定されたサブオブジェクト レベル平面で flags によって定義されたサブオブジェクトを作成します。

正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。

   

<bool><EditablePoly>.moveToPlane <point3>planeNormal <float>planeOffset <enum>mnSelLevel flags:<DWORD>

mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
flags default value: 1

指定されたサブオブジェクト レベルで flags によって定義されたサブオブジェクトを指定の平面に移動します。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
polyop.setVertSelection p #{7,8,12,13} --いくつかの頂点を選択
p.movetoplane [0,0,1] 5.0 #Vertex --+Z 軸に沿って 5.0 単位移動
<bool><EditablePoly>.alignToGrid <enum>mnSelLevel [flags:<DWORD>]

mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
flags default value: 1

指定されたサブオブジェクト レベルで flags によって定義されたサブオブジェクトをアクティブなグリッドに位置合わせします。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。

p = convertToPoly(Box()) --ボックスを作成し、Epoly に変換
polyop.setVertSelection p #{5,6} --2 つの上部頂点を選択
select p --EPoly を選択
p.AlignToGrid #Vertex --頂点を現在のグリッドに位置合わせ

<bool><EditablePoly>.alignToView <enum>mnSelLevel [flags:<DWORD>]

mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
flags default value: 1

指定されたサブオブジェクト レベルで flags によって定義されたサブオブジェクトをアクティブなビューに位置合わせします。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
polyop.setVertSelection p #{7,8,12,13} --いくつかの頂点を選択
p.EditablePoly.alignToView #Vertex --現在のビューに位置合わせ
<bool><EditablePoly>.MakePlanarIn <enum>axis selLevel:<enum> flag:<DWORD>

axis enums: {#X|#Y|#Z}
selLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
selLevel default value:#CurrentLevel
flag default value: 1

フラグ ビットによって指定された特定サブレベルの要素を、指定した軸を基準にして平面にします。

フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。

再分割

<bool><EditablePoly>.meshSmooth <enum>mnSelLevel flags:<DWORD>

mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
flags default value: 1

指定されたサブオブジェクト レベルで flags によって定義されたサブオブジェクトに MeshSmooth を適用します。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。

p = convertToPoly(Box()) --ボックスを作成し、Epoly に変換
polyop.setVertSelection p #{1} --頂点を選択
--選択された頂点に meshSmooth を 3 回適用
for i = 1 to 3 do p.meshSmooth #Vertex

<bool><EditablePoly>.tessellate <enum>mnSelLevelflags:<DWORD>

mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
flags default value: 1

指定されたサブオブジェクト レベルで flags によって定義されたサブオブジェクトを面分割します。

正常に終了した場合は true を返します。

p = convertToPoly(Box()) --ボックスを作成し、Epoly に変換
polyop.setVertSelection p #{1} --頂点を選択
--選択された頂点に tessellate を 3 回適用
for i = 1 to 3 do p.tessellate #Vertex

<void><EditablePoly>.forceSubdivision()

フォース サブディビジョン。

三角形化

<void><EditablePoly>.setDiagonal <index>face <index>corner1 <index>corner2

corner1 から corner2 までの指定された面の対角線を設定します。

   

<bool><EditablePoly>.retriangulate <DWORD>faceFlags

faceFlags で定義された面を再三角形化します。

正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getFacesByFlag」を参照してください。

   

<bool><EditablePoly>.TurnDiagonal <index>face <index>diagonal

インデックス付きの面のインデックス付きの対角線の向きを変えます。

   

<bool><EditablePoly>.flipNormals <DWORD>faceFlags

faceFlags で定義された面の法線をフリップします。

正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getFacesByFlag」を参照してください。

   

面の選択

<void><EditablePoly>.selectByMaterial <index>materialID [clearCurrentSelection:<bool>]

clearCurrentSelection default value: true

指定された materialID を持つ面を選択します。

オプションの clearCurrentSelection false に設定した場合、既存の選択が維持されます。

   

<void><EditablePoly>.selectBySmoothGroup <DWORD>smoothingGroups [clearCurrentSelection:<bool>]

clearCurrentSelection default value: true

指定されたスムージング グループを持つ面を選択します。

オプションの clearCurrentSelection false に設定した場合、既存の選択が維持されます。

   

<void><EditablePoly>.autosmooth()

面の角度に基づいてスムージング グループを自動的に生成します。

   

UI コマンド

<void><EditablePoly>.buttonOp <enum>buttonOpID

buttonOpID enums: {#GrowSelection | #ShrinkSelection | #SelectEdgeLoop | 
#SelectEdgeRing | #HideSelection | #HideUnselected | #UnhideAll | #NamedSelectionCopy | 
#NamedSelectionPaste | #Cap | #Delete | #Remove | #Detach | #AttachList | #SplitEdges | 
#BreakVertex | #Collapse | #ResetSlicePlane | #Slice | #WeldSelected | #CreateShape | 
#MakePlanar | #AlignGrid | #AlignView | #RemoveIsoVerts | #MeshSmooth | #Tessellate | 
#Update | #SelectByVertexColor | #Retriangulate | #FlipNormals | #SelectByMatID | 
#SelectBySmoothingGroups | #Autosmooth | #ClearSmoothingGroups| 
#Extrude | #Bevel | #Inset | #Outline | #ExtrudeAlongSpline | #HingeFromEdge | 
#ConnectEdges | #ConnectVertices | #Chamfer | #Cut | #RemoveIsoMapVerts | 
#ToggleShadedFaces | #MakePlanarInX | #MakePlanarInY |#MakePlanarInZ }

指定された Editable_Poly の UI ボタンを押します。

p = convertToPoly(Plane()) --ボックスを作成し、Epoly に変換
polyop.setFaceSelection p #{6} --単一のポリゴンを選択
select p --オブジェクトを選択
max modify mode --[修正]パネルに移動
subobjectlevel = 4 --ポリゴン サブオブジェクト レベルに移動
p.ButtonOp #GrowSelection --選択を広げる
<void><EditablePoly>.toggleCommandMode <enum>commandModeID

commandModeID enums: { #CreateVertex | #CreateEdge | #CreateFace | #DivideEdge | #DivideFace | 
#ExtrudeVertex | #ExtrudeEdge | #ExtrudeFace | #ChamferVertex | #ChamferEdge | #Bevel | 
#SlicePlane | #CutVertex | #CutEdge | #CutFace | #Weld | #EditTriangulation | #InsetFace | 
#QuickSlice | #HingeFromEdge | #PickLiftEdge | #OutlineFace}

指定された Editable_Poly の UI を押してコマンド モードに入ります。

   

<void><EditablePoly>.enterPickMode <enum>pickModeID

pickModeID enums: {#Attach|#PickShape}

ボタンを押して指定されたピック モードに入ります。

   

<void><EditablePoly>.exitCommandModes ()

アクティブなコマンド モードを終了します。

   

フラグによる取得/設定

<bool><EditablePoly>.getVerticesByFlag <&bitArray>vertexSet <DWORD>flagsRequested [flagMask:<DWORD>]

vertexSet is In and Out parameter
flagMask default value: 0

正常に終了した場合は true を返します。

ポリゴンの各頂点には、32 ビット フラグ変数が含まれます。

このメソッドは、このフラグ変数内の特定のビットが設定されている頂点の、参照 bitarray を返します。テストされるビットは < flagsRequested > および < flagMask > の組み合わせに基づいて決定されます。

内部的には、< flagMask > が 0 の場合、< flagMask > は < flagsRequested > 値に設定され、それ以外の場合、< flagsRequested > は < flagsRequested > および < flagMask > の bitwise-AND に設定されます。

次に < flagMask > のビット 2 が設定されます。このビットが < flagMask > 内に設定されていない限り、返された bitarray に無効な頂点が含まれることはありません。

フラグ変数と < flagMask > の bitwise-AND が < flagsRequested > と < flagMask > の bitwise-AND と同じである場合は、返された bitarray 内の各ビットが設定されます。

フラグ ビットの説明は、「polyOp.getVertsByFlag」を参照してください。

my_array= #{} --空の bitarray を定義
b = bit.Set 0 1 true --最初のビットを true に設定
--ここで、関数を呼び出し、参照による入力パラメータとして空の配列を指定して、
--抽出するフラグ ビットを指定
$.getVerticesByFlag&my_array b
--ここで、bitarray の内容を参照
--bitarray には最初のフラグ ビットが設定された頂点が含まれます
--(ビット 1 は選択されていることを表すため、頂点選択が含まれます)
print my_array
<bool><EditablePoly>.getEdgesByFlag <&bitArray>edgeSet <DWORD>flagsRequested [flagMask:<DWORD>]

edgeSet is In and Out parameter
flagMask default value: 0

エッジのうち、フラグ ビットが flagsRequested から返されたビットに設定されているものをすべて取得します。正常に終了した場合は true を返します。

各エッジには、32 ビット フラグ変数が含まれます。このメソッドは、このフラグ変数内の特定のビットが設定されているエッジの、参照 bitarray を返します。テストされるビットは < flagsRequested > および < flagMask > の組み合わせに基づいて決定されます。

内部的には、< flagMask > が 0 の場合、< flagMask > は < flagsRequested > 値に設定され、それ以外の場合、< flagsRequested > は < flagsRequested > および < flagMask > の bitwise-AND に設定されます。

次に < flagMask > のビット 2 が設定されます。このビットが < flagMask > 内に設定されていない限り、返された bitarray に無効なエッジが含まれることはありません。

フラグ変数と < flagMask > の bitwise-AND が < flagsRequested > と < flagMask > の bitwise-AND と同じである場合は、返された bitarray 内の各ビットが設定されます。

フラグ ビットの説明は、「polyOp.getEdgesByFlag」を参照してください。

my_array= #{} --空の bitarray を定義
b = bit.Set 0 1 true --最初のビットを true に設定
--ここで、関数を呼び出し、参照による入力パラメータとして空の配列を指定して、
--抽出するフラグ ビットを指定
$.getEdgesByFlag&my_array b
--ここで、bitarray の内容を参照: 
--bitarray には最初のフラグ ビットが設定されたエッジが含まれます
--(ビット 1 は選択されていることを表すため、エッジ選択が含まれます)
print my_array
<bool><EditablePoly>.getFacesByFlag <&bitArray>faceSet <DWORD>flagsRequested [flagMask:<DWORD>]

faceSet is In and Out parameter
flagMask default value: 0

正常に終了した場合は true を返します。

各面には、32 ビット フラグ変数が含まれます。

このメソッドは、このフラグ変数内の特定のビットが設定されている面の、参照 bitarray を返します。テストされるビットは < flagsRequested > および < flagMask > の組み合わせに基づいて決定されます。

内部的には、< flagMask > が 0 の場合、< flagMask > は < flagsRequested > 値に設定され、それ以外の場合、< flagsRequested > は < flagsRequested > および < flagMask > の bitwise-AND に設定されます。

次に < flagMask > のビット 2 が設定されます。このビットが < flagMask > 内に設定されていない限り、返された bitarray に無効な面が含まれることはありません。

フラグ変数と < flagMask > の bitwise-AND が < flagsRequested > と < flagMask > の bitwise-AND と同じである場合は、返された bitarray 内の各ビットが設定されます。

フラグ ビットの説明は、「polyOp.getFacesByFlag」を参照してください。

my_array= #{} --空の bitarray を定義
b = bit.Set 0 1 true --最初のビットを true に設定
--ここで、関数を呼び出し、参照による入力パラメータとして空の配列を指定して、
--抽出するフラグ ビットを指定
$.getFacesByFlag&my_array b
--ここで、bitarray の内容を参照
--bitarray には最初のフラグ ビットが設定された面が含まれます
--(ビット 1 は選択されていることを表すため、面選択が含まれます)
print my_array
<void><EditablePoly>.setVertexFlags <&bitArray>vertexSet <DWORD>flagsToSet [flagMask:<DWORD>] generateUndoRecord:<bool>

vertexSet is In and Out parameter
flagMask default value: 0

vertexSet bitarray で指定される頂点のフラグ ビットを flagsToSet で指定されるビットに設定します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」を参照してください。

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
my_array= #{1,2,3,4} --平面を作成し、Epoly に変換
b = bit.Set 0 1 true --最初のビットを true に設定
--ここで、関数を呼び出し、参照による入力パラメータとして配列を指定して、
--取得するフラグ ビットを指定
p.setVertexFlags&my_array b
--フラグ ビット 1 は選択されていることを表すため、上記の例は基本的に、
--対応するフラグ ビットを設定することで EditablePoly にある最初の 4 つの
--頂点を選択します。このことを検証:
select p --平面を選択
max modify mode --[修正]パネルに移動
subObjectLevel = 1 --サブ オブジェクト レベルを頂点に設定 - 
--最初の 4 つの頂点が選択される
<void><EditablePoly>.setEdgeFlags <&bitArray>edgeSet <DWORD>flagsToSet [flagMask:<DWORD>] generateUndoRecord:<bool>

edgeSet is In and Out parameter
flagMask default value: 0

edgeSet bitarray で指定されるエッジのフラグ ビットを flagsToSet で指定されるビットに設定します。

フラグ ビットの説明は、「polyOp.getEdgesByFlag」を参照してください。

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
my_array= #{1,2,3,4} --平面を作成し、Epoly に変換
b = bit.Set 0 1 true --最初のビットを true に設定
--ここで、関数を呼び出し、参照による入力パラメータとして配列を指定して、
--取得するフラグ ビットを指定
p.setEdgeFlags&my_array b
--フラグ ビット 1 は選択されていることを表すため、上記の例は基本的に、
--対応するフラグ ビットを設定することで EditablePoly にある最初の 4 つの
--頂点を選択します。このことを検証:
select p --平面を選択
max modify mode --[修正]パネルに移動
subObjectLevel = 2 --サブオブジェクト レベルを Edge に設定 - 
--最初の 4 つのエッジが選択される
<void><EditablePoly>.setFaceFlags <&bitArray>faceSet <DWORD>flagsToSet [flagMask:<DWORD>] generateUndoRecord:<bool>

faceSet is In and Out parameter
flagMask default value: 0

faceSet bitarray で指定される面のフラグ ビットを flagsToSet で指定されるビットに設定します。

フラグ ビットの説明は、「polyOp.getFacesByFlag」を参照してください。

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
my_array= #{1,2,3,4} --平面を作成し、Epoly に変換
b = bit.Set 0 1 true --最初のビットを true に設定
--ここで、関数を呼び出し、参照による入力パラメータとして配列を指定して、
--取得するフラグ ビットを指定
p.setFaceFlags&my_array b
--フラグ ビット 1 は選択されていることを表すため、上記の例は基本的に、
--対応するフラグ ビットを設定することで EditablePoly にある最初の 4 つの
--頂点を選択します。このことを検証:
select p --平面を選択
max modify mode --[修正]パネルに移動
subObjectLevel = 4 --サブ オブジェクト レベルを面に設定 - 
--最初の 4 つの面が選択される

スライス平面

<void><EditablePoly>.resetSlicePlane ()

スライス平面変換を既定値にリセットします。

<void><EditablePoly>.getSlicePlane <&point3>planeNormal <&point3>planeCenter <*float>planeSize

planeNormal is In and Out parameter
planeCenter is In and Out parameter
planeSize is In and Out parameter

スライス平面の方向、中心、およびサイズを取得します。

--変数を定義して出力パラメータを保持:
plane_normal = Point3 0 0 0
plane_center = Point3 0 0 0
plane_size = 1.0
--関数を呼び出し、参照による変数を入力パラメータとして指定
$.getSlicePlane &plane_normal &plane_center &plane_size
--これで、変数にはスライス平面の実際の値が含まれます: 
plane_normal
plane_center
plane_size
<void><EditablePoly>.setSlicePlane <&point3>planeNormal <&point3>planeCenter <float>planeSize

planeNormal is In and Out parameter
planeCenter is In and Out parameter

スライス平面の方向、中心、およびサイズを設定します。

--変数を定義して入力パラメータを保持:
plane_normal = Point3 0 1 0
plane_center = Point3 5 5 6
--関数を呼び出し、参照による変数を入力パラメータとして指定
$.setSlicePlane &plane_normal &plane_center 20.0
--スライス平面変換が変更されている

データの取得/設定

<float><EditablePoly>.getVertexData <integer>vertexDataChannel <*integer>numberSelected <*bool>uniformData [vertexFlags:<DWORD>]

numberSelected is In and Out parameter
uniformData is In and Out parameter
vertexFlags default value: 1

指定された vertexDataChannel に格納されている頂点データを取得します。

このチャンネルに値が格納されている頂点の数は、参照渡しの変数 numberSelected に書き込まれます。

すべての頂点に同じ値が含まれる場合は、参照渡しのブール変数 uniformData true が含まれ、それ以外の場合は false が含まれます。

vertexFlags が指定された場合、マークされた頂点の値のみが読み込まれます。

検出される最初の頂点(たとえば、低いインデックスの頂点)に格納された値を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」を参照してください。

   

<float><EditablePoly>.getEdgeData <integer>edgeDataChannel <*integer>numberSelected <*bool>uniformData [edgeFlags:<DWORD>]

numberSelected is In and Out parameter
uniformData is In and Out parameter
edgeFlags default value: 1

指定された edgeDataChannel に格納されているエッジ データを取得します。

このチャンネルに値が格納されているエッジの数は、参照渡しの変数 numberSelected に書き込まれます。

すべてのエッジに同じ値が含まれる場合は、参照渡しのブール変数 uniformData true が含まれ、それ以外の場合は false が含まれます。

edgeFlags が指定された場合、マークされたエッジの値のみが読み込まれます。

検出される最初のエッジ(たとえば、低いインデックスのエッジ)の値を返します。

フラグ ビットの説明は、「polyOp.getEdgesByFlag」を参照してください。

   

<void><EditablePoly>.setVertexData <integer>vertexDataChannel <float>value vertexFlags:<DWORD>

vertexFlags default value: 1

指定された vertexDataChannel に格納されている頂点データに対して、指定された値を設定します。 vertexFlags が指定された場合、マークされた頂点のみが影響を受けます。

フラグ ビットの説明は、「polyOp.getVertsByFlag」を参照してください。

   

<void><EditablePoly>.setEdgeData <integer>edgeDataChannel <float>value [edgeFlags:<DWORD>]

edgeFlags default value: 1

指定された edgeDataChannel に格納されているエッジ データに対して、指定された値を設定します。 edgeFlags が指定された場合、マークされたエッジのみが影響を受けます。

フラグ ビットの説明は、「polyOp.getEdgesByFlag」を参照してください。

p = convertToPoly(Plane())
-->$Editable_Poly:Plane01 @ [0.000000,0.000000,0.000000]
polyop.setVertSelection p #{1,2} --頂点 1 と頂点 2 を選択
-->OK
numsel = 1 --参照に渡す変数を定義
-->1 --これには頂点の数が含まれます。
uniform = false --均一性を示すブール変数を定義値が均一の場合は 
-->false --値が均一な場合 true になります。
p.getVertexData 1 &numsel &uniform --既定値をチェック
-->1.0 --返される既定値は 1.0
numsel--選択番号を再度参照
-->2 -- 2 つの頂点がありました。
uniform --均一性をチェック
-->true --両方の頂点は同じ値を持っていました。
p.setVertexData 1 100.0 --ここで、値を 100.0 に変更します。
-->OK
p.getVertexData 1 &numsel &uniform --もう一度読み込みます。
-->100.0 --値は変更されています。
numsel --選択番号を再度参照
-->2 --まだ、2 つの頂点があります。
uniform --均一性をチェック
-->true --両方の頂点の値は同じです。e
polyop.setVertSelection p #{3} --頂点 3 を単独で選択
-->OK
p.setVertexData 1 200.0 --値を 200.0 に変更
-->OK
p.getVertexData 1 &numsel &uniform --値を取得
-->200.0 --予想どおり 200.0 です。
polyop.setVertSelection p #{1,2,3} -- 3 つの頂点すべてを選択
-->OK
p.getVertexData 1 &numsel &uniform -- 3 つすべての値を取得
-->100.0 --頂点 1 が最初に検出されるため、結果は 100.0 になります。
numsel --選択された頂点の数をチェック
-->3 -- 3 つ選択され、実際に 3 つありました。
uniform --値は均一でしたか。
-->false -- 100.0 の値が 2 つと 200.0 の値が 1 つあり、均一ではありません。
<void><EditablePoly>.resetVertexData <integer>vertexDataChannel

指定された vertexDataChannel に格納されている頂点データをリセットします。

   

<void><EditablePoly>.resetEdgeData <integer>edgeDataChannel

指定された edgeDataChannel に格納されている頂点データをリセットします。

   

<void><EditablePoly>.beginModifyPerData <enum>mnSelLevel <integer>dataChannel 

mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}

EditablePoly オブジェクトを ModifyPerData 状態にします。

これにより、指定されたサブオブジェクト レベルと dataChannel の条件式に対してすべての変更が適用されます。

データ変更が終了したら、ブール値のパラメータを指定した endModifyPerData を呼び出して、変更を確定または破棄する必要があります。

   

<bool><EditablePoly>.inModifyPerData ()

オブジェクトが現在、ModfyPerData 状態にある場合は true を返します。

   

<void><EditablePoly>.endModifyPerData <bool>success

ModifyPerData 状態を終了します。

success に true が指定された場合は、変更が確定します。

success に false が指定された場合は、変更が破棄されます。

beginModifyPerData も参照してください。

p = convertToPoly(Plane())
-->$Editable_Poly:Plane01 @ [0.000000,0.000000,0.000000]
polyop.setVertSelection p #{1,2} --頂点 1 と頂点 2 を選択
-->OK
numsel = 1 --参照に渡す変数を定義
-->1 --これには、頂点の数が含まれる
uniform = false --均一性のブール変数を定義します。値が均一の場合は 
-->false --true になります
p.getVertexData 1 &numsel &uniform --既定値をチェック
-->1.0 --返される既定値は 1.0 
p.beginModifyPerData #vertex 1 --データを修正する状態を開始
-->OK
p.setVertexData 1 100.0 --値を 100.0 に変更
-->OK
p.endModifyPerData false --修正状態を終了します、つまりこれは失敗しました
-->OK
p.getVertexData 1 &numsel &uniform --値をチェック
-->1.0 --値が変更されていません
p.beginModifyPerData #vertex 1 --データの状態を再度変更
-->OK
p.setVertexData 1 100.0 --値を 100.0 に変更
-->OK
p.endModifyPerData true --修正状態が正常として終了
-->OK
p.getVertexData 1 &numsel &uniform --値をチェック
-->100.0 --値は正しく変更されています!
<index><EditablePoly>.getMaterialIndex <*bool>determined

determined is In and Out parameter

マテリアル ID を返します。

   

<void><EditablePoly>.setMaterialIndex <index>index <DWORD>faceFlags

指定されたフラグで指定された面のマテリアル ID を設定します。

   

<void><EditablePoly>.getSmoothingGroups <DWORD>faceFlag <*DWORD>anyFaces <*DWORD>allFaces


anyFaces is In and Out parameter
allFaces is In and Out parameter

指定された面のスムージング グループを取得します。

   

<void><EditablePoly>.setSmoothingGroups <DWORD>bitValues <DWORD>bitMask <DWORD>faceFlags

指定された面のスムージング グループを設定します。

   

<void><EditablePoly>.collapseDeadStructures()

すべての無効な構造を集約します。

   

<integer><EditablePoly>.propogateComponentFlags <enum>mnSelLevelTo <DWORD>flagSetTo <enum>mnSelLevelFrom <DWORD>flagTestFrom \
[allBitsMustMatch:<bool>] [set:<bool>] [undoable:<bool>]

mnSelLevelTo enums: { #Object|#Vertex|#Edge|#Face|#CurrentLevel}
mnSelLevelFrom enums: { #Object|#Vertex|#Edge|#Face|#CurrentLevel}
allBitsMustMatch default value: false
set default value: true
undoable default value: false

フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。

   

プレビュー モード

<void><EditablePoly>.PreviewBegin <enum>previewOperation

previewOperation enums:{ #GrowSelection | #ShrinkSelection | #SelectEdgeLoop | #SelectEdgeRing | 
#HideSelection | #HideUnselected | UnhideAll | #NamedSelectionCopy | #NamedSelectionPaste | 
#Cap | #Delete | #Remove | #Detach | #AttachList | #SplitEdges | #BreakVertex | #Collapse | 
#ResetSlicePlane | #Slice | #WeldSelected | #CreateShape | #MakePlanar | #AlignGrid | #AlignView | 
#RemoveIsoVerts | #MeshSmooth | #Tessellate | #Update | #SelectByVertexColor | #Retriangulate | 
#FlipNormals | #SelectByMatID | #SelectBySmoothingGroups | #Autosmooth | #ClearSmoothingGroups | 
#Extrude | #Bevel | #Inset | #Outline | #ExtrudeAlongSpline | #HingeFromEdge | 
#ConnectEdges | #ConnectVertices | #Chamfer | #Cut | #RemoveIsoMapVerts | #ToggleShadedFaces | 
#MakePlanarInX | #MakePlanarInY |#MakePlanarInZ}

指定された操作をプレビューします。選択したサブオブジェクトをリアルタイムに操作するための、インタラクティブなダイアログ ボックスを作成します。

--次のスクリプトは、平面と小さなメニューを作成して、選択されたポリゴンを
--インタラクティブに押し出します。
p = convertToPoly(Plane()) --平面を作成し、Epoly に変換します。
select p --平面を選択
max modify mode -- [修正]パネルに移動
subobjectlevel = 4 --[サブオブジェクト]モードを[ポリゴン]に設定
rollout extrude_faces"Extrude" --ロールアウトを定義
(
button try_it"Preview"across:3 --新しい押し出しを開始するためのボタン
button cancel_it"Cancel" --プレビューをキャンセルするためのボタン
button accept_it"Accept" --押し出しを確定するためのボタン
on cancel_it pressed do p.previewCancel() --キャンセル
on accept_it pressed do p.previewAccept() --確定
on try_it pressed do p.previewBegin #Extrude --再度開始
)
createDialog extrude_faces 200 30 --ロールアウトを使ってダイアログ ボックスを作成
--スクリプトを実行してポリゴンを選択し、[プレビュー]を押して 
--それらがインタラクティブに押し出されることを確認します。
--結果が満足であれば[受諾]を、破棄する場合は[キャンセル]を押します。
--次の押し出しなどを確認する場合は、[プレビュー]を再度押します。
<void><EditablePoly>.PreviewCancel ()

インタラクティブ プレビューをキャンセルします。

   

<void><EditablePoly>.PreviewAccept ()

インタラクティブ プレビューの結果を確定します。

   

<void><EditablePoly>.PreviewInvalidate ()

プレビューの結果を無効にします。

   

<bool><EditablePoly>.PreviewOn ()

プレビュー モードを有効にします。

   

<void><EditablePoly>.PreviewSetDragging <bool>dragging

プレビューでのドラッグを有効/無効にします。

   

<bool><EditablePoly>.PreviewGetDragging ()

プレビューでのドラッグが有効な場合は true、それ以外の場合は false を返します。

   

<bool><EditablePoly>.PopupDialog <enum>popupOperation

popupOperation enums:{#GrowSelection | #ShrinkSelection | #SelectEdgeLoop | #SelectEdgeRing | 
#HideSelection | #HideUnselected | #UnhideAll | #NamedSelectionCopy | #NamedSelectionPaste | 
#Cap | #Delete | #Remove | #Detach | #AttachList | #SplitEdges | #BreakVertex | #Collapse | 
#ResetSlicePlane | #Slice | #WeldSelected | #CreateShape | #MakePlanar | #AlignGrid | #AlignView | 
#RemoveIsoVerts | #MeshSmooth | #Tessellate | #Update | #SelectByVertexColor | #Retriangulate | 
#FlipNormals | #SelectByMatID | #SelectBySmoothingGroups #Autosmooth | #ClearSmoothingGroups | 
#Extrude | #Bevel | #Inset | #Outline | #ExtrudeAlongSpline | #HingeFromEdge | 
#ConnectEdges | #ConnectVertices | #Chamfer | #Cut | #RemoveIsoMapVerts | #ToggleShadedFaces | 
#MakePlanarInX | #MakePlanarInY |#MakePlanarInZ}

次の押し出しなどを確認する場合は、[プレビュー]を再度押します。

   

<void><EditablePoly>.ClosePopupDialog ()

ポップアップ ダイアログ ボックスを閉じます。

   

前回の操作の繰り返し

<void><EditablePoly>.RepeatLastOperation ()

現在のサブオブジェクト レベルで前回の操作を繰り返します。

選択の変換

<void><EditablePoly>.GrowSelection selLevel:<enum>

selLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
selLevel default value: #CurrentLevel

指定されたサブオブジェクト レベルの選択を拡大します。

   

<void><EditablePoly>.ShrinkSelection selLevel:<enum>

selLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
selLevel default value: #CurrentLevel

指定されたサブオブジェクト レベルの選択を縮小します。

   

<integer><EditablePoly>.ConvertSelection <enum>fromSelLevel <enum>toSelLevel [requireAll:<bool>]

fromSelLevel enums: {#Object|#Vertex|#Edge|#Border|#Face|#Element|#CurrentLevel}
toSelLevel enums: {#Object|#Vertex|#Edge|#Border|#Face|#Element|#CurrentLevel}
requireAll default value: false

指定されたソース サブオブジェクトから指定されたターゲット サブオブジェクトに、選択レベルを変換します。選択されたターゲット サブオブジェクト要素の数を返します。

   

<void><EditablePoly>.SelectBorder ()

現在選択されているエッジを含む境界線を選択します。

   

<void><EditablePoly>.SelectElement ()

現在選択されている面を含む要素を選択します。

   

<void><EditablePoly>.SelectEdgeLoop ()

現在選択されているエッジを含むエッジ ループを選択します。

   

<void><EditablePoly>.SelectEdgeRing ()

現在選択されているエッジを使用するエッジ リングを選択します。

   

<void><EditablePoly>.setRingShift <integer>RingShiftValue <bool>MoveOnly <bool>Add

リング選択を移動します。

3ds Max 8 以降 で使用可能です。

RingShiftValue は、シフトするエッジの量です。

MoveOnly が true である場合は、選択されているエッジが移動し、Add が true であって MoveOnly が true である場合は、新しく選択されたエッジが現在の選択に追加されます。

MoveOnly を true、Add を false にすると、新しく選択したエッジが現在の選択から削除されます。

   

<void><EditablePoly>.setLoopShift <integer>LoopShiftValue <bool>MoveOnly <bool>Add

ループ選択を移動します。

3ds Max 8 以降 で使用可能です。

LoopShiftValue は、シフトするエッジの量です。

MoveOnly が true である場合は、選択されているエッジが移動し、Add が true であって MoveOnly が true である場合は、新しく選択されたエッジが現在の選択に追加されます。

MoveOnly を true、Add を false にすると、新しく選択したエッジが現在の選択から削除されます。

   

<integer><EditablePoly>.ConvertSelectionToBorder <enum>fromSelLevel <enum>toSelLevel

fromSelLevel enums:{#Object|#Vertex|#Edge|#Border|#Face|#Element|#CurrentLevel}
toSelLevel enums:{#Object|#Vertex|#Edge|#Border|#Face|#Element|#CurrentLevel}

現在の選択を境界線選択に変換します。最初の引数は、変換元のサブオブジェクト タイプを表します。2 番目の引数は、変換先のサブオブジェクト タイプを表します。3ds Max 8 以降 で使用可能です。

   

削除

<bool><EditablePoly>.Remove selLevel:<enum> flag:<DWORD>

selLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
selLevel default value: #CurrentLevel
flag default value: 1

フラグに定義されたサブオブジェクトを指定されたサブオブジェクト レベルから削除します。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
polyop.setVertSelection p #{13} --頂点を選択
p.EditablePoly.Remove selLevel:#Vertex
p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
polyop.setVertSelection p #{13} --頂点を選択
select p --オブジェクトを選択
subobjectlevel = 1 --頂点レベルに変更
p.Remove() --現在の選択を削除
 

アウトライン

<bool><EditablePoly>.Outline [faceFlag:<DWORD>]

faceFlag default value: 1

フラグに定義されたポリゴンのアウトラインを作成します。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getFacesByFlag」を参照してください。

   

接続

<bool><EditablePoly>.ConnectEdges edgeFlag:<DWORD>

edgeFlag default value: 1

フラグに定義されたエッジを接続します。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getEdgesByFlag」を参照してください。

   

<bool><EditablePoly>.ConnectVertices vertexFlag:<DWORD>

vertexFlag default value: 1

フラグに定義された頂点を接続します。正常に終了した場合は true を返します。

フラグ ビットの説明は、「polyOp.getVertsByFlag」を参照してください。

   

シェーディング面の切り替え

<void><EditablePoly>.ToggleShadedFaces ()

シェーディング ポリゴンを切り替えます。

   

選択の取得/設定

<enum><EditablePoly>.GetEPolySelLevel ()

GetEPolySelLevel enums: {#Object|#Vertex|#Edge|#Border|#Face|#Element|#CurrentLevel}

[修正]パネルに設定された EditablePoly の選択レベルを返します。

   

<enum><EditablePoly>.GetMeshSelLevel ()

GetMeshSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}

メッシュ選択レベルを返します。メッシュ選択レベルは、現在のサブオブジェクト レベルで選択できるサブオブジェクトです。

サブオブジェクト レベルがエッジと境界線の場合は #Edge を返し、ポリゴンと要素の場合は #Face を返します。

   

<bitArray><EditablePoly>.GetSelection <enum>selectionLevel

selectionLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}

指定されたサブオブジェクト レベルで選択されたサブオブジェクトを bitarray として返します。

   

<void><EditablePoly>.SetSelection <enum>selectionLevel <bitArray>selection

selectionLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}

bitarray を使用して、指定されたサブオブジェクト レベルでサブオブジェクトを選択します。

例:

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
p.SetSelection #Face #{1,2,3} -ポリゴン 1、2、3 を選択
p.SetSelection #Vertex #{1,2,3} --頂点 1、2、3 を選択

頂点の取得

<integer><EditablePoly>.GetNumVertices ()

EditablePoly の頂点の数を返します。

例:

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
num_vert = p.GetNumVertices() --num_vert には 25 が含まれる
<point3><EditablePoly>.GetVertex <index>vertexID

指定されたインデックスを持つ頂点の座標を返します

例:

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
--平面にあるすべての頂点をループし、
--各頂点の座標を出力
for i = 1 to p.GetNumVertices() do
print (p.GetVertex i)
<integer><EditablePoly>.GetVertexFaceCount <index>vertexID

指定されたインデックスを持つ頂点の座標を返します

例:

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
--平面にあるすべての頂点をループし、各頂点を使用する
--ポリゴンの数を出力: 
for i = 1 to p.GetNumVertices() do
print (p.GetVertexFaceCount i)
<index><EditablePoly>.GetVertexFace <index>vertexID <index>face

指定された頂点を共有する N 番目のポリゴンの面インデックスを返します(N は 1 ~この頂点を使用するポリゴンの数)。

face 引数が頂点を共有するポリゴン数よりも大きい場合、関数は 0 を返します。

例:

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
--平面内の頂点 13 を共有するすべての面のインデックスを出力します。
for i = 1 to (p.EditablePoly.GetVertexFaceCount 13) do
print (p.EditablePoly.GetVertexFace 13 i)
<integer><EditablePoly>.GetVertexEdgeCount <index>vertexID

指定された頂点を共有するエッジの数を返します。

例:

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
p.GetVertexEdgeCount 1 --コーナーの頂点の場合は 2 を返します
p.GetVertexEdgeCount 2 --側面の頂点の場合は 3 を返します
p.GetVertexEdgeCount 13 --内側の頂点の場合は 4 を返します
<index><EditablePoly>.GetVertexEdge <index>vertexID <index>edge

指定された頂点を共有する N 番目のエッジのエッジ インデックスを返します(N は 1 ~この頂点を共有するエッジの数)。

edge 引数が頂点を共有するエッジ数よりも大きい場合、関数は 0 を返します。

例:

p = convertToPoly(Plane())--平面を作成し、Epoly に変換
--平面内の頂点 13 を共有するすべてのエッジのインデックスを出力します。
for i = 1 to (p.GetVertexEdgeCount 13) do
print (p.GetEdgeFace 13 i)

エッジの取得

<integer><EditablePoly>.GetNumEdges ()

EditablePoly のエッジの数を返します。

例:

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
num_edges = p.GetNumEdges() --num_edges には 40 が含まれる
<index><EditablePoly>.GetEdgeVertex <index>edgeID <index>end

指定されたエッジで使用される頂点インデックスを返します。

エッジには 2 つの頂点があるため、取得するエッジの 2 つの頂点のどちらかを定義するために end 引数が必要となります。

例:

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
p.GetEdgeVertex 1 1 --頂点 6 を返す
p.GetEdgeVertex 1 2 --頂点 1 を返す
p.GetEdgeVertex 4 1 --頂点 1 を返す
p.GetEdgeVertex 4 2 --頂点 2 を返す
<index><EditablePoly>.GetEdgeFace <index>edgeID <index>side

指定されたエッジで使用される面インデックスを返します。エッジは 2 つの面を持つ可能性があるため、取得可能な 2 つの面のどちらかを定義するために side 引数が必要となります。

例:

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
p.GetEdgeFace 18 1 --面 6 を返します
p.GetEdgeFace 18 2 --面 7 を返します
p.GetEdgeFace 4 1 --面 1 を返します
p.GetEdgeFace 4 2 --2 番目の面がない場合は 0 を返します

面の取得

<integer><EditablePoly>.GetNumFaces ()

EditablePoly の面の数を返します。

例:

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
num_faces = p.GetNumFaces() --num_faces には 16 が含まれる
<integer><EditablePoly>.GetFaceDegree <index>faceID

指定されたポリゴンにあるコーナーの数を返します。3 は三角形、4 は四角形を表します。

例:

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
p.setSelection #Vertex #{13} --中間頂点を選択
p.GetFaceDegree 1 -- コーナー面の角度は 4 
p.Remove selLevel:#Vertex --中間頂点を削除
p.GetFaceDegree 6 -- 中間面の角度は 8 
<index><EditablePoly>.GetFaceVertex <index>faceID <index>corner

指定された面で使用される N 番目の頂点の頂点インデックスを返します(N は 1 から面のコーナー数の間になります)。

corner 引数が面のコーナー数よりも大きい場合、関数は 0 を返します。

例:

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
p.GetFaceVertex1 1 --面 6 を返します
p.GetFaceVertex1 2 --面 1 を返します
p.GetFaceVertex13 --面 2 を返します
p.GetFaceVertex14 --面 7 を返します
p.GetFaceVertex15 --5 番目のコーナーがない場合は 0 を返します
<index><EditablePoly>.GetFaceEdge <index>faceID <index>side

指定された面で使用される N 番目の頂点の頂点インデックスを返します(N は 1 から面のコーナー数の間になります)。

corner 引数が面のコーナー数よりも大きい場合、関数は 0 を返します。

例:

p = convertToPoly(Plane()) --平面を作成し、Epoly に変換
p.GetFaceEdge1 1 --面 1 を返します
p.GetFaceEdge1 2 --面 4 を返します
p.GetFaceEdge13 --面 3 を返します
p.GetFaceEdge14 --面 2 を返します
p.GetFaceEdge15 --5 番目のエッジがない場合は 0 を返します
<index><EditablePoly>.GetFaceMaterial <index>faceID

指定された面のマテリアル ID を返します。

face インデックスが EditablePoly の面の数よりも大きい場合、関数は 1 を返します。

   

<DWORD><EditablePoly>.GetFaceSmoothingGroups <index>faceID

指定された面のスムージング グループを返します。

face インデックスが EditablePoly の面の数よりも大きい場合、関数は 0 を返します。

   

マップ チャンネルの取得

<integer><EditablePoly>.GetNumMapChannels ()

EditablePoly のマッピング チャンネルの数を返します。

   

<bool><EditablePoly>.GetMapChannelActive <integer>mapChannel

指定されたマッピング チャンネルがアクティブな場合は true を返し、それ以外の場合は false を返します。

mapChannel 引数が利用可能なマッピング チャンネルの数よりも大きい場合、関数は false を返します。

   

<integer><EditablePoly>.GetNumMapVertices <integer>mapChannel

指定されたマッピング チャンネルのテキスチャ頂点の数を返します。

mapChannel 引数が利用可能なマッピング チャンネルの数よりも大きい場合は 0 を返します。

   

<point3><EditablePoly>.GetMapVertex <integer>mapChannel <index>vertexID

指定されたマッピング チャンネルの指定されたテキスチャ頂点の値を返します。

mapChannel 引数が利用可能なマッピング チャンネルの数よりも大きい場合、または頂点インデックスがテキスチャ頂点の数よりも大きい場合、[0,0,0]を返します。

   

<integer><EditablePoly>.GetMapFaceVertex <integer>mapChannel <index>faceID <index>corner

指定された面で使用される N 番目のテキスチャ頂点のテキスチャ頂点インデックスを返します(N は 1 から面のコーナー数の間になります)。corner 引数が面のコーナー数よりも大きい場合、関数は -1 を返します。

   

頂点カラー、イルミネーションおよびアルファの取得/設定

<void><EditablePoly>.SetVertexColor <color>color <enum>Channel

Channel enums: {#VertexColor|#Illumination|#Alpha}

選択された頂点の頂点カラー、イルミネーションまたはアルファ 値を指定されたカラー値に設定します。

編集可能ポリゴン ユーザ インタフェースの頂点カラーを編集ロールアウト内で使用するカラーピッカーに対応します。

3ds Max 2010 以降 で使用可能です。

   

<void><EditablePoly>.SetFaceColor <color>color <enum>Channel

Channel enums: {#VertexColor|#Illumination|#Alpha}

選択されたポリゴンの頂点カラー、イルミネーションまたはアルファ 値を指定されたカラー値に設定します。

選択されたポリゴンで使われるすべての頂点に影響します。

編集可能ポリゴン ユーザ インタフェースの頂点カラーを編集ロールアウト内で使用するカラーピッカーに対応します。

3ds Max 2010 以降 で使用可能です。

   

<color by value><EditablePoly>.GetVertexColor <enum>Channel

Channel enums: {#VertexColor|#Illumination|#Alpha}

選択された頂点の頂点カラー、イルミネーションまたはアルファ 値を取得します。

3ds Max 2010 以降 で使用可能です。

   

<color by value><EditablePoly>.GetFaceColor <enum>Channel

Channel enums: {#VertexColor|#Illumination|#Alpha}

選択されたポリゴンの頂点カラー、イルミネーションまたはアルファ値を取得します。

3ds Max 2010 以降 で使用可能です。

   

ペイント変形

<void><EditablePoly>.CommitPaintDeform ()

ペイント変形を確定し、変形キャッシュをリセットします。

ユーザ インタフェースの[確定]ボタンを押した場合に対応します。

3ds Max 2010 以降 で使用可能です。

   

<void><EditablePoly>.CancelPaintDeform ()

ペイント変形をキャンセルし、変形キャッシュをリセットします。

3ds Max 2010 以降 で使用可能です。

   

関連事項