Description |
---|
Sucht begrenzende Linienzüge in ausgewählten Netzobjekten. Begrenzende Linienzüge werden aus allen Kanten im Netz gebildet, die nur von einer Fläche geteilt werden, d. h. es handelt sich um „Randkanten”. Die gefundenen Linienzüge werden dem Dokument hinzugefügt (eine Verbindung pro Netzobjekt), während das Netz selbst ausgeblendet wird. Macro version: 1 Last modified: 2016-12-17 FreeCAD version: Alle Download: Werkzeugleisten-Symbol Author: Yorik |
Author |
Yorik |
Download |
Werkzeugleisten-Symbol |
Links |
Macros recipes How to install macros How to customize toolbars |
Macro Version |
1 |
Date last modified |
2016-12-17 |
FreeCAD Version(s) |
Alle |
Default shortcut |
None |
See also |
None |
Sucht begrenzende Linienzüge in ausgewählten Netzobjekten. Begrenzende Linienzüge werden aus allen Kanten im Netz gebildet, die nur von einer Fläche geteilt werden, d. h. es handelt sich um „Randkanten”. Die gefundenen Linienzüge werden dem Dokument hinzugefügt (eine Verbindung pro Netzobjekt), während das Netz selbst ausgeblendet wird.
Macro_Extract_Wires_from_Mesh.FCMacro
#!/usr/bin/python # This macro will extract wires from selected meshes # The result is a new Part Compound containing wires, one per original mesh object # The selected meshes will be hidden but still selected after the operation. # Warning, it takes a bit of time... import FreeCAD,FreeCADGui,Part,Draft,DraftGeomUtils,Mesh for obj in FreeCADGui.Selection.getSelection(): if obj.isDerivedFrom("Mesh::Feature"): shape = Part.Shape() shape.makeShapeFromMesh(obj.Mesh.Topology,0.1) edges = [] lut = {} for f in shape.Faces: for e in f.Edges: lut.setdefault(e.hashCode(),[]).append(e) for k,v in lut.items(): if len(v) == 1: edges.extend(v) if edges: wires = DraftGeomUtils.findWires(edges) if wires: Part.show(Part.makeCompound(wires)) obj.ViewObject.hide()