在Blender Python API中检测平面的边界

时间:2012-01-10 11:47:00

标签: python blender blender-2.50

我正在编写一个脚本来从平面生成建筑物。虽然具有法线平面是矩形,但它很容易 - 你正在寻找最顶点 - / + X, - / + Y, - / + Z,但是如果平面不是规则形状怎么办?在Blender的python api中有一个很好的简单解决方案吗? 实际上有没有聪明的方法来检测边界上的面/边/顶点?

1 个答案:

答案 0 :(得分:1)

寻找边缘边缘:这些边缘边缘仅附着在一个面上。查看Mesh课程,特别是edgesfacesvertices属性。不幸的是,边缘不包含它们所属的面部列表,因此您必须构造这样的映射,例如。

EdgeFaces = {} # mapping from edge to adjacent faces
for ThisFace in TheMesh.faces :
    for ThisEdge in ThisFace.edge_keys :
        if not ThisEdge in EdgeFaces :
            EdgeFaces[ThisEdge] = []
        #end if
        EdgeFaces[ThisEdge].append(ThisFace.edge_keys)
    #end for
#end for

然后,您只需通过EdgeFaces查看映射到单元素列表的所有键。