Looping - Faces and Vertices
Object Polygons
Add this script to a "Batch Script" editor (F10) and execute it with Script > Run.
Get a torus object's polygons, store them in a list container, and print out their number:
# Get the "Torus01" object and its polygons/faces polygonObject = scene.getObject("Torus01") polygons = polygonObject.getFaces() # Print out the "Torus01" node's number of polygons scene.message("Number of polygons: "+str(len(polygons)))
Object Vertices
Add this script to a "Batch Script" editor (F10) and execute it with Script > Run.
Get a torus object's vertices, store them in a list container, and print out their number:
# Get the "Torus01" object and its vertices polygonObject = scene.getObject("Torus01") vertices = polygonObject.getVertices() # Print out the "Torus01" node's number of vertices scene.message("Number of vertices: "+str(len(vertices)))
Polygon Vertices
Add this script to a "Batch Script" editor (F10) and execute it with Script > Run.
Get a torus object's polygons, store them in a list container, and get the three vertices of each polygon. Then, calculate each polygon's midpoint and place a particle there:
# Get the "Torus01" object, its faces, and vertices # Define a null position # Get the "Container01" node polygonObject = scene.getObject("Torus01") polygons = polygonObject.getFaces() vertices = polygonObject.getVertices() vertexPosition = Vector.new(0,0,0) container = scene.get_PB_Emitter("Container01") # Loop through the polygons for polygon in polygons:  # Indices are the current polygon's vertices # Get the three individual vertices vertexIndices = polygon.getIndices() vertex0 = vertices[vertexIndices[0]] vertex1 = vertices[vertexIndices[1]] vertex2 = vertices[vertexIndices[2]] # Get the individual vertex positions vertex0Pos = vertex0.getPosition() vertex1Pos = vertex1.getPosition() vertex2Pos = vertex2.getPosition() # Add the three position vectors # Calculate the XYZ averages and apply them to the vertexPosition vector vertexPosition = vertex0Pos + vertex1Pos + vertex2Pos  vertexPosition.set(vertexPosition.x / 3.0, vertexPosition.y / 3.0, vertexPosition.z / 3.0) # Add a particles at vertexPosition with velocity 0  container.addParticle(vertexPosition, Vector.new(0,0,0))
Â
Â