Macro MeshToPart/cs: Difference between revisions
mNo edit summary |
(Updating to match new version of source page) |
||
Line 1: | Line 1: | ||
⚫ | |||
{{Macro/cs|Icon=Text-x-python|Name=MeshToPart|Name/cs=MeshToPart|Description=Toto makro zkonvertuje vybrané sítě na díl. Má ovšem značné tolerance, takže je použitelné pouze pro objekty, které nemají křivky, jinak nelze zaručit správný výsledek.|Author=Wmayer|Version=1.0|Date=2011-08-01}} |
{{Macro/cs|Icon=Text-x-python|Name=MeshToPart|Name/cs=MeshToPart|Description=Toto makro zkonvertuje vybrané sítě na díl. Má ovšem značné tolerance, takže je použitelné pouze pro objekty, které nemají křivky, jinak nelze zaručit správný výsledek.|Author=Wmayer|Version=1.0|Date=2011-08-01}} |
||
==Popis== |
==Popis== |
||
<div class="mw-translate-fuzzy"> |
|||
This macro converts selected meshes to parts. It has a broad tolerance, so use it only with objects that have no curves otherwise you'll get errors or weird results |
|||
Toto makro zkonvertuje vybrané sítě na díl. Má ovšem značné tolerance, takže je použitelné pouze pro objekty, které nemají křivky, jinak nelze zaručit správný výsledek. |
|||
</div> |
|||
Line 43: | Line 46: | ||
}} |
}} |
||
{{clear}} |
{{clear}} |
||
==Link== |
==Link== |
||
The discussion on the forum [http://forum.freecadweb.org/viewtopic.php?f=3&t=253&hilit=getPlanarSegments Convert mesh to solid?] |
The discussion on the forum [http://forum.freecadweb.org/viewtopic.php?f=3&t=253&hilit=getPlanarSegments Convert mesh to solid?] |
||
⚫ |
Revision as of 22:16, 5 August 2018
File:Text-x-python MeshToPart |
Popis |
---|
Toto makro zkonvertuje vybrané sítě na díl. Má ovšem značné tolerance, takže je použitelné pouze pro objekty, které nemají křivky, jinak nelze zaručit správný výsledek. Version macro : 1.0 Date last modification : 2011-08-01 Autor: Wmayer |
Autor |
Wmayer |
Download |
None |
Odkazy |
Makro recepty| Jak nainstalovat makra Jak přizpůsobit panely nástrojů |
Verze |
1.0 |
Datum poslední úpravy |
2011-08-01 |
Verze FreeCAD |
None |
Výchozí zástupce |
None |
Viz též |
None |
Popis
Toto makro zkonvertuje vybrané sítě na díl. Má ovšem značné tolerance, takže je použitelné pouze pro objekty, které nemají křivky, jinak nelze zaručit správný výsledek.
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
Link
The discussion on the forum Convert mesh to solid?