[codesyntax lang=”python”]
#****************************************************** # Place an object at the position of each instance # in an ecosystem # # - ecotoobject.py # - By Mark Caldwell # - Version 0.4 # - 24th April 2007 # - Tested with Vue 6 Infinite # # How to use in 4 easy steps # # 1. Download this file onto your computer # # 2. Select an object with a populated EcoSystem applied # # 3. Then run script # To run it go to Python -> Run Python Script # Then locate the file on your computer # # 4. Respond to the scripts options and then wait for # it to work # #****************************************************** #---------------------------------------------- # Collect the user's input #---------------------------------------------- group=Prompt('Group Objects?\n 1: Group\n 2: Metablob \n3: No','1',true,'') form=Prompt('Object Type?\n 1: Cube\n 2: Sphere \n3: Cylinder \n4: Pyramid\n5: Cone\n 6: Torus','1',true,'') maximum_objects=int(Prompt('Maximum number of objects to create?','1000',true,'')) scale_factor=float(Prompt('Scale Factor for Objects','0.1',true,'')) #-------------------------------------------------------------------------- # Test the user has a scene loaded #-------------------------------------------------------------------------- if TestLoaded(): #-------------------------------------------------------------------------- # Test the user has 1 object selected with an Eco System on it #-------------------------------------------------------------------------- numselected=CountSelectedObjects() if numselected>1: message="Please select only one object." elif numselected<1: message="Please select an object." else: #-------------------------------------------------------------------------- #Set Up a Few Variables #-------------------------------------------------------------------------- bObject=GetSelectedObjectByIndex(0) # Get first selected object Eco = GetEcosystemOnObject(bObject) # Get EcoSystem on first selected if Eco==None: message="Please select an object with an EcoSystem material applied to it." elif bObject.IsLocked(): # Check object isn't locked message="Please select an object that isn't locked." else: ecocount=Eco.GetInstanceCount () # Count number of instances in EcoSystem if ecocount>maximum_objects: # If this is greater than maximum_objects restrict it to maximum objects ecocount=maximum_objects if ecocount==0: message="Please select an EcoSystem that has been populated." else: #-------------------------------------------------------------------------- # Create Objects #-------------------------------------------------------------------------- for i in range(0,ecocount): pos=Eco.GetInstancePosition (i) # Get instance position rot=Eco.GetInstanceRotation (i) # Get instance rotation sca=Eco.GetInstanceScale (i) # Get instance scale if form=='2': obj=AddSphere() elif form=='3': obj=AddCylinder() elif form=='4': obj=AddPyramid() elif form=='5': obj=AddCone() elif form=='6': obj=AddTorus() else: obj=AddCube() # Create Object obj.SetPosition(pos[0],pos[1],pos[2]) # Set object's position obj.Rotate(rot[0],rot[1],rot[2]) # Set object's rotation obj.ResizeAxis(sca[0]*scale_factor,sca[1]*scale_factor,sca[2]*scale_factor) # Set object's size if group=='1' or group=='2': if i>0: obj.SetName(name) else: name=obj.Name() DeselectAll() if group=='1': SelectByName(name) Group() elif group=='2': SelectByName(name) MetaBlob() DeselectAll() Select(bObject) message="Eco to Object Successful" else: message="No Scene Loaded" Message(message) # Display message #-------------------------------------------------------------------------- # End of Script #--------------------------------------------------------------------------
[/codesyntax]
Python Code – ecotoobject.py
[codesyntax lang=”python”]
#****************************************************** # Place a cube at the position of each instance of an # object in an ecosystem # # - ecotoobject.py # - By Mark Caldwell # - Version 0.1 # - 29th June 2006 # - Tested with Vue 5 Infinite 5.10 and Vue 6 Pre Release # # How to use in 4 easy steps # # 1. Download this file onto your computer # # 2. Edit the configuration variable maximum_objects below # if you want to risk more that 1000 objects # # 3. Select an object with a populated EcoSystem applied # # 4. Then run script and wait for it to work # To run it go to Python -> Run Python Script # Then locate the file on your computer # #****************************************************** #---------------------------------------------- # Configuration: Set these to alter end result #---------------------------------------------- maximum_objects=1000 # maximum_objects sets the maximum number of instances that the script will replace with objects # this stops it running away and crashing Vue by trying to add 1 million cubes #-------------------------------------------------------------------------- # Test the user has a scene loaded #-------------------------------------------------------------------------- if TestLoaded(): #-------------------------------------------------------------------------- # Test the user has 1 object selected with an Eco System on it #-------------------------------------------------------------------------- numselected=CountSelectedObjects() if numselected>1: message="Please select only one object." elif numselected<1: message="Please select an object." else: #-------------------------------------------------------------------------- #Set Up a Few Variables #-------------------------------------------------------------------------- bObject=GetSelectedObjectByIndex(0) # Get first selected object Eco = GetEcosystemOnObject(bObject) # Get EcoSystem on first selected objlist=[bObject] if Eco==None: message="Please select an object with an EcoSystem material applied to it." elif bObject.IsLocked(): # Check object isn't locked message="Please select an object that isn't locked." else: ecocount=Eco.GetInstanceCount () # Count number of instances in EcoSystem if ecocount>maximum_objects: # If this is greater than maximum_objects restrict it to maximum objects ecocount=maximum_objects if ecocount==0: message="Please select an EcoSystem that has been populated." else: #-------------------------------------------------------------------------- # Create Objects #-------------------------------------------------------------------------- for i in range(0,ecocount): pos=Eco.GetInstancePosition (i) # Get instance position rot=Eco.GetInstanceRotation (i) # Get instance rotation sca=Eco.GetInstanceScale (i) # Get instance scale object=AddCube() # Create Object object.SetPosition(pos[0],pos[1],pos[2]) # Set object's position object.Rotate(rot[0],rot[1],rot[2]) # Set object's rotation object.ResizeAxis(sca[0],sca[1],sca[2]) # Set object's size message="Eco to Object Successful" else: message="No Scene Loaded" Message(message) # Display message #-------------------------------------------------------------------------- # End of Script #--------------------------------------------------------------------------
[/codesyntax]