PolyToolsSelect : GlobalUtilityPlugin

3ds Max 2011 で導入された PolyToolsSelect グローバル ユーティリティ プラグインは、MAXScript にグラファイト選択ツールへのアクセスを提供するインタフェースをエクスポーズします。

この機能は、MAXScript ツールとして正式にサポートされていない複数の機能を使用する3ds Max 2010 において初めて実装されました。このインタフェースはすべての関連プロパティおよびメソッドを統合しているため、MAXScript のユーザは独自のツールを使用してそれらを適用することが可能です。

コンストラクタ:

Class instances not creatable by MAXScript

PolyToolsSelect インタフェース:

Interface: PolyToolsSelect

メソッド:

選択を修正

<boolean>PolyToolsSelect.Loop <boolean>cylinderEnds     

現在のサブオブジェクトの選択に基づいてループを選択します。

サブオブジェクト レベル ShiftPressed = False ShiftPressed = True
ポリゴン 隣接するポリゴンのセットを選択して適用し、ループを選択します。
エッジ エッジを選択して適用し、ループを選択します。 このツールを使用すると円柱の上部と下部のエッジでループを実現できます。その目的において、特に適しているツールです。
頂点 隣接する頂点のセットを選択して適用し、ループを選択します。 このツールを使用すると円柱の上部と下部の頂点でループを実現できます。その目的において、特に適しているツールです。
<boolean>PolyToolsSelect.Ring ()   

現在のサブオブジェクトの選択に基づいてリングを選択します。

サブオブジェクト レベル 機能
ポリゴン 1 つの行でポリゴンをいくつか選択して適用し、リングを選択します。より多くの行を選択すると、その追加の行が最初のものと同じ方向に行く場合にはより多くのリングが作成可能になります。
エッジ 法線エッジ リング ツールのように動作します。
頂点 1 つの行で頂点をいくつか選択して適用し、リングを選択します。より多くの行を選択すると、その追加の行が最初のものと同じ方向に行く場合にはより多くのリングが作成可能になります。
<boolean>PolyToolsSelect.GrowLoop ()

現在のサブオブジェクトの選択に基づいてループを拡大します。

サブオブジェクト レベル ShiftPressed = False ShiftPressed = True
ポリゴン 1 つの行で 2 つ以上のポリゴンが選択されている場合に機能します。閉じているループ上のポリゴンを選択して拡大しているループを変化させたり維持します。
エッジ エッジ ループを段階的に拡大します。 このツールを使用すると円柱の上部と下部のエッジでループを拡大できます。その目的において、特に適しているツールです。
頂点 隣接する頂点のセットを選択して適用し、ループを拡大します。 このツールを使用すると円柱の上部と下部の頂点でループを拡大できます。その目的において、特に適しているツールです。
<boolean>PolyToolsSelect.ShrinkLoop ()

現在のサブオブジェクトの選択に基づいてループを縮小します。

サブオブジェクト レベル 機能
ポリゴン ポリゴン ループを縮小します。
エッジ エッジ ループを縮小します。
頂点 頂点ループを縮小します。
<boolean>PolyToolsSelect.GrowRing ()

現在のサブオブジェクトの選択に基づいてエッジ リングを拡大します。

サブオブジェクト レベル 機能
ポリゴン ポリゴン リングを拡大します。
エッジ エッジ リングを拡大します。
頂点 頂点リングを拡大します。
<boolean>PolyToolsSelect.ShrinkRing ()

現在のサブオブジェクトの選択に基づいてエッジ リングを縮小します。

サブオブジェクト レベル 機能
ポリゴン ポリゴン リングを縮小します。
エッジ エッジ リングを縮小します。
頂点 頂点リングを縮小します。
<boolean>PolyToolsSelect.DotLoop <integer>value <boolean>cylinderEnds <boolean>opposite

1 つめの引数で定義されたギャップがあるループ(またはエッジのリング)内のサブオブジェクト要素を選択します。

複数の点線のループ/リングの操作が 1 度に実行できます。

ポリゴンおよび頂点のサブオブジェクト レベルでは、初期選択のセットが、他のどの選択した要素によっても囲まれないようにする必要があります。

サブオブジェクト レベル ShiftPressed = False AltPressed = False ShiftPressed = True AltPressed = False AltPressed = True
ポリゴン 1 つの行で 2 つ以上のポリゴンのセットを選択して適用し、ギャップのあるポリゴン ループを選択します。 ループ内でどのポリゴンが最初に動作するか切り替えて決めます。 効果なし。
エッジ エッジを選択して適用し、ギャップのあるエッジ ループを選択します。 エッジを選択して適用し、ギャップのあるエッジ リングを選択します。 このツールを使用すると円柱の上部と下部のエッジでループを実現できます。
頂点 1 つの行で 2 つ以上の頂点のセットを選択して適用し、ギャップのある頂点ループを選択します。 ループ内でどの頂点が最初に動作するか切り替えて決めます。 このツールを使用すると円柱の上部と下部のエッジでループを実現できます。
<boolean>PolyToolsSelect.DotRing <integer>value

引数で定義されるギャップがあるリングでサブオブジェクト要素を選択します。

複数の点線のループ/リングの操作が 1 度に実行できます。

ポリゴンおよび頂点のサブオブジェクト レベルでは、初期選択のセットが、他のどの選択した要素によっても囲まれないようにする必要があります。

サブオブジェクト レベル ShiftPressed = False AltPressed = False ShiftPressed = True AltPressed = False AltPressed = True
ポリゴン 1 つの行で 2 つ以上のポリゴンのセットを選択して適用し、ギャップのあるポリゴン ループを選択します。 ループ内でどのポリゴンが最初に動作するか切り替えて決めます。 効果なし
エッジ エッジを選択して適用し、ギャップのあるエッジ ループを選択します。 エッジを選択して適用し、ギャップのあるエッジ リングを選択します。 このツールを使用すると円柱の上端および下端のエッジでループを実現できます。
頂点 1 つの行で 2 つ以上の頂点のセットを選択して適用し、ギャップのある頂点ループを選択します。 ループ内でどの頂点が最初に動作するか切り替えて決めます。 このツールを使用すると円柱の上端および下端のエッジでループを実現できます。
<boolean>PolyToolsSelect.StepLoop <boolean>longestDir

選択した 2 つの要素間のサブオブジェクト ループ上で頂点、エッジ、または面を選択します。

ループが閉じている場合、最短の距離が選択されます。ただし、longestDir が true として渡される場合には、最長の距離が選択されます。

サブオブジェクト レベル AltPressed = False AltPressed = True
ポリゴン ポリゴン ループ上の 2 つのポリゴンを選択して適用し、その間にある要素を選択します。 ループが閉じている場合、既定値として最短の値になる代わりに、最長の距離が選択されます。
エッジ エッジ ループ上の 2 つのエッジを選択して適用し、その間にある要素を選択します。 ループが閉じている場合、最短の距離になる代わりに、最長の距離が選択されます。
頂点 頂点ループ上の 2 つの頂点を選択して適用し、その間にある要素を選択します。 ループが閉じている場合、最短の距離になる代わりに、最長の距離が選択されます。
<boolean>PolyToolsSelect.Outline ()

現在のサブオブジェクト選択のアウトラインを作成します。

外側の縁取りを選択します。

サブオブジェクト レベル ShiftPressed = False ShiftPressed = True
ポリゴン 現在の選択ポリゴンのポリゴン縁取りを選択します。 現在の選択ポリゴンのエッジ縁取りを選択します。
エッジ 現在の選択エッジのエッジ縁取りを選択します。
頂点 現在の選択頂点の頂点縁取りを選択します。
<boolean>PolyToolsSelect.Fill ()

2 つの選択したサブオブジェクト要素の間の領域を塗り潰します。この方法は 2 つの選択したサブオブジェクト要素の間に極端な角度がない場合にのみ機能することに注意してください。

サブオブジェクト レベル Shift NotPressed shiftPressed
ポリゴン 2 つのポリゴンを選択して適用し、その間の領域を塗り潰します。2 つのポリゴンは塗り潰しの上または下の角になります。塗り潰す領域の外側の縁取りは四角形ポリゴンである必要があります。 2 つのポリゴンを選択して適用し、リングを塗り潰します。2 つのポリゴンは塗り潰しの上または下の角になります。塗り潰す領域の外側の縁取りは四角形ポリゴンである必要があります。
エッジ サポートされていません。 サポートされていません。
頂点 2 つの頂点を選択して適用し、その間の領域を塗り潰します。2 つの頂点は塗り潰しの上または下の角になります。塗り潰す領域の外側の縁取りはきれいなループである必要があります。 2 つの頂点を選択して適用し、リングを塗り潰します。2 つの頂点は塗り潰しの上または下の角になります。塗り潰す領域の外側の縁取りはきれいなループである必要があります。
<boolean>PolyToolsSelect.FillHole ()

閉じた領域を塗り潰します。穴の中の 1 つのサブオブジェクト要素を選択して塗り潰します。選択した部分は、周囲の選択から独立している必要があります。たとえば、穴の周囲の選択したポリゴンと一切隣接していないポリゴンを選択する必要があります。

サブオブジェクト レベル 機能
ポリゴン 穴の中の 1 つのポリゴンを選択して塗り潰します。
エッジ 穴の中の 1 つのエッジを選択して塗り潰します。
頂点 穴の中の 1 つの頂点を選択して塗り潰します。
<boolean>PolyToolsSelect.Similar <boolean>edgeCount <boolean>edgeLength <boolean>faceCount <boolean>faceArea<boolean>topology <boolean>normal

選択した要素と類似のプロパティを持つサブオブジェクト要素を選択します。5 つの引数によってその類似性を判別するルールが定義されます。

これらのルールは現在のサブオブジェクト レベルによって次のように異なります。

サブオブジェクト レベル Argument1 Argument2 Argument3 Argument4 Argument5
ポリゴン [エッジ数](Edge Count) 選択した面と同数の側面を持つ面 [面範囲](Face Areas) 選択した面とほぼ同じ領域/サイズを持つ面 [トポロジ] (Topology) 選択した面と同じ周囲のエッジ トポロジを持つ面 法線方向 ほぼ同じ法線方向を共有する面 使用しない
エッジ [エッジの長さ](Edge Lengths) 選択したエッジとほぼ同じ長さを持つエッジ [面範囲](Face Areas) 選択したエッジとほぼ同じ、周囲の面の組み合わせた面領域を持つエッジ [トポロジ] (Topology) 選択したエッジと同じ周囲の面トポロジを持つエッジ 法線方向 ほぼ同じ法線方向を共有するエッジ 使用しない
頂点 [エッジ数](Edge Count) 選択した頂点とそこを起点とするエッジが同数である頂点 [エッジの長さ](Edge Length) 選択した頂点とほぼ同じ、頂点エッジの組み合わせたエッジの長さを持つ頂点 [面の数](Face Count) 選択した頂点と同じ数の周囲の面を持つ頂点 [面範囲](Face Areas) 選択した頂点とほぼ同じ、周囲の面の組み合わせた面領域を持つ頂点 法線方向 ほぼ同じ法線方向を共有する頂点
サブオブジェクト レベル 機能
ポリゴン 1 つまたは複数のポリゴンを選択して適用し、上記のルールに基づき類似だとされるポリゴンをすべて選択します。
エッジ 1 つまたは複数のエッジを選択して適用し、上記のルールに基づき類似だとされるエッジをすべて選択します。
頂点 1 つまたは複数の頂点を選択して適用し、上記のルールに基づき類似だとされる頂点をすべて選択します。

選択

<boolean>PolyToolsSelect.Tops <boolean>withinSel

モデルの押し出された部分を選択します。

サブオブジェクト レベル ShiftPressed = False ShiftPressed = True
ポリゴン 適用して、押し出されたポリゴンの上部を選択します。 現在の選択内容のうち、押し出されたポリゴンの上部を選択します。
エッジ 適用して、押し出されたポリゴンの上部のエッジ アウトラインを選択します。 現在の選択内で、押し出されたポリゴンの上部のエッジ アウトラインを選択します。
頂点 適用して、押し出されたポリゴンの上部の頂点を選択します。 現在の選択内で、押し出されたポリゴンの上部の頂点を選択します。
<boolean>PolyToolsSelect.HardEdges ()

エッジの面が同じスムージング グループを共有していないモデル内のすべてのエッジを選択します。

面のスムージング グループの値が 0 になっている(グループがまったく設定されていない)場合、ハード エッジとしてシェーディングされますが、この方法ではそれらのハード エッジは 0 のグループを共有しているため検出されません。

サブオブジェクト レベル 機能
ポリゴン サポートされていません。
エッジ エッジの面が同じスムージング グループを共有していないモデル内のすべてのエッジを選択します。
頂点 サポートされていません。

選択 - ランダム

<boolean>PolyToolsSelect.Random <float>percent <integer>number <integer>type <boolean>withinSel

パーセントまたは絶対数値でランダム サブオブジェクト要素を選択します。

1 つ目の引数は 0.0 から 100.0 までのパーセントの値になります。これが使用されるのは、3 つ目の引数が 1 に設定された場合のみです。

2 つめの引数は選択するサブオブジェクトの絶対数です。これが使用されるのは、3 つめの引数が 0 に設定された場合のみです。

3 つ目の引数によって選択モードが決まります。0 の場合は絶対数値、1 の場合はパーセントの値を使用することになります。

4 つめの引数は、選択対象をすべてのサブオブジェクトにするか選択したサブオブジェクトのみにするかを決めます。

サブオブジェクト レベル ShiftPressed = False ShiftPressed = True
ポリゴン ランダム ポリゴンを選択します。 現在の選択内のみでランダム ポリゴンを選択します。
エッジ ランダム エッジを選択します。 現在の選択内のみでランダム エッジを選択します。
頂点 ランダム頂点を選択します。 現在の選択内のみでランダム頂点を選択します。

例:

    thePlane = Plane widthsegs:20 lengthsegs:20 --create a plane
    convertTo thePlane Editable_Poly --convert to EPoly
    select thePlane --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Polygon level
    PolyToolsSelect.Random 0.0 20 0 false --select 20 randompolygons
    subObjectLevel = 2 --switch toEdgelevel
    PolyToolsSelect.Random 50.0 0 1 false --select50% of the edges
<boolean>PolyToolsSelect.RandomGrow ()

選択した領域の縁取りの外側でランダム サブオブジェクト要素を選択して選択内容を拡大します。

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

<boolean>PolyToolsSelect.RandomShrink ()

選択部分の縁取り上でランダム サブオブジェクト要素を選択解除して選択内容を縮小します。

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

<boolean>PolyToolsSelect.Even <integer>skip <boolean>withinSel

1 つめの引数で指定したサブオブジェクトの番号以外のサブオブジェクト要素を、2 つめから順に N 番目ごとに選択します。

2 つめの引数が false の場合、すべてのサブオブジェクトは選択対象とみなされます。

2 つめの引数が true の場合、すでに選択されているサブオブジェクトのみは選択対象とみなされます。

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

<boolean>PolyToolsSelect.Odd <integer>skip <boolean>withinSel

1 つめの引数で指定したサブオブジェクトの番号以外のサブオブジェクト要素を、1 つめから順に N 番目ごとに選択します。

2 つめの引数が false の場合、すべてのサブオブジェクトは選択対象とみなされます。

2 つ目の引数が true の場合、既に選択されているサブオブジェクトのみが選択対象とみなされます。

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

選択 - シンメトリ

<boolean>PolyToolsSelect.Symmetry <integer>axis

左右対称モデルのミラー軸でサブオブジェクト要素を選択します。

引数によって次のように軸が定義されます。

0 - X

1 - Y

2 - Z

オブジェクトの中心はオブジェクトの基点によって決定されます。

サブオブジェクト レベル 機能
ポリゴン モデルの 1 つの側面上でポリゴンを選択して適用し、選択された軸のシンメトリの側面上でポリゴンを選択します。
エッジ モデルの 1 つの側面上でエッジを選択して適用し、選択された軸のシンメトリの側面上でエッジを選択します。
頂点 モデルの 1 つの側面上で頂点を選択して適用し、選択された軸のシンメトリの側面上で頂点を選択します。

例:

    --Step 1:
    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Face level
    PolyOp.SetFaceSelection p #{38..40, 49, 50, 59, 60, 70, 80} --select some
    --Step2:
    PolyToolsSelect.Symmetry 0 --select symmetrical along X
    --Step3:
    PolyToolsSelect.Symmetry 1 --select symmetrical along Y

選択 - 数値

<boolean>PolyToolsSelect.NumericVertex <integer>edges <integer>type <boolean>withinSel

1 つ目の引数で指定されたエッジの数に基づき頂点を選択します。

2 つめの引数は比較のタイプを次のように設定します。

1 - 等しい

2 - より小さい

3 - より大きい

3 つ目の引数は現在の選択頂点内の頂点のみをテストする(true)か、オブジェクトのすべての頂点を使用する(false)かを設定します。

例:

    --Step 1:
    p= Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode--switch to modify panel
    subObjectLevel = 2 --switch to Edge level
    PolyToolsSelect.NumericVertex 4 1 false -- vertices with 4 edges
    --Step2:
    PolyToolsSelect.NumericVertex 4 2 false --vertices with less than 4 edges

    --Step 2:
    PolyToolsSelect.NumericVertex 3 1 false --vertices with 3 edges
    --Step 4:
    PolyToolsSelect.NumericVertex 2 1 false --vertices with 2 edges

<boolean>PolyToolsSelect.NumericEdge <boolean>withinSel

隣接するポリゴンが 1 つのみのエッジ(開いたエッジ)を選択します。

1 つ目の引数は現在の選択エッジ内のエッジのみをテストする(true)か、オブジェクトのすべてのエッジを使用する(false)かを設定します。

例:

    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    PolyOp.deleteFaces p #{45..48,58} --delete some faces to add open edges
    subObjectLevel = 2 --switch toEdgelevel
    PolyToolsSelect.NumericEdge false --select open edges

<boolean>PolyToolsSelect.NumericFace <integer>sides <integer>type <boolean>withinSel

1 つ目の引数で指定された側面の数に基づき面を選択します。

2 つめの引数は比較のタイプを次のように設定します。

1 - 等しい

2 - より小さい

3 - より大きい

3 つ目の引数は現在の選択面内の面のみをテストする(true)か、オブジェクトのすべての面を使用する(false)かを設定します。

選択 - 1/2ずつ

<boolean>PolyToolsSelect.Half <integer>axis <boolean>invert <boolean>withinSel

サブオブジェクト要素の半分を現在のサブオブジェクト レベルで選択します。

1 つめの引数によって次のように軸が定義されます。

1 - X

2 - Y

3 - Z

2 つめの引数によってオブジェクトの正の側面(true)または負の側面(false)の選択の設定が行われます。

3 つめの引数は全体のオブジェクトを使用する(false)か現在の選択のみを使用する(true)かを設定します。

例:

    --Step 1:
    s = sphere radius:12 segs:40 wirecolor:blue
    convertTo s Editable_Poly --convert to EPoly
    select s --select the sphere
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to facelevel
    --Step 2: Select positive (right) side along X using all faces
    PolyToolsSelect.Half 1 true false
    --Step 3: Select negative (front) side along Y using the existing selection
    PolyToolsSelect.Half 2 false true
    --Step 4:Select positive (top) side along Z using the existing selection
    PolyToolsSelect.Half 3 true true

選択 - 法線で

<boolean>PolyToolsSelect.Normal <integer>axis <float>value <boolean>invert

法線ベクトルに基づき現在のサブオブジェクト レベルでサブオブジェクト要素を選択します。

1 つめの引数は参照ワールド軸を次のように定義します。

1 - ワールド X

2 - ワールド Y

3 - ワールド Z

2 つめの引数は角度しきい値を定義します。しきい値を下回るように参照ワールド軸が付いた角度を定義する法線を持つサブオブジェクトが選択されます。

3 つめの引数は、しきい値を下回る法線を持つサブオブジェクトを選択するか、しきい値を上回る法線を持つサブオブジェクトを選択するか定義します。

例:

    --Step 1:
    s = geosphere radius:12 segs:10 wirecolor:blue pos:[0,0,-5]
    convertTo s Editable_Poly --convert to EPoly
    select s--select the geosphere
    max modify mode --switch to modify panel
    subObjectLevel = 1 --switch to Vertex level
    PolyToolsSelect.Normal 3 15 false --select vertices within 15 degrees to +Z
    --Step2:
    subObjectLevel = 2 --switch to Edge level
    PolyToolsSelect.Normal 3 15 false --selectedgeswithin 15 degrees to +Z
    --Step3:
    subObjectLevel = 4 --switch to Face level
    PolyToolsSelect.Normal 3 15 false --select faces within 15 degrees to +Z
    --Step4:
    PolyToolsSelect.Normal 3 15 true --selectfaces outside of15 degrees to +Z

選択 - パース

<boolean>PolyToolsSelect.Perspective <float>value <boolean>outline

現在のサブオブジェクト レベルで、現在のビューの Z 軸に対する指定のしきい値の範囲内である法線を持つサブオブジェクト要素を選択します。

1 つめの引数は角度しきい値を定義します。

2 つ目の引数はしきい値範囲内のすべてのサブオブジェクトを選択対象とする(false)か、選択のアウトラインに隣接するサブオブジェクトのみを選択対象とする(true)かを設定します。

例:

    --Step 1:
    s = geosphere radius:12 segs:10 wirecolor:blue
    convertTo s Editable_Poly --convert to EPoly
    select s --select the geosphere
    max modify mode --switch to modify panel
    subObjectLevel = 1 --switch to Vertex level
    PolyToolsSelect.Perspective 30 false
    --Step 2:
    PolyToolsSelect.Perspective 30 true

    --Step 3:
    subObjectLevel = 2 --switch to Edge level
    PolyToolsSelect.Perspective 30 false
    --Step 4:
    PolyToolsSelect.Perspective 30 true

    --Step 5:
    subObjectLevel = 4 --switch to Face level
    PolyToolsSelect.Perspective 30 false
    --Step 6:
    PolyToolsSelect.Perspective 30 true

選択 - パース ビューからグロー

<boolean>PolyToolsSelect.PerspectiveGrow <float>value

ビューワの位置に対して最も近いサブオブジェクト要素を 0 と考え、またビューワから離れるように選択部分をワールド単位で拡大していくことで、現在のビュー スペースでサブ選択を拡大します。

例:

    --Step 1:
    s = geosphere radius:12 segs:10 wirecolor:blue
    convertTo s Editable_Poly --convert to EPoly
    select s --select the geosphere
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Face level
    PolyToolsSelect.PerspectiveGrow 2

    --Step 2:
    PolyToolsSelect.PerspectiveGrow 12

天球体の半径は 12 単位のため、12 の値で選択すると現在のビューでほぼ半分の球体が選択されます(Camera001 - 左イメージ)。

選択 - 基点距離

<boolean>PolyToolsSelect.Distance <float>value

オブジェクトの基点までの最短距離に対するパーセントに基づき現在のレベルでサブオブジェクトを選択します。

1 つめの引数でパーセントが提示されます。

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    t = teapot radius:10 segs:10 wirecolor:blue
    convertTo t Editable_Poly --convert to EPoly
    select t --select the teapot
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Face level
    PolyToolsSelect.Distance 70.0 --and select using 70%
    --Step2:
    PolyToolsSelect.Distance 60.0 -- select using60%

    --Step 3:
    s.pivot = [0,0,5] --move pivot up by half the radius
    resetxform s --reset XForm
    collapseStack s --and collapse the stack
    subObjectLevel = 4 --switch toFacelevel
    PolyToolsSelect.Distance 70.0 --and select again using 70%
    --Step 4:
    PolyToolsSelect.Distance 60.0

選択 - サーフェス

<boolean>PolyToolsSelect.ConvexConcave <float>value <integer>isConcave

現在のサブオブジェクト レベルで凸凹のしきい値に基づきサブオブジェクトを選択します。

1 つめの引数はしきい値になります。

2 つめの引数は、次のように UI における凸凹のフライアウトのインデックスになります。

1 - 凹型

2 - 凸型

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    t = teapot radius:10 segs:10 wirecolor:blue
    convertTo t Editable_Poly --convert to EPoly
    select t --select theteapot
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Facelevel
    PolyToolsSelect.ConvexConcave 0.05 1 --Select Concave Faces
    --Step 2:
    PolyToolsSelect.ConvexConcave 0.001 2 --Select Convex Faces

選択 - パターン

<boolean>PolyToolsSelect.Pattern1 <integer>times

パターン繰り返しの指定回数として選択パターン 1 を適用します。

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Face level
    PolyOp.SetFaceSelection p #{45} --select a central face
    --Step 2:
    PolyToolsSelect.Pattern1 1
    --Step 3:
    PolyToolsSelect.Pattern1 1
    --Step 4:
    PolyToolsSelect.Pattern1 1
    --Step 5:
    PolyToolsSelect.Pattern1 1
    --Step 6:
    PolyToolsSelect.Pattern1 1

ステップ 1 の操作を行い内部で反復を行った後、呼び出すことで

    PolyToolsSelect.Pattern1 5

右上のスクリーンショットのような表示が得られることに注意してください。

<boolean>PolyToolsSelect.Pattern2 <integer>times

パターン繰り返しの指定回数として選択パターン 2 を適用します。

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Face level
    PolyOp.SetFaceSelection p #{45} --select a central face
    --Step 2:
    PolyToolsSelect.Pattern2 1
    --Step 3:
    PolyToolsSelect.Pattern2 1
    --Step 4:
    PolyToolsSelect.Pattern2 1
    --Step 5:
    PolyToolsSelect.Pattern2 1
    --Step 6:
    PolyToolsSelect.Pattern2 1

<boolean>PolyToolsSelect.Pattern3 <integer>times

パターン繰り返しの指定回数として選択パターン 3 を適用します。

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch toFacelevel
    PolyOp.SetFaceSelection p #{45} --select a central face
    --Step 2:
    PolyToolsSelect.Pattern3 1
    --Step 3:
    PolyToolsSelect.Pattern3 1
    --Step 4:
    PolyToolsSelect.Pattern3 1

<boolean>PolyToolsSelect.Pattern4 <integer>times

パターン繰り返しの指定回数として選択パターン 4 を適用します。

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch toFacelevel
    PolyOp.SetFaceSelection p #{45} --select a central face
    --Step 2:
    PolyToolsSelect.Pattern4 1
    --Step 3:
    PolyToolsSelect.Pattern4 1
    --Step 4:
    PolyToolsSelect.Pattern4 1
    --Step 5:
    PolyToolsSelect.Pattern4 1
    --Step 6:
    PolyToolsSelect.Pattern4 1

<boolean>PolyToolsSelect.Pattern5 <integer>times

パターン繰り返しの指定回数として選択パターン 5 を適用します。

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Face level
    PolyOp.SetFaceSelection p #{45} --select a central face
    --Step 2:
    PolyToolsSelect.Pattern5 1
    --Step 3:
    PolyToolsSelect.Pattern5 1
    --Step 4:
    PolyToolsSelect.Pattern5 1
    --Step 5:
    PolyToolsSelect.Pattern5 1
    --Step 6:
    PolyToolsSelect.Pattern5 1
    --Step 7:
    PolyToolsSelect.Pattern5 1
    --Step 8:
    PolyToolsSelect.Pattern5 1

<boolean>PolyToolsSelect.Pattern6 <integer>times

パターン繰り返しの指定回数として選択パターン 6 を適用します。

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch toFacelevel
    PolyOp.SetFaceSelection p #{45} --select a central face
    --Step 2:
    PolyToolsSelect.Pattern6 1
    --Step 3:
    PolyToolsSelect.Pattern6 1
    --Step 4:
    PolyToolsSelect.Pattern6 1
    --Step 5:
    PolyToolsSelect.Pattern6 1
    --Step 6:
    PolyToolsSelect.Pattern6 1
    --Step 7:
    PolyToolsSelect.Pattern6 1
    --Step 8:
    PolyToolsSelect.Pattern6 1

<boolean>PolyToolsSelect.Pattern7 <integer>times

パターン繰り返しの指定回数として選択パターン 7 を適用します。

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Face level
    PolyOp.SetFaceSelection p #{45} --select a central face
    --Step 2:
    PolyToolsSelect.Pattern7 1
    --Step 3:
    PolyToolsSelect.Pattern7 1
    --Step 4:
    PolyToolsSelect.Pattern7 1
    --Step 5:
    PolyToolsSelect.Pattern7 1
    --Step 6:
    PolyToolsSelect.Pattern7 1
    --Step 7:
    PolyToolsSelect.Pattern7 1
    --Step 8:
    PolyToolsSelect.Pattern7 1

<boolean>PolyToolsSelect.Pattern8 <integer>times

パターン繰り返しの指定回数として選択パターン 8 を適用します。

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Face level
    PolyOp.SetFaceSelection p #{45}--select a central face
    --Step 2:
    PolyToolsSelect.Pattern8 1
    --Step 3:
    PolyToolsSelect.Pattern8 1
    --Step 4:
    PolyToolsSelect.Pattern8 1
    --Step 5:
    PolyToolsSelect.Pattern8 1
    --Step 6:
    PolyToolsSelect.Pattern8 1
    --Step 7:
    PolyToolsSelect.Pattern8 1
    --Step 8:
    PolyToolsSelect.Pattern8 1

<boolean>PolyToolsSelect.PatternDots <integer>times

パターン繰り返しの指定回数として選択パターン ドットを適用します。

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Face level
    PolyOp.SetFaceSelection p #{45} --select a central face
    --Step 2:
    PolyToolsSelect.PatternDots 1
    --Step 3:
    PolyToolsSelect.PatternDots 1
    --Step 4:
    PolyToolsSelect.PatternDots 1
    --Step 5:
    PolyToolsSelect.PatternDots 1
    --Step 6:
    PolyToolsSelect.PatternDots 1

<boolean>PolyToolsSelect.PatternChecker <integer>times

パターン繰り返しの指定回数として選択パターン チェックを適用します。

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Face level
    PolyOp.SetFaceSelection p #{45} --select a central face
    --Step 2:
    PolyToolsSelect.PatternChecker 1
    --Step 3:
    PolyToolsSelect.PatternChecker 1
    --Step 4:
    PolyToolsSelect.PatternChecker 1
    --Step 5:
    PolyToolsSelect.PatternChecker 1
    --Step 6:
    PolyToolsSelect.PatternChecker 1

<boolean>PolyToolsSelect.PatternGrowLine <integer>times

パターン繰り返しの指定回数として選択パターン グロー ラインを適用します。

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Face level
    PolyOp.SetFaceSelection p #{45} --select a central face
    --Step 2:
    PolyToolsSelect.PatternGrowLine 1
    --Step 3:
    PolyToolsSelect.PatternGrowLine 1
    --Step 4:
    PolyToolsSelect.PatternGrowLine 1
    --Step 5:
    PolyToolsSelect.PatternGrowLine 1
    --Step 6:
    PolyToolsSelect.PatternGrowLine 1

<boolean>PolyToolsSelect.PatternOneRing <integer>times

パターン繰り返しの指定回数として選択パターンひとつのリングを適用します。

成功した場合は true を、失敗した場合は false を返します。たとえば、有効なサブオブジェクト モードでない場合などです。

例:

    --Step 1:
    p = Plane widthsegs:10 lengthsegs:10 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Face level
    PolyOp.SetFaceSelection p #{45} --select a central face
    --Step 2:
    PolyToolsSelect.PatternOneRing 1
    --Step 3:
    PolyToolsSelect.PatternOneRing 1
    --Step 4:
    PolyToolsSelect.PatternOneRing 1
    --Step 5:
    PolyToolsSelect.PatternOneRing 1
    --Step 6:
    PolyToolsSelect.PatternOneRing 1

選択 - ビットマップ

<boolean>PolyToolsSelect.BitmapToSel <string>file <integer>mapchannel <point3>color

現在のサブオブジェクト レベルで、ビットマップ アプリケーションの指定のマッピング チャネルを使用しているビットマップ ファイルのカラーに基づきサブオブジェクトを選択します。

最初の引数はオブジェクト変数の名前です。

2 つめの引数はジオメトリへのビットマップのマッピング時に使用するマッピング チャネルになります。

3 つめの引数は選択対象として使用するビットマップのカラーになります。

内部的には、カラーはビルトインのしきい値 +/- 8.0 (256/8= 32 なので、しきい値は 1/32 またはおよそ 3%になります)で比較されます。

例:

    --Step 1:
    p = Plane widthsegs:50 lengthsegs:50 wirecolor:blue --create a plane
    convertTo p Editable_Poly --convert to EPoly
    select p --select the plane
    max modify mode --switch to modify panel
    subObjectLevel = 4 --switch to Edge level
    --Select faces where the bitmap color is pure white.
    PolyToolsSelect.BitmapToSel "ELMLEAF.TGA" 1 white
    --Step 2: Select faces where color is black.
    PolyToolsSelect.BitmapToSel "ELMLEAF.TGA" 1 black

    --Step 3:
    PolyToolsSelect.BitmapToSel "ELMLEAF.TGA" 1 (white*0.97)
    --Step 4:
    PolyToolsSelect.BitmapToSel "ELMLEAF.TGA" 1 (white*0.96)

    --Step 3:
    PolyToolsSelect.BitmapToSel "ELMLEAF.TGA" 1 (white*0.04)
    --Step 4:
    PolyToolsSelect.BitmapToSel "ELMLEAF.TGA" 1 (white*0.03)