2012-01-10 9 views
0

私は飛行機から建物を生成するスクリプトを作成しています。通常の平面を長方形にするのは非常に簡単ですが、頂点を最も多く探しています -/+ X、 -/+ Y、 -/+ Zですが、平面が規則的な形状でないとどうなりますか? BlenderのPython API内に簡単な解決策がありますか? 実際に、境界にある面/稜線/頂点を検出する巧妙な方法はありますか?Blender Python APIで飛行機の境界を検出

+0

こんにちは、このプロジェクトを終了しましたか? – kraysak

+0

はい、私はしました - この問題がそれで使用されていたとしても覚えていない – raistlin

答えて

1

ボーダーエッジを探します。これらは1つのフェイスにのみ貼り付けられます。 Meshクラス、具体的にはedgesfacesおよびverticesの属性を見てください。残念ながら、エッジにはどのオブジェクトが属しているかのリストが含まれていないため、このようなマッピングを作成する必要があります。

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を調べます。