ProCutter 合成オブジェクトは、3ds Max 9 以上のバージョンの中核となる ProBoolean 拡張機能の一部です。
カッター オブジェクトを使用して 1 つまたは複数のストック オブジェクトを切り取るときに使用できます。
メソッド:
ProCutter.CreateCutter #(<object_1>{,<objectr_2>}) <addMethod> <stockOutsideCutter> <stockInsideCutter> <cutterOutsideStock> <autoExtractMesh> <explodeByElements>
ノード <operand_1>
、およびすべてが つの配列に保管されている複数のノード <operand_2>
を使用して、ProCutter オブジェクトを作成します。
#( <object_1> { , <object_2> } )
: カッターを作成するために使用するオブジェクトを指定します。カッターは、<object_1>
からノードと名前を継承します。最初のノードのオブジェクトは、最初のカッター サブオブジェクトになります。
<addMethod>
は、<operand_2>
ノードの使用法を指定します。
有効な値は次のとおりです。
1 - オペランドはオリジナル ノードのインスタンスです。
2 - 参照。オペランドはオリジナル ノードへの参照です。
3 - コピー。オペランドはオリジナル ノードのコピーです。
4 - 移動。オリジナル ノードは削除されます。
次の 3 つのオプションの 1 つを true に設定する必要があります。
<stockOutsideCutter>
は、カッター外部の(複数の)ストック部の処理を指定します。
True - カッター外部のストックを保持します。
Flase - カッター外部のストックを取り除きます。
<stockInsideCutter>
は、カッター内部の(複数の)ストック部の処理を指定します。
True - カッター内部のストックを保持します。
Flase - カッター内部のストックを取り除きます。
<cutterOutsideStock>
は、(複数の)ストック外部のカッター部の処理を指定します。
True - ストック外部のカッターを保持します。
False - 1 つまたは複数のストック外部のカッターを取り除きます。
<autoExtractMesh>
は、操作の結果をカッター合成オブジェクトに保持するか、または別のメッシュに抽出するかを指定します。
True - 現在のオブジェクトを修正せず、ストック メッシュを単にカットして新しいオブジェクトを抽出します。操作が完了すると、サブオブジェクトを持たない編集可能メッシュが作成されます。このフラグは、カッターをクッキー カッターのように使用し、カッターを繰り返し利用してオブジェクト内に複数の穴を作成したい場合に便利です。
False - カッター合成オブジェクト内のすべてのオブジェクトを保持します。- 操作を実行した後の結果は、編集可能なサブオブジェクトとしてカッターとストックの両方が含まれる手続き型のカッター オブジェクトです。
<explodeByElements>
は、メッシュ要素を個々のメッシュに分離するかどうかを指定します。
True - 要素ごとに別々のメッシュを作成します。このフラグを true に設定し、同時に <autoExtractMesh>
、<stockOutsideCutter>
、および <stockInsideCutter>
も true に設定することにより、1 つのオブジェクトを小ボリュームに分割するようお勧めします。
False - 別々のボリュームごとに、1 つのメッシュ要素に対して 1 つのメッシュを作成します。
ProCutter.AddStocks <cutter_object> #(<stock_1>{,<stock_2>}) <addMethod> <matMethod>
既存の ProCutter 合成オブジェクトに 1 つまたは複数のストック オブジェクトを追加します。
<cutter_object>
は、ProCutter.CreateCutter()
を使用して作成された元々の ProCutter ノードです。
#(<stock_2>{,<stock_2>})
- ノードの配列内の 1 つまたは複数のストック ノードを指定します。- ストック オブジェクトが 1 つしかない場合でも、#(stockb) などのように配列を使用する必要があります。
<mat_method>
は、2 つのオペランドのマテリアルの処理方法を指定します。有効な値は次のとおりです。
1 - オペランド マテリアルを適用
2 - 元のマテリアルを保持
ProCutter.getOperandSel <bool_obj> <integer>
オペランド リスト内で現在選択されているオペランドのインデックスを取得します。
ProCutter.setOperandSel <bool_obj> <integer> <boolean>
オペランド リスト内で選択するオペランドのインデックスを設定します。
ProCutter.getDisplayResult <bool_obj>
ProCutter.setDisplayResult <bool_obj> <boolean>
これらのメソッドでは、結果またはオペランドが表示されるかどうかを取得および設定します。true の場合は、結果が表示されます。false の場合は、オペランドが表示されます。
ProCutter.getShowHiddenOps <bool_obj>
ProCutter.setShowHiddenOps <bool_obj> <boolean>
これらのメソッドでは、結果および非表示オペランドが表示されるかどうかを取得および設定します。true の場合は、結果と非表示オペランドが表示されます。false の場合は、ProCutter.SetDisplayResult()
を使用して指定された結果またはオペランドが表示されます。
ProCutter.getUpdateMode <bool_obj>
ProCutter.setUpdateMode <bool_obj> <integer>
これらのメソッドでは、次のような更新モードを取得および設定します。
0 - 常時
1 - 選択時に更新
2 - レンダリング時に更新
3 - 手動で更新
ProCutter.getDecimationPercent <bool_obj>
ProCutter.setDecimationPercent <bool_obj> <float>
これらのメソッドは、このブール値のポリゴンのセット全体から削除されるエッジのパーセンテージを決定する、デシメーションのパーセンテージを取得および設定します。
ProCutter.getMakeQuad <bool_obj>
ProCutter.setMakeQuad <bool_obj> <boolean>
これらのメソッドは、操作によってブール値の面分割が三角形から四角形に変更されるかどうかを取得および設定します。
ProCutter.getQuadSizePercent <bool_obj>
ProCutter.setQuadSizePercent <bool_obj> <float>
これらのメソッドは、四角形の全体的な長さのパーセンテージを取得および設定します。
ProCutter.getPlanarEdgeRemoval <bool_obj>
ProCutter.setPlanarEdgeRemoval <bool_obj> <integer>
これらのメソッドにより、平面上にあるポリゴンの処理方法を決定します。
1 - 面上にあるすべての余分な同一平面状にあるエッジを削除
2 - 各面上の非表示のエッジだけを除去
3 - エッジを削除しない
ProCutter は、スクリプティング用の 2 段階の演算です。まずカッターを作成してから、既存のカッターにストックを追加します。
例 1
カッターに使用する 2 つのボックスと、ストックに使用する 1 つのボックスを作成します。作成されるカッター オブジェクトには 3 つのオペランドが含まれます。
a = box length:10 height:10 width:10 b = box length:4 height:4 width:15 c = box length:13 height:15 width:10 ProCutter.CreateCutter #(a,b) 1 True False False False False ProCutter.AddStocks a #(c) 1 1
例 2
1 つのオブジェクトを複数の小さいボリュームに分解したいときに使用できる一連のコードです。
--- Use cutter to break apart volumes of stock --- into separate little volumes that are extracted --- into separate meshes. This is what you might do --- if you want an object to "explode" into smaller --- pieces. Note that after the operation the original --- cutter object stays around and can be used again. a = box length:10 height:10 width:10 b = box length:4 height:4 width:15 c = box length:13 height:15 width:10 ProCutter.CreateCutter #(a,b) 1 True True False True True ProCutter.AddStocks a #(c) 1 1