The PolyToolsTopology GlobalUtilityPlugin introduced in 3ds Max 2011 exposes an interface that provides MAXScript access to the Graphite Topology tools.
The functionality was first implemented in 3ds Max 2010 using different functions that were not officially supported as MAXScript tools. This interface consolidates all relevant properties and methods and lets MAXScript users apply them in their own tools.
Constructor:
Class instances not creatable by MAXScript
PolyToolsTopology interfaces:
Interface: PolyToolsTopology
Methods:
<boolean>PolyToolsTopology.Wall ()
Generates a wall type topology with bricks of different sizes.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Wall()
<boolean>PolyToolsTopology.Tiles1 ()
Generates a tile type topology.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step2: PolyToolsTopology.Tiles1()
<boolean>PolyToolsTopology.Tiles2 ()
Generates a different tile type topology.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step2: PolyToolsTopology.Tiles2()
<boolean>PolyToolsTopology.Brick ()
Generates a brick-like topology.
Requires exactly one edge to be selected. The direction of the selected edge determines which way is "up".
The method will only succeed if the selected edge is within the quad topology.
Returns true on success, false if the above conditions are not met.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Mosiac()
<boolean>PolyToolsTopology.Hive ()
Generates a beehive-like topology.
Requires exactly one edge to be selected. The direction of the selected edge determines which way is "up".
The method will only succeed if the selected edge is within the quad topology.
Returns true on success, false if the above conditions are not met.
EXAMPLE:
--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 PolyOp.SetEdgeSelection p #{61} --select one edge to define up direction --Step 2: PolyToolsTopology.Hive()
<boolean>PolyToolsTopology.Mosiac ()
Generates a mosaic topology with random bricks of different sizes.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step2: PolyToolsTopology.Mosiac()
<boolean>PolyToolsTopology.Floor1 ()
Works like a combination of .EdgeDirection()
and .Tiles1()
. First turns the edge direction to crossing direction, then removes random edges to create tiles of different sizes.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Floor1()
<boolean>PolyToolsTopology.Floor2 ()
Works like a combination of .EdgeDirection()
and .Wall()
. First turns the edge direction to crossing direction, then removes edges to create bricks of different sizes.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Floor2()
<boolean>PolyToolsTopology.Skin ()
Generates a skin type topology with rounded patches.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Skin()
<boolean>PolyToolsTopology.Holer ()
Generates "holes" in the topology. See also .Tatter()
further on this page.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Holer()
<boolean>PolyToolsTopology.EdgeDirection ()
Changes the direction of the topology to a crossing direction.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.EdgeDirection ()
<boolean>PolyToolsTopology.Simplify ()
Simplifies the topology by removing random parts here and there, but keeping areas of edges intact.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Simplify ()
<boolean>PolyToolsTopology.Chaos ()
When applied to a grid of quads, generates a chaotic topology with randomly shaped patches.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Chaos()
<boolean>PolyToolsTopology.Fours ()
When applied to a grid of quads, generates a tile type topology that consists of mostly larger quads.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Fours()
<boolean>PolyToolsTopology.SmoothStar ()
When applied to a grid of quads, generates a random smoothed stars topology.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.SmoothStar ()
<boolean>PolyToolsTopology.Cross ()
When applied to a grid of quads, generates a topology with cross-like patters.
Returns true on success, false on failure.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Cross()
<boolean>PolyToolsTopology.Planks1 ()
When applied to a grid of quads, generates a plank type topology with "planks" of different sizes.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Planks1()
<boolean>PolyToolsTopology.Planks2 ()
When applied to a grid of quads, generates a topology with broader "planks" than the .Planks1()
method.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Planks2()
<boolean>PolyToolsTopology.Planks3 ()
When applied to a grid of quads, generates topology similar to the .Planks1()
and .Planks2()
methods, but with crossing planks.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Planks3()
<boolean>PolyToolsTopology.Planks4 ()
When applied to a grid of quads, generates a topology similar to the previous three methods, but with longer planks.
EXAMPLE:
--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 Edge level --Step 2: PolyToolsTopology.Planks4()
<boolean>PolyToolsTopology.Tatter <integer>size <integer>iterations <integer>smooth
Generates "holes" in the topology, separated by rows of polygons.
The first argument determines the overall size of the generated holes.
The second argument determines the number of different sizes for the generated holes.
The third argument determines how rounded the generated holes will be.
Returns true on success, false on failure.
EXAMPLES:
--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 Edge level --Step 2: PolyToolsTopology.Tatter 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 Edge level --Step 2: PolyToolsTopology.Tatter 2 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 Edge level --Step 2: PolyToolsTopology.Tatter 3 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 Edge level --Step 2: PolyToolsTopology.Tatter 1 2 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 Edge level --Step 2: PolyToolsTopology.Tatter 1 10 1
<boolean>PolyToolsTopology.ScrapVerts ()
Removes vertices shared by only two edges.
EXAMPLE:
--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 = 1 --switch to Edge level PolyOp.SetEdgeSelection p #{105} --select one central edge for i = 1 to 3 do p.GrowSelection selLevel:#edge --and grow the selection p.Remove selLevel:#Edge --then remove the selected edges PolyOp.SetEdgeSelection p #{5,8,11} --select a portion of a loop p.Remove selLevel:#Edge --and remove it, while leaving some stray vertices --Step 2: PolyToolsTopology.ScrapVerts ()