Developing A Scripted Utility In 3ds Max-9
Other functions in Utility
on copyOption changed State do
(
copyState=State
)
This function will be called when copy option radio buttons are changed. If changed then store current state to a variable copyState.
on ObjPlacer open do
(
addRollout Abt
addRollout Param
)
This function will be called when object placer utility opened. Add About and Parameter rollout to the utility panel.
on ObjPlacer close do
(
removeRollout Abt
removeRollout Param
)
This function called when object placer utility closed. Remove About and Parameter rollout in the utility panel.
Align function
Align function calculates the transformation value of source object from a polygon or vertex of destination object. This technique is also explained in MaxScript user reference “How do I align the UVMap modifier to the selected face?”
fn Align souCopy desNormal pos =
(
worldUpVector = [0,0,1]
rightVector = normalize (cross worldUpVector desNormal)
upVector = normalize ( cross rightVector desNormal)
theMatrix = matrix3 rightVector upVector desNormal Pos
souCopy.transform = theMatrix
)
Align function with three arguments. A copy of source object, destination objects normal and position.
The default value of world up vector is [0, 0, 1]
Calculate right vector from world up vector and normal value. Calculate local up vector from right vector and normal value. Store right vector, up vector normal and position to theMatrix as a matrix3 value. Set Source object transformation to theMatrix
CopyOption Function
The copy option function make copies of source object according to user’s selection.
fn CopySource numCopies=
(
case copyState of
(
1:
souCpy = for i = 1 to numCopies collect(copy sourceObj)
2:
souCpy = for i = 1 to numCopies collect(instance sourceObj)
default:
souCpy = for i = 1 to numCopies collect(reference sourceObj)
)
return souCpy
If copy option function called. Check the state of copy option radio buttons. According to copy type make copy of object and store it to an array souCpy
Return souCopy.
Script Link: ObjectPlacer.ms
I hope this tutorial is helpful. If u have any questions or suggestions, just mail me Sathish101@Gmail.com.