Описание |
---|
Находит граничные ломанные кривые в выбранных объектах сетки. Граничные ломанные формируются из всех найденных в сетке рёбер, которые разделяет только одна грань, то есть это "граничные" рёбра. Найденные ломанные добавляются в документ (по одному соединению (compound) на объект сетки), а сама сетка скрывается. Макрос версии : 1 Дата последней модификации : 2016-12-17 FreeCAD версия : Все версии Скачать : Иконка панели инструментов автор : Yorik |
Автор |
Yorik |
Скачать |
Иконка панели инструментов |
Ссылки |
Макросы рецепты Как установить макросы Как настроить панели инструментов |
Версия |
1 |
Дата последней модификации |
2016-12-17 |
Версии FreeCAD |
Все версии |
Сочетание клавиш |
None |
Смотрите также |
None |
Находит граничные ломанные в выбранных объектах сетки. Граничные ломанные формируются из всех найденных в сетке рёбер, которые разделяет только одна грань, то есть это "граничные" рёбра. Найденные ломанные добавляются в документ (по одному соединению на объект сетки), а сама сетка скрывается.
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()