The ProCutter Compound Object is part of the ProBoolean Extension which is integral part of 3ds Max 9 and higher.
It can be used to cut one or more stock objects using a cutter object:
ProCutter.CreateCutter #(<object_1>{,<objectr_2>}) <addMethod> <stockOutsideCutter> <stockInsideCutter> <cutterOutsideStock> <autoExtractMesh> <explodeByElements>
Creates a ProCutter object using node <operand_1> and multiple nodes <operand_2>, all stored in an array.
#( <object_1> { , <object_2> } ) -Specifies the objects used to build the Cutter. Note that the cutter will take over the node and name from <object_1>. The object of the first node will become the first cutter sub-object.
<addMethod> specifies how the <operand_2> node(s) will be used.
1 - instance, operand is an instance of the original node
2 - reference, operand is a reference to original node
3 - copy, operand is a copy of original node
4 - move, original node should be deleted
One of the following three options must be set to true:
<stockOutsideCutter> specifies what to do with the portions of the Stock or Stocks outside the Cutter.
True - keep Stock outside the Cutter
False -remove Stock outside the Cutter
<stockInsideCutter> specifies what to do with the portions of the Stock or Stocks inside the Cutter.
True - keep Stock inside the Cutter
False -remove Stock inside the Cutter
<cutterOutsideStock> specifies what to do with the portions of the Cutter outside of the Stock or Stocks.
True - keep Cutter outside of the Stock(s)
False -remove Cutter outside of the Stock(s)
<autoExtractMesh> specifies whether the result of the operation should be maintained in the Cutter compound object or extracted into separate mesh.
True - don't modify the cutter object, just cut the stock mesh and extract it into a new object. Note that once the operation is done, the result is an editable mesh with no sub-objects. This flag is useful if you want to use the cutter like a cookie cutter where you reuse the cutter over and over to make holes in an object.
False - maintain all objects in the Cutter compound object. Once the operation is performed the result is a procedural Cutter object with both cutters and stocks as sub-objects that can be edited.
<explodeByElements> specifies whether mesh elements should be separated into individual meshes.
True - creates a separate mesh for each element. It is a good way to break apart an object into smaller volumes by setting this flag to true while <autoExtractMesh> along with <stockOutsideCutter> and <stockInsideCutter> are also set to true.
False -create a single mesh with a mesh element for each separate volume.
Adds one or more stock objects to an existing ProCutter compound object.
<cutter_object> is the original ProCutter node created using ProCutter.CreateCutter()
#(<stock_2>{,<stock_2>}) - specifies one or more stock nodes in an array of nodes. Note that even if you have only one stock object, you need to use an array, for example #(stockb).
<mat_method> specifies how the materials of the two operands should be handled. Possible values are:
Gets the index of the operand currently selected in the operands list.
Sets the index of the operand to be selected in the operands list.
These methods get and set whether Results or Operands are displayed. If true, Result is displayed. If false, Operands are displayed.
these methods get and set whether Results + Hidden Operands are displayed. If true, Results + Hidden Operands are displayed. If false, the Results or Operands as specified using ProCutter.SetDisplayResult() are displayed.
These methods get and set the Update mode as follows:
These methods get and set the decimation percentage that determines the percentage of edges that will be removed from the total set of polygons on this Boolean.
These methods get and set whether the operation will change the tessellation of the Boolean from triangles to quadrilaterals
These methods get and set the percentage of the overall length of the quadrilaterals.
These methods determine how the polygons on planar faces will be handled:
1 - Removes all extra co-planar edges on a face
2 - Removes only invisible edges on each face
The ProCutter is a two stage operation for scripting. First you create the cutter then you add stocks to the existing cutter.
EXAMPLE 1 |
Create two boxes to be used in cutter and one box for stock. The resulting cutter object will contain 3 operands. |