[codesyntax lang=”python”]
###################################################################################################### # Equally stepped scalling for objects produced using Vue's replicate feature # # - equalreplicate.py # - By Mark Caldwell # - Version 0.1.0 # - 7th January 2008 # - Copyright Mark Caldwell 2008 # - Tested with Vue 6 Infinite on a PC # # How to use in 3 easy steps # # 1. Download and unzip this file onto your computer # # 2. Replicate an object in Vue # # 3. With the replicated objects still selected run this script # ###################################################################################################### count=CountSelectedObjects() # Count the number of objects selected if count>2: # Check there are more than 2 objects so the script will do something # Use 2nd and 3rd objects replicated as scale return from first object can be missleading object=GetSelectedObjectByIndex(1) # Get the second object xyz1=object.GetScale() # Get the scale of the second object object=GetSelectedObjectByIndex(2) # Get the third object xyz2=object.GetScale() # Get the scale of the third object sfx=xyz1[0]/xyz2[0] # Scale factor for x to restore to full size sfy=xyz1[1]/xyz2[1] # Scale factor for y to restore to full size sfz=xyz1[2]/xyz2[2] # Scale factor for z to restore to full size stepx=1-(1/sfx) # Calculate the step scale for equal steps in x stepy=1-(1/sfy) # Calculate the step scale for equal steps in y stepz=1-(1/sfz) # Calculate the step scale for equal steps in z for i in range(1,count): # Loop through the selected objects object=GetSelectedObjectByIndex(i) # Get the object object.ResizeAxis(sfx**(i+1),sfy**(i+1),sfz**(i+1)) # Scale it to unscaled size object.ResizeAxis(1-stepx*i,1-stepy*i,1-stepz*i) # Apply scaling for step Refresh() # Refresh the display to show the effect of script running
[/codesyntax]