Developing a Scripted Utility in 3ds Max 9by Sathish Shanmugasundaram, India


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 Download: Objectplacer.ms

I hope this tutorial is helpful. If u have any questions or suggestions, just mail me

Page 1 | Page 2 | Page 3 | Page 4

 
 
  Copyright © 2005-2008. All Rights Reserved