...
The script calculates the average velocities of a scene's active rigid bodies for each frame of a simulation and prints out the result:
Initializing the Objects
Code Block |
---|
objects = scene.getObjects()
activeObjects = []
for entry in objects:
dynamicsMode = entry.getParameter("Dynamics")
activeObjects.append(entry)
# The global variable is necessary to transfer the active objects from "SimulationPre" to "FramesPost".
scene.setGlobalVariableValue("activeObjects", activeObjects) |
Calculating the Velocity
The output is formatted ("%.2f" % averageVelocity) and clips the result to two digits, e.g. 3.67 instead of 3.671472813
Code Block | ||
---|---|---|
| ||
activeObjects = scene.getGlobalVariableValue("activeObjects")
numOfObjects = len(activeObjects)
objectVelocity = 0.0
for entry in activeObjects:
objectVelocity += entry.getVelocity().module()
averageVelocity = objectVelocity / numOfObjects
scene.message("The average velocity is "+str("%.2f" % averageVelocity)+"m/s") |