Create Panel

The startObjectCreation() method is used to simulate the user finding a Create Panel button for a given object class and pressing that button, putting 3ds Max into create mode for that object class.

The form is:

startObjectCreation <maxobjclass> [returnNewNodes:<flag>] [newNodeCallback:<fn>]

This method simply opens up the Create Panel at the right tab and category and depresses the appropriate object button.

example:

startObjectCreation box

startObjectCreation targetSpot

This method is primarily intended for use in macroScripts, but can be used in generalized scripts. Script execution will continue immediately after entering the create mode, and you must ensure that the script does not interfere with the object creation.

The values that can be supplied to the optional returnNewNodes: keyword argument are true, false (the default) or #first. If true is supplied, all of the nodes created, up until the current create mode is exited, will be returned in an array. If #first is supplied, only the first node created is returned, immediately after it is created. The function doesn’t wait for the create mode to be exited by the user.

The optional newNodeCallback: keyword argument can supply a scripted function of one argument to the create mode that is started, such that the function will be called each time a node is created with the new node as its argument. This is similar to supplying pickObject() filter functions, although the return value of the newNodeCallback: function is ignored.

Note that the callback function is invoked immediately upon new node creation, *before* any base object is installed in it, so *only* node-related properties can be accessed and changed during this callback.

Example:

fn setColor n = n.wireColor = red

startObjectCreation box newNodeCallback:setColor

would cause all new boxes created in the started create mode to have red wire color.

The returnNewNodes: and newNodeCallback: can both be supplied on the same call; the callback will be called on each node, and they will be returned in an array as the result of the startObjectCreation() function.

okToCreate <maxclass>

Returns true if the specified maxclass can be created in the UI, false otherwise.

For example:

okToCreate terrain

will return false unless at least one shape is selected, or if any non-shape is selected. This corresponds to whether the button for the object is enabled.

 

isCreatingObject [ <maxclass> ]

new.gif Returns true if the specified maxclass is currently being created in the UI, false otherwise.

new.gif NEW in 3ds Max 9: If called without an argument returns true if ANY object is being created in the UI, false otherwise.

For example:

--go to Create panel, click the Box button and evaluate:

isCreatingObject Box

true

--in the Create panel, click on the Cone button and evaluate:

isCreatingObject Box

false

isCreatingObject Cone

true

isCreatingObject()

true

See also

Defining Macro Scripts

Change Handlers and Callbacks

callbacks const StructDef