Editable_Poly インタフェース:
メソッド:
表示/非表示
<bool><EditablePoly>.Hide <enum>mnSelLevel [flags:<DWORD>]
mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
flags 既定値: 1
指定されたサブオブジェクト レベルで flags によって定義されたサブオブジェクトを非表示にします。正常に終了した場合は true を返します。
フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。
<bool><EditablePoly>.unhideAll <enum>mnSelLevel
mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
指定されたサブオブジェクト レベルを表示します。[修正](Modify)パネルが、効果を得るためにこのメソッドの同じサブジェクト レベル内にある必要はありません。正常に終了した場合は
true を返します。
例
|
p = convertToPoly(Plane()) --create a plane, convert to EPoly
polyop.setFaceSelection p #{1,2} --select the first two polygons
p.Hide #Face --hide the two polygons
sleep 1 --wait a second
p.UnHideAll #Face --unhide all hidden faces again
|
名前付き選択セットのコピー/貼り付け
<void><EditablePoly>.EditablePoly.namedSelCopy <string>Name
選択を指定された名前にコピーします。
<void><EditablePoly>.namedSelPaste <bool>useRenameDialog
名前付き選択を貼り付けます。useRenameDialog が true の場合は[名前変更](Rename)ダイアログ ボックスを使用可能にします。
作成
<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()) --create a plane, convert to EPoly
p.createEdge 1 7 --create edge between vertices 1 and 7
|
<index><EditablePoly>.createFace <index array>vertexArray [select:<bool>]
select default value: false
指定された頂点の配列を使用して新しい面を作成します。オプションの select 引数が true の場合、作成後に新しい面が選択されます。新しい面のインデックスを返します。
例
|
p = convertToPoly(Plane()) --create a plane, convert to EPoly
polyop.DeleteFaces p #(1) --delete the first polygon
p.createFace #(1,6,5) --create a new polygon on its place
|
<bool><EditablePoly>.capHoles <enum>mnSelLevel [flags:<DWORD>]
mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
flags 既定値: 1
新しい面を作成し、開いたエッジ ループをキャップします。msSelLevel enums を使用して、穴を定義する開いたエッジ ループを取得します。正常に終了した場合は
true を返します。
フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。
例
|
p = convertToPoly(Plane()) --create a plane, convert to EPoly
polyop.DeleteFaces p # (6) --delete a polygon
--select all polygons surrounding the deleted one
polyop.SetFaceSelection p #(1,2,3,5,6,8,9,10)
select p --select the plane
max modify mode --switch to Modify panel
subObjectLevel = 4 --go to Face level to see the selection
p.capHoles #Face --cap the hole using the selection
|
削除
<bool><EditablePoly>.delete <enum>mnSelLevel [flags:<DWORD>] [deleteIsoVerts:<bool>]
mnSelLevelenums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
flags 既定値: 1
deleteIsoVerts 既定値: 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()) --create a plane, convert to EPoly
s = sphere radius:5 --create a sphere primitive
p.attach s s --attach sphere to EPoly
p = convertToPoly(Plane()) --create a plane, convert to EPoly
b = Box() --create a box primitive
b.rotation = eulerangles 45 45 0 --rotate the box
t = teapot radius:5 --create a teapot primitive
p.attach t b --attach teapot to EPoly using the box's transformation
|
<bool><EditablePoly>.detachToElement <enum>mnSelLevel [flags:<DWORD>] [keepOriginal:<bool>]
mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
flags 既定値: 1
keepOriginal 既定値: false
指定されたサブオブジェクト レベルで flags によって定義されたサブオブジェクトを要素にデタッチします。正常に終了した場合は true を返します。
フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。
例
|
p = convertToPoly(Plane()) --create a plane, convert to EPoly
polyop.SetFaceSelection p #(6) --select polygon 6
--Detach the selected polygon to element, keeping the original:
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 既定値: false
vertexCoefficients を使用して指定されたポリゴンを分割し、新しいエッジを配置します。新しい頂点のインデックスを返します。 select が true の場合、新しい頂点が選択されます。
頂点の挿入
<index><EditablePoly>.insertVertexInFace <index>faceID <&float array>vertexCoefficients [select:<bool>]
vertexCoefficients is In and Out parameter
select 既定値: false
指定されたポリゴン内部に頂点を挿入します。新しい頂点のインデックスを返します。
例
|
p = convertToPoly(Plane()) --create a plane, convert to Epoly
--Insert new vertex in the middle of polygon 6.
--new_vert will contain the index of the newly created vertex:
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()) --create a plane, convert to Epoly
--Insert new vertex and split edge 17 at 1/3 of its edge.
--new_vert will contain the index of the newly created vertex:
new_vert = p.insertVertexInEdge 17 0.3
polyOp.setVertSelection p #{new_vert} --select the new vertex
select p --select the plane
max modify mode --switch to modify panel
subObjectLevel = 1 --go to Vertex level and check it out
|
集約
<bool><EditablePoly>.collapse <enum>mnSelLevel [flags:<DWORD>]
mnSelLevel enums: {#Object|#Vertex|#Edge|#Face|#CurrentLevel}
flags 既定値: 1
指定されたサブオブジェクト レベルで flags によって定義されたサブオブジェクトを集約します。正常に終了した場合は true を返します。
フラグ ビットの説明は、「polyOp.getVertsByFlag」、「polyOp.getEdgesByFlag」、および「polyOp.getFacesByFlag」を参照してください。
例
|
p = convertToPoly(Plane()) --create a plane, convert to Epoly
polyop.setVertSelection p #{7,8,12,13} --select some vertices
p.EditablePoly.collapse #Vertex --collapse the selected vertices
|
面の押し出し
<void><EditablePoly>.extrudeFaces <float>amount [faceFlags:<DWORD>]
faceFlags default value: 1
faceFlags で定義されたポリゴンを指定された量だけ押し出します。
既定では、選択されたポリゴンを意味するフラグ 1 を使用します。
フラグ ビットの説明は、「polyOp.getFacesByFlag」を参照してください。
サンプル スクリプト
|
--create a skyscraper-like structure through random extrusions
p = convertToPoly(Plane()) --create a plane, convert to Epoly
for i = 1 to 50 do --repeat 50 times
(
polyop.setFaceSelection p #{(random 1 16)} --select a random polygon
p.extrudeFaces 5.0 --extrude the selection
)
|
<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」を参照してください。
例
|
--create a futuristic skyline through random bevels
p = convertToPoly(Plane()) --create a plane, convert to Epoly
for i = 1 to 50 do --repeat 50 times
(
polyop.setFaceSelection p #{(random 1 16)} --select a random polygon
p.bevelFaces 5.0 (random 0.0 -1.0) --randomly bevel the selection
)
|
面取り
<void><EditablePoly>.chamferVertices <float>amount open:<bool>
open default value: false
指定された量を使用して選択された頂点を面取りします。
オプションの open: キーワードを指定して true に設定すると、面取り操作によって生成される新しい面は削除されて開口部が残ります。
3ds Max 8 以降 で使用可能です。
例
|
p = convertToPoly (Plane()) --create a plane, convert to Epoly
polyop.setVertSelection p #{1,5,21,25} --select the corner vertices
p.EditablePoly.chamferVertices 5.0 --chamfer the selection
|
<void><EditablePoly>.chamferEdges <float>amount open:<bool>
open default value: false
指定された量を使用して選択されたエッジを面取りします。
オプションの open: キーワードを指定して true に設定すると、面取り操作によって生成される新しい面は削除されて開口部が残ります。
3ds Max 8 以降 で使用可能です。
例
|
p = convertToPoly (Plane()) --create a plane, convert to Epoly
polyop.setEdgeSelection p #{7,10} --select two side edges
p.EditablePoly.chamferEdges 5.0 --chamfer the selection
|
ブリッジ
<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 を返します。
例
|
b = box() --create a box
b.heightsegs = b.widthsegs = b.lengthsegs = 5 --set segments to 5
convertToPoly(b) --convert to Editable Poly
--select the central faces on both sides of the box:
polyOp.setFaceSelection b #{57..59, 62..64, 67..69, 107..109, 112..114, 117..119}
b.bridgeSegments = 5 --set the bridge segments property to 5
b.bridge selLevel: #Face --bridge the selected polygons
|
<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 を返します。
例
|
b = box() --create a box
b.heightsegs = b.widthsegs = b.lengthsegs = 5 --set segments to 5
convertToPoly(b) --convert to Editable Poly
b.relaxAmount = 1.5 --set the relax amount property to 1.5
b.relax selLevel:#Object --relax the whole mesh
b2 = box() --create another box
b2.heightsegs = b2.widthsegs = b2.lengthsegs = 5 --set segments to 5
convertToPoly(b2) --convert to Editable Poly
b2.relaxAmount = -1.5 --set the relax amount property to-1.5
b2.pos = [40,0,0] --place the box 40 units from the first one
b2.relax selLevel:#Object --relax the whole mesh
|
スライス
<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」を参照してください。
例
|
--create a box, convert to Epoly
p = convertToPoly(Box())
--slice using a diagonal plane at height 10
p.slice [0,1,1] [0,0,10]
--select a side polygon
polyop.setFaceSelection p #{3}
--slice the selected polygon only using a horizontal plane at height 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()) --create a plane, convert to Epoly
polyop.setVertSelection p #{7,8,12,13} --select some vertices
p.movetoplane [0,0,1] 5.0 #Vertex --move 5.0 units along +Z
|
<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()) --create a Box, convert to Epoly
polyop.setVertSelection p #{5,6} --select two top vertices
select p --select the EPoly
p.AlignToGrid #Vertex --align vertices to current grid
|
<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()) --create a plane, convert to Epoly
polyop.setVertSelection p #{7,8,12,13} --select some vertices
p.EditablePoly.alignToView #Vertex --align to current view
|
<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()) --create a Box, convert to Epoly
polyop.setVertSelection p #{1} --select a vertex
--apply meshSmooth 3 times to the selected vertex:
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()) --create a Box, convert to Epoly
polyop.setVertSelection p #{1} --select a vertex
--apply tessellate 3 times to the selected vertex:
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 |#Relax | #BridgeBorder | #BridgePolygon | #BridgeEdge | #PreserveUVSettings | #MakeHardEdges | #MakeSmoothEdges | #SelectHardEdges | #SelectSmoothEdges}
指定された Editable_Poly の UI ボタンを押します。
例
|
p = convertToPoly(Plane()) --create a Box, convert to Epoly
polyop.setFaceSelection p #{6} --select a single polygon
select p --select the object
max modify mode --go to modify panel
subobjectlevel = 4 --go to polygon sub-object level
p.ButtonOp #GrowSelection --grow the selection
|
<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= #{} --define an empty bitarray
b = bit.Set 0 1 true --set the first bit to true
--now call the function and supply the empty array as
--In parameter by reference and the flag bit to filter out
$.getVerticesByFlag&my_array b
--Now look at the content of the bitarray -
--it will contain the vertices that have their first flag bit set
--(bit 1 stands for selected, so it will contain the vertex selection)
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= #{} --define an empty bitarray
b = bit.Set 0 1 true --set the first bit to true
--now call the function and supply the empty array as
--In parameter by reference and the flag bit to filter out
$.getEdgesByFlag&my_array b
--Now look at the content of the bitarray:
--it will contain the edges that have their first flag bit set
--(bit 1 stands for selected, so it will contain the edge selection)
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= #{} --define an empty bitarray
b = bit.Set 0 1 true --set the first bit to true
--now call the function and supply the empty array as
--In parameter by reference and the flag bit to filter out
$.getFacesByFlag&my_array b
--Now look at the content of the bitarray:
--it will contain the faces that have their first flag bit set
--(bit 1 stands for selected, so it will contain the face selection)
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()) --create a plane, convert to Epoly
my_array= #{1,2,3,4} --define an bitarray with some bits set
b = bit.Set 0 1 true --set the first bit to true
--now call the function and supply the array as
--In parameter by reference and the flag bit to get
p.setVertexFlags&my_array b
--Since flag bit 1 stands for selected, the above will basically select
--the first 4 vertices in the EditablePoly by setting the
--corresponding flag bits. So let's take a look:
select p --select the plane
max modify mode --go to modify panel
subObjectLevel = 1 --set sub-object level to vertex -
--the first 4 vertices should be selected
|
<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()) --create a plane, convert to Epoly
my_array= #{1,2,3,4} --define an bitarray with some bits set
b = bit.Set 0 1 true --set the first bit to true
--now call the function and supply the array as
--In parameter by reference and the flag bit to get
p.setEdgeFlags&my_array b
--Since flag bit 1 stands for selected, the above will basically select
--the first 4 vertices in the EditablePoly by setting the
--corresponding flag bits. So let's take a look:
select p --select the plane
max modify mode --go to modify panel
subObjectLevel = 2 --set sub-object level to edge -
--the first 4 edges should be selected
|
<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()) --create a plane, convert to Epoly
my_array= #{1,2,3,4} --define an bitarray with some bits set
b = bit.Set 0 1 true --set the first bit to true
--now call the function and supply the array as
--In parameter by reference and the flag bit to get
p.setFaceFlags&my_array b
--Since flag bit 1 stands for selected, the above will basically select
--the first 4 vertices in the EditablePoly by setting the
--corresponding flag bits. So let's take a look:
select p --select the plane
max modify mode --go to modify panel
subObjectLevel = 4 --set sub-object level to face -
--the first 4 faces should be selected
|
スライス平面
<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
スライス平面の方向、中心、およびサイズを取得します。
例
|
--Define variables to hold the Out parameters:
plane_normal = Point3 0 0 0
plane_center = Point3 0 0 0
plane_size = 1.0
--Call the function and supply the variables by reference as In parameters
$.getSlicePlane &plane_normal &plane_center &plane_size
--The variables will now contain the actual values of the slice plane:
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
スライス平面の方向、中心、およびサイズを設定します。
例
|
--Define variables to hold the In parameters:
plane_normal = Point3 0 1 0
plane_center = Point3 5 5 6
--Call the function and supply the variables by reference as In parameters
$.setSlicePlane &plane_normal &plane_center 20.0
--The slice plane transforms should have changed
|
データの取得/設定
<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} --select vertices 1 and 2
-->OK
numsel = 1 --define a variable to pass by reference
-->1 --it will contain the number of vertices
uniform = false --define a boolean var. for uniformity
-->false --will be true when values are uniform
p.getVertexData 1 &numsel &uniform --check default values
-->1.0 --default value returned is 1.0
numsel--look at the selection number again
-->2 --two vertices were encountered
uniform --check the uniformity
-->true --both vertices had the same value
p.setVertexData 1 100.0 --now change values to 100.0
-->OK
p.getVertexData 1 &numsel &uniform --and read it back
-->100.0 --the value has changed!
numsel --look at the selection number again
-->2 --still two vertices encountered
uniform --check the uniformity
-->true --both vertices still have the same value
polyop.setVertSelection p #{3} --select vertex 3 alone
-->OK
p.setVertexData 1 200.0 --change value to 200.0
-->OK
p.getVertexData 1 &numsel &uniform --get the value
-->200.0 --it is 200.0 as desired
polyop.setVertSelection p #{1,2,3} --select all 3 vertices
-->OK
p.getVertexData 1 &numsel &uniform --get all 3 values
-->100.0 --result is 100.0 because vert.1 is the first encountered
numsel --check how many vertices have been selected
-->3 --we selected 3 and there were actually 3
uniform --were the values uniform?
-->false --we have two 100.0 and one 200.0 value, not uniform
|
<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} --select vertices 1 and 2
-->OK
numsel = 1 --define a variable to pass by reference
-->1 --it will contain the number of vertices
uniform = false --define a boolean var. for uniformity
-->false --will be true when values are uniform
p.getVertexData 1 &numsel &uniform --check default values
-->1.0 --default value returned is 1.0
p.beginModifyPerData #vertex 1 --begin Modify Data state
-->OK
p.setVertexData 1 100.0 --change values to 100.0
-->OK
p.endModifyPerData false --end Modify state, say it failed
-->OK
p.getVertexData 1 &numsel &uniform --check the value
-->1.0 --the value has NOT changed!
p.beginModifyPerData #vertex 1 --again Modify Data state
-->OK
p.setVertexData 1 100.0 --change values to 100.0
-->OK
p.endModifyPerData true --end Modify state with success!
-->OK
p.getVertexData 1 &numsel &uniform --check the value
-->100.0 --the value has changed as we notified success!
|
<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 | #Relax | #BridgeBorder | #BridgePolygon | #BridgeEdge | #PreserveUVSettings | #MakeHardEdges | #MakeSmoothEdges | #SelectHardEdges | #SelectSmoothEdges}
指定された操作をプレビューします。選択したサブオブジェクトをリアルタイムに操作するための、インタラクティブなダイアログ ボックスを作成します。
例
|
--The following script creates a plane and a small menu to interactively
--extrude selected polygons.
p = convertToPoly(Plane()) --create a plane, turn to Epoly.
select p --select the plane
max modify mode --enter Modify panel
subobjectlevel = 4 --set Sub-Object mode to Polygon
rollout extrude_faces"Extrude" --define a rollout
(
button try_it"Preview"across:3 --a button to start a new extrusion
button cancel_it"Cancel" --a button to cancel preview
button accept_it"Accept" --a button to accept the extrusion
on cancel_it pressed do p.previewCancel() --cancel
on accept_it pressed do p.previewAccept() --accept
on try_it pressed do p.previewBegin #Extrude --begin again
)
createDialog extrude_faces 200 30 --create a dialog with the rollout
--Run the script, select some polygons, press Preview
--and watch them extrude interactively.
--Press Accept if you like the result, press Cancel to discard.
--Press Preview again for next extrusion etc.
|
<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 | #Relax | #BridgeBorder | #BridgePolygon | #BridgeEdge | #PreserveUVSettings | #MakeHardEdges | #MakeSmoothEdges |#SelectHardEdges | #SelectSmoothEdges}
次の押し出しなどを確認する場合は、[プレビュー](Preview)を再度押します。
<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()) --create a Plane, convert to Epoly
polyop.setVertSelection p #{13} --select a vertex
p.EditablePoly.Remove selLevel:#Vertex
p = convertToPoly(Plane()) --create a Plane, convert to Epoly
polyop.setVertSelection p #{13} --select a vertex
select p --select object
subobjectlevel = 1 --change to vertex level
p.Remove() --remove the current selection
|
アウトライン
<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}
[修正](Modify)パネルに設定された 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()) --create a Plane, convert to Epoly
p.SetSelection #Face #{1,2,3} --select polygons 1,2 and 3
p.SetSelection #Vertex #{1,2,3} --select vertices 1,2 and 3
|
頂点の取得
<integer><EditablePoly>.GetNumVertices ()
EditablePoly の頂点の数を返します。
例:
|
p = convertToPoly(Plane()) --create a Plane, convert to Epoly
num_vert = p.GetNumVertices() --num_vert will contain 25
|
<point3><EditablePoly>.GetVertex <index>vertexID
指定されたインデックスを持つ頂点の座標を返します
例:
|
p = convertToPoly(Plane()) --create a Plane, convert to Epoly
--loop through all vertices in the plane and print
--the coordinates of each one of them:
for i = 1 to p.GetNumVertices() do
print (p.GetVertex i)
|
<integer><EditablePoly>.GetVertexFaceCount <index>vertexID
指定されたインデックスを持つ頂点の座標を返します
例:
|
p = convertToPoly(Plane()) --create a Plane, convert to Epoly
--loop through all vertices in the plane and print the number
--of polygons that are using each of them:
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()) --create a Plane, convert to Epoly
--Print the indices of all faces sharing vertex 13 in the plane.
for i = 1 to (p.EditablePoly.GetVertexFaceCount 13) do
print (p.EditablePoly.GetVertexFace 13 i)
|
<integer><EditablePoly>.GetVertexEdgeCount <index>vertexID
指定された頂点を共有するエッジの数を返します。
例:
|
p = convertToPoly(Plane()) --create a Plane, convert to Epoly
p.GetVertexEdgeCount 1 --returns 2 for a corner vertex
p.GetVertexEdgeCount 2 --returns 3 for a side vertex
p.GetVertexEdgeCount 13 --returns 4 for an inside vertex
|
<index><EditablePoly>.GetVertexEdge <index>vertexID <index>edge
指定された頂点を共有する N 番目のエッジのエッジ インデックスを返します(N は 1 ~この頂点を使用するエッジの数)。
edge 引数が頂点を共有するエッジ数よりも大きい場合、関数は 0 を返します。
例:
|
p = convertToPoly(Plane())--create a Plane, convert to Epoly
--Print the indices of all edges sharing vertex 13 in the plane.
for i = 1 to (p.GetVertexEdgeCount 13) do
print (p.GetEdgeFace 13 i)
|
エッジの取得
<integer><EditablePoly>.GetNumEdges ()
EditablePoly のエッジの数を返します。
例:
|
p = convertToPoly(Plane()) --create a Plane, convert to Epoly
num_edges = p.GetNumEdges() --num_edges will contain 40
|
<index><EditablePoly>.GetEdgeVertex <index>edgeID <index>end
指定されたエッジで使用される頂点インデックスを返します。
エッジには 2 つの頂点があるため、取得するエッジの 2 つの頂点のどちらかを定義するために end 引数が必要となります。
例:
|
p = convertToPoly(Plane()) --create a Plane, convert to Epoly
p.GetEdgeVertex 1 1 --returns vertex 6
p.GetEdgeVertex 1 2 --returns vertex 1
p.GetEdgeVertex 4 1 --returns vertex 1
p.GetEdgeVertex 4 2 --returns vertex 2
|
<index><EditablePoly>.GetEdgeFace <index>edgeID <index>side
指定されたエッジで使用される面インデックスを返します。エッジは 2 つの面を持つ可能性があるため、取得可能な 2 つの面のどちらかを定義するために side 引数が必要となります。
例:
|
p = convertToPoly(Plane()) --create a Plane, convert to Epoly
p.GetEdgeFace 18 1 --returns face 6
p.GetEdgeFace 18 2 --returns face 7
p.GetEdgeFace 4 1 --returns face 1
p.GetEdgeFace 4 2 --returns 0 as there is no second face
|
面の取得
<integer><EditablePoly>.GetNumFaces ()
EditablePoly の面の数を返します。
例:
|
p = convertToPoly(Plane()) --create a Plane, convert to Epoly
num_faces = p.GetNumFaces() --num_faces will contain 16
|
<integer><EditablePoly>.GetFaceDegree <index>faceID
指定されたポリゴンにあるコーナーの数を返します。3 は三角形、4 は四角形、というようになります。
例:
|
p = convertToPoly(Plane()) --create a Plane, convert to Epoly
p.setSelection #Vertex #{13} --select the middle vertex
p.GetFaceDegree 1 -- degree of the corner face is 4
p.Remove selLevel:#Vertex --remove the middle vertex
p.GetFaceDegree 6 -- degree of the middle face is 8
|
<index><EditablePoly>.GetFaceVertex <index>faceID <index>corner
指定された面で使用される N 番目の頂点の頂点インデックスを返します((N は 1 ~面のコーナーの数)。
corner 引数が面のコーナー数よりも大きい場合、関数は 0 を返します。
例:
|
p = convertToPoly(Plane()) --create a Plane, convert to Epoly
p.GetFaceVertex 1 1 --returns face 6
p.GetFaceVertex 1 2 --returns face 1
p.GetFaceVertex 1 3 --returns face 2
p.GetFaceVertex 1 4 --returns face 7
p.GetFaceVertex 1 5 --returns 0, there is no fifth corner
|
<index><EditablePoly>.GetFaceEdge <index>faceID <index>side
指定された面で使用される N 番目の頂点の頂点インデックスを返します((N は 1 ~面のコーナーの数)。
corner 引数が面のコーナー数よりも大きい場合、関数は 0 を返します。
例:
|
p = convertToPoly(Plane()) --create a Plane, convert to Epoly
p.GetFaceEdge 1 1 --returns edge 1
p.GetFaceEdge 1 2 --returns edge 4
p.GetFaceEdge 1 3 --returns edge 3
p.GetFaceEdge 1 4 --returns edge 2
p.GetFaceEdge 1 5 --returns 0, there is no fifth edge
|
<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 ()
ペイント変形を確定し、変形キャッシュをリセットします。
ユーザ インタフェースの[確定](Commit)ボタンを押した場合に対応します。
3ds Max 2010 以降 で使用可能です。
<void><EditablePoly>.CancelPaintDeform ()
ペイント変形をキャンセルし、変形キャッシュをリセットします。
3ds Max 2010 以降 で使用可能です。
ハード エッジとスムーズ エッジ
<bool>Editable_Poly.makeHardEdges <DWORD>flag
フラグで指定されたエッジをハードに設定します。
3ds Max 2016 以降で使用可能です。
<bool>Editable_Poly.makeSmoothEdges <DWORD>flag
フラグで指定されたエッジをスムーズに設定します。
3ds Max 2016 以降で使用可能です。
<void>Editable_Poly.selectHardEdges()
すべてのハード エッジを選択します。
3ds Max 2016 以降で使用可能です。
<void>Editable_Poly.selectSmoothEdges()
すべてのスムーズ エッジを選択します。
3ds Max 2016 以降で使用可能です。