Translations:Mesh to Part/8/ja

二つ目のメソッドではメッシュの二つのファセットが作る角度が特定の値を下回る場合にその二つを同一面とみなします. これによってより単純な形状が作成できるのです：

import Mesh,Part,MeshPart faces = [] mesh = App.ActiveDocument.ActiveObject.Mesh segments = mesh.getPlanes(0.00001) # ここではより厳しい許容誤差を使用します for i in segments: if len(i) > 0: # 線分は内部に穴を持つことができます wires = MeshPart.wireFromSegment(mesh, i)     # 外部境界が最大のバウンディングボックスを持つものであると仮定します if len(wires) > 0: ext=None max_length=0 for i in wires: if i.BoundBox.DiagonalLength > max_length: max_length = i.BoundBox.DiagonalLength ext = i        wires.remove(ext) # 内部のワイヤーが全てマークされ、向きが反転されなければなりません. さもなければPart.Faceが失敗します for i in wires: i.reverse # 外部のワイヤーがリストの先頭になっていることを確認してください wires.insert(0, ext) faces.append(Part.Face(wires)) shell=Part.Compound(faces) Part.show(shell)
 * 1) ドキュメントには一つだけMeshオブジェクトが入っているとしましょう
 * 1) solid = Part.Solid(Part.Shell(faces))
 * 2) Part.show(solid)