|
Descripción |
---|
Esta macro convierte las mallas seleccionadas en piezas. Tiene una tolerancia bastante grande, así que utilízala sólo con objetos que no tengan curvas pues de otro modo obtendrás resultados extraños Versión macro : 1.0 Fecha última modificación : 2011-08-01 Versión FreeCAD : All Descargar : ToolBar Icon Autor : Wmayer |
Autor |
Wmayer |
Descargar |
ToolBar Icon |
Enlace |
Macros recipes How to install macros How to customize toolbars |
Versión Macro |
1.0 |
Fecha última modificación |
2011-08-01 |
Versión(es) FreeCAD |
All |
Acceso directo predeterminado |
None |
Ver también |
None |
Descripción
Esta macro convierte las mallas seleccionadas en piezas. Tiene una tolerancia bastante grande, así que utilízala sólo con objetos que no tengan curvas pues de otro modo obtendrás resultados extraños
Guión
ToolBar Icon
Macro_MeshToPart.FCMacro
import FreeCAD,FreeCADGui,Mesh,Part,MeshPart for obj in FreeCADGui.Selection.getSelection(): if "Mesh" in obj.PropertiesList: faces = [] mesh = obj.Mesh segments = mesh.getPlanarSegments(0.01) # 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) solid = Part.Solid(Part.Shell(faces)) name = obj.Name FreeCAD.ActiveDocument.removeObject(name) FreeCAD.ActiveDocument.addObject("Part::Feature",name).Shape = solid
Enlazar
La discusión en el foro Convert mesh to solid?
Esta página ha sido recuperada de https://wiki.freecad.org/Macro_MeshToPart