Ищите грани границ: это будут те, которые прикреплены только к одному лицу. Посмотрите на класс Mesh , в частности атрибуты ребер , граней и вершин . К сожалению, ребра не содержат списка принадлежащих им граней, поэтому вам придется создать такое отображение, например,
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 для всех ключей, которые отображаются в одноэлементные списки.