インタフェース: ProCutter
 
 
 

ProCutter 合成オブジェクトは、ProBoolean 拡張機能の一部で、3ds Max 9 以降の重要な機能です。カッター オブジェクトを使用して、1 つまたは複数のストック オブジェクトをカットするために使用します。

メソッド:

ProCutter.CreateCutter#( <object_1> { , <objectr_2> } ) <addMethod><stockOutsideCutter> <stockInsideCutter> <cutterOutsideStock><autoExtractMesh> <explodeByElements> 	 

1 つの配列に保管されているすべてのノード、<operand_1> および複数のノード <operand_2> を使用して ProCutter オブジェクトを作成します。

#( <object_1> { , <object_2> } ) - カッターの構築に使用するオブジェクトを指定します。カッターは <object_1> からノードおよびノード名を継承します。最初のノードのオブジェクトが最初のカッター サブオブジェクトになります。

<addMethod> は、<operand_2> ノードをどのように使用するかを指定します。有効な値は次のとおりです。1 - インスタンス。オペランドはオリジナル ノードのインスタンスです。

2 - 参照。オペランドはオリジナル ノードへの参照です。

3 - コピー。オペランドはオリジナル ノードのコピーです。

4 - 移動。オリジナル ノードは削除されます。

以下の 3 つのオプションのうち、いずれかを true に設定する必要があります。

<stockOutsideCutter> は、カッターの外部にある 1 つまたは複数のストックに対する処理を指定します。

True - カッター外部のストックを保持します。

Flase - カッター外部のストックを取り除きます。

<stockInsideCutter> は、カッター内部の 1 つまたは複数のストックの部分に対する処理を指定します。

True - カッター内部のストックを保持します。

Flase - カッター内部のストックを取り除きます。

<cutterOutsideStock> は、1 つまたは複数のストックの外部にあるカッターの部分に対する処理を指定します。

True - 1 つまたは複数のストック外部のカッターを保持します。

False - 1 つまたは複数のストック外部のカッターを取り除きます。

<autoExtractMesh> は、演算の結果をカッター合成オブジェクト内に保持するか、個別のメッシュに抽出するかを指定します。

True - 現在のオブジェクトを修正せず、ストック メッシュを単にカットして新しいオブジェクトを抽出します。操作が完了すると、サブオブジェクトを持たない編集可能メッシュが作成されます。このフラグは、カッターをクッキー カッターのように使用し、カッターを繰り返し利用してオブジェクト内に複数の穴を作成したい場合に便利です。

False - カッター合成オブジェクト内のすべてのオブジェクトを保持します。操作を実行すると、カッターとストックを編集可能なサブオブジェクトとして持つ手続き型カッター オブジェクトが作成されます。

<explodeByElements> は、メッシュ エレメントを個別のメッシュにするかどうかを指定します。

True - 各エレメントについて、個別のメッシュを作成します。「autoExtractMesh」、「stockOutsideCutter」、「stockInsideCutter」を true に設定しておいて、このフラグを true に設定すると、オブジェクトをより小さいボリュームに分割できるので便利です。

False -個々のボリュームのメッシュ エレメントを使用して 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 操作のスクリプト化

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 つのオブジェクトを複数の小さいボリュームに分解したいときに使用できる一連のコードです。

--- カッターを使用して、ストックのボリュームを
--- 個別のメッシュに抽出された
--- 個別の小さいボリュームに分割します。1 つのオブジェクトをより小さい断片へと
--- 「分解」したい場合には、
--- このように処理します。操作を完了しても、オリジナルのカッター オブジェクトは
--- 同じ位置にそのまま存在し、再び使用することができます。
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
関連事項