Macro MeshToPart/sv: Difference between revisions

From FreeCAD Documentation
mNo edit summary
(Updating to match new version of source page)
 
(5 intermediate revisions by 2 users not shown)
Line 3: Line 3:
|Name=MeshToPart
|Name=MeshToPart
|Translate=MeshToPart
|Translate=MeshToPart
|Icon=Macro_MeshToPart.png
|Description=Detta makro omvandlar utvalda maskor till delar. Den har en bred tolerans, så använd den bara med föremål som inte har några kurvor annars får du konstiga resultat.
|Description=Detta makro omvandlar utvalda maskor till delar. Den har en bred tolerans, så använd den bara med föremål som inte har några kurvor annars får du konstiga resultat.
|Author=Wmayer
|Author=Wmayer
|Version=1.0
|Version=1.0
|Date=2011-08-01
|Date=2011-08-01
|FCVersion=All
|Download=[https://www.freecadweb.org/wiki/images/f/fa/Macro_MeshToPart.png ToolBar Icon]
}}
}}


Line 14: Line 17:


==Manus==
==Manus==

ToolBar Icon [[Image:Macro_MeshToPart.png]]


'''Macro_MeshToPart.FCMacro'''
'''Macro_MeshToPart.FCMacro'''


{{Code|code=
{{MacroCode|code=


import FreeCAD,FreeCADGui,Mesh,Part,MeshPart
import FreeCAD,FreeCADGui,Mesh,Part,MeshPart
Line 54: Line 59:
}}
}}
{{clear}}
{{clear}}

==Länk==
==Länk==


The discussion on the forum [http://forum.freecadweb.org/viewtopic.php?f=3&t=253&hilit=getPlanarSegments Convert mesh to solid?]
Diskussionen forumet [http://forum.freecadweb.org/viewtopic.php?f=3&t=253&hilit=getPlanarSegments Convert mesh to solid?]

Latest revision as of 11:08, 23 May 2020

MeshToPart

Beskrivning
Detta makro omvandlar utvalda maskor till delar. Den har en bred tolerans, så använd den bara med föremål som inte har några kurvor annars får du konstiga resultat.

Versions makro : 1.0
Datum senaste ändring : 2011-08-01
FreeCAD-versionen : All
Ladda ner : ToolBar Icon
Författare : Wmayer
Författare
Wmayer
Ladda ner
ToolBar Icon
länkar
Makroversion
1.0
Datum senaste ändring
2011-08-01
FreeCAD Version(s)
All
Standard genväg
None
Se även
None

Beskrivning

Detta makro omvandlar utvalda maskor till delar. Den har en bred tolerans, så använd den bara med föremål som inte har några kurvor annars får du fel eller konstiga resultat.

Manus

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

Länk

Diskussionen på forumet Convert mesh to solid?