默认情况下,在 Blender 中,Python无法访问网格三角形。
当需要访问网格三角形时,必须首先使用网格calc_loop_triangles方法计算它们。在调用calc_loop_triangle方法之前,Mesh loop_triangles的引用属性将引用空集合。
调用calc_loop_triangles 方法后,loop_triangles 属性将引用MeshLoopTriangle对象的集合,其中顶点属性将包含 3 个整数数组,这些整数是三角形顶点的索引。
以下示例脚本创建和将球体对象位于立方体三角形的中心:
import bpymesh = bpy.data.objects['Cube'].datamesh.calc_loop_triangles()for tri in mesh.loop_triangles: tri_center = (mesh.vertices[tri.vertices[0]].co * 0.333) + (mesh.vertices[tri.vertices[1]].co * 0.333) + (mesh.vertices[tri.vertices[2]].co * 0.333) bpy.ops.mesh.primitive_uv_sphere_add(radius=0.1, enter_editmode=False, location=tri_center)
转载请注明出处(百家号:blender帮)