Interface: assemblyMgr
Represents the interface to the Assembly Manager. Used to put objects together to Assemblies, and test and manipulate the Assemblies.
Methods:
<node>assemblyMgr.Assemble <node array>nodes [ name:<string> ][ classDesc:<class> ] [ select:<boolean> ]
name default value: undefined
classDesc default value: undefined
select default value: true
Create a new Assembly using the nodes in the <node array>
.
A Create Assembly dialog will be displayed if either the name or the classDesc is not specified. The classDesc is passed a MAXClass, an instance of which will be used as the assembly head. This MAXClass must be for a helper object. You can create a scripted plug-in that extends helper to use as assembly head, exposing the properties you desire for the assembly head.
EXAMPLE
object1 = Cylinder()--create a cylinder --> $Cylinder:Cylinder001 @ [0.000000,0.000000,0.000000] object2 = Box()--create a box --> $Box:Box001 @ [0.000000,0.000000,0.000000] object3 = OmniLight() --> $Omni_Light:Omni001 @ [0.000000,0.000000,0.000000] obj_array = #(object1, object2, object3) --> #($Cylinder:Cylinder001 @ [0.000000,0.000000,0.000000], $Box:Box001 @ [0.000000,0.000000,0.000000], $Omni_Light:Omni001 @ [0.000000,0.000000,0.000000]) --Create a new Assembly out of the objects, name it Test001 and use --a Dummy as the head. new_ass will contain the assembly head. new_ass = assemblyMgr.assemble obj_array name:"Test001" classDesc:Dummy --> $Dummy:Test001 @ [0.000000,0.000000,-8.000000]
<boolean>assemblyMgr.Disassemble <node array>nodes
Disassembles the specified nodes. Returns true
on success.
EXAMPLE
--Continuing with the assembly from the above example... obj_array --> #($Cylinder:Cylinder001 @ [0.000000,0.000000,0.000000], $Box:Box001 @ [0.000000,0.000000,0.000000], $Omni_Light:Omni001 @ [0.000000,0.000000,0.000000]) --We cannot disassemble the original array because it does not --contain the head object! assemblyMgr.Disassemble obj_array --> false --Let’s append the head to the array and try again... append obj_array $Test001 --> #($Cylinder:Cylinder001 @ [0.000000,0.000000,0.000000], $Box:Box001 @ [0.000000,0.000000,0.000000], $Omni_Light:Omni001 @ [0.000000,0.000000,0.000000], $Dummy:Test01 @ [0.000000,0.000000,-8.000000]) --Now that we supplied all objects of the assembly, --the Disassemble method worked. assemblyMgr.Disassemble obj_array --> true
<boolean>assemblyMgr.Open <node array>nodes [clearSelection:<boolean>]
clearSelection default value: true
Opens the specified nodes. Returns true
on success. When clearSelection:
is supplied as false
, the selection will not be cleared.
<boolean>assemblyMgr.Close <node array>nodes [select:<boolean>]
select default value: true
Closes the specified nodes. Returns true
on success.
<boolean>assemblyMgr.Explode <node array>nodes
Explodes the specified nodes. Returns true
on success.
<boolean>assemblyMgr.Attach <node array>nodes [assembly:<node>]
assembly default value: undefined
Attaches the specified nodes to the assembly. Returns true
on success.
<boolean>assemblyMgr.Detach <node array>nodes
Detaches the specified nodes from the assembly. Returns true
on success.
<boolean>assemblyMgr.CanAssemble <node array>nodes
Returns true
if the <node array>
contains nodes that can be assembled.
<boolean>assemblyMgr.CanDisassemble <node array>nodes
Returns true
if the <node array>
contains nodes that can be disassembled.
<boolean>assemblyMgr.CanExplode <node array>nodes
Returns true
if the <node array>
contains nodes that can be exploded.
<boolean>assemblyMgr.CanOpen <node array>nodes
Returns true
if the <node array>
contains nodes that can be opened.
<boolean>assemblyMgr.CanClose <node array>nodes
Returns true
if the <node array>
contains nodes that can be closed.
<boolean>assemblyMgr.CanAttach <node array>nodes assembly:<node>
assembly default value: undefined
Returns true
if the nodes in <node array>
can be attached to the assembly.
<boolean>assemblyMgr.CanDetach <node array>nodes
Returns true
if the nodes in <node array>
can be detached.
<node>assemblyMgr.IsAssembly <node array>nodes
Returns the Head Node of the Assembly comprised by the nodes specified by <node array>
, or undefined
if the nodes do not form an Assembly.
<boolean>assemblyMgr.FilterAssembly <node>assemblyHead <value>filterSClassID <&node array>filteredNodes
filteredNodes is Out parameter
Filters all nodes of the specified superclass that are contained in the assembly with the specified head and passes them out to the supplied filterNodes array. Returns true
on success.
EXAMPLES
--Assembly contains a Cylinder,a Box and a Dummy Helper as head: test_array = #($Box001, $Cylinder001) --> #($Box:Box001 @ [0.000000,0.000000,0.000000], $Cylinder:Cylinder001 @ [0.000000,0.000000,0.000000]) --Check for assembly with the lights only assemblyMgr.IsAssembly test_array --> undefined --Now check with all assembly nodes including the Head test_array = #($Box001, $Cylinder001, $Omni001, $Test001) --> #($Box:Box001 @ [0.000000,0.000000,0.000000], $Cylinder:Cylinder001 @ [0.000000,0.000000,0.000000], $Omni_Light:Omni001 @ [0.000000,0.000000,0.000000], $Dummy:Test001 @ [0.000000,0.000000,-8.000000]) a_head = assemblyMgr.IsAssembly test_array --> $Dummy:Test001 @ [0.000000,0.000000,-8.000000] --a_head now contains the Head of the Assembly containing the above objects! --Find all light objects in assembly a_head AssemblyMgr.FilterAssembly a_head Light &lightnodes --> true -- lightnodes now contains all nodes corresponding to objects of superclass Light lightnodes --> #($Omni_Light:Omni001 @ [0.000000,0.000000,0.000000]) --Find all camera objects in assembly a_head AssemblyMgr.FilterAssembly a_head Camera &camnodes --> true --There are no cameras in the assembly! camnodes --> #()