+ unify DLL export defines to namespace names
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5000 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
This commit is contained in:
38
src/Mod/TemplatePyMod/Mesh2Shape.py
Normal file
38
src/Mod/TemplatePyMod/Mesh2Shape.py
Normal file
@@ -0,0 +1,38 @@
|
||||
# FreeCAD TemplatePyMod module
|
||||
# (c) 2010 Werner Mayer LGPL
|
||||
|
||||
|
||||
import Mesh,Part,MeshPart
|
||||
|
||||
faces = []
|
||||
mesh = App.ActiveDocument.ActiveObject.Mesh
|
||||
segments = mesh.getPlanes(0.00001) # use rather strict tolerance here
|
||||
|
||||
for i in segments:
|
||||
if len(i) > 0:
|
||||
# a segment can have inner holes
|
||||
wires = MeshPart.wireFromSegment(mesh, i)
|
||||
# we assume that the exterior boundary is that one with the biggest bounding box
|
||||
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)
|
||||
# all interior wires mark a hole and must reverse their orientation, otherwise Part.Face fails
|
||||
for i in wires:
|
||||
i.reverse()
|
||||
|
||||
# make sure that the exterior wires comes as first in the lsit
|
||||
wires.insert(0, ext)
|
||||
faces.append(Part.Face(wires))
|
||||
|
||||
|
||||
shell=Part.Compound(faces)
|
||||
Part.show(shell)
|
||||
#solid = Part.Solid(Part.Shell(faces))
|
||||
#Part.show(solid)
|
||||
|
||||
Reference in New Issue
Block a user