Macro MeshToPart/fr: Difference between revisions

From FreeCAD Documentation
mNo edit summary
(Updating to match new version of source page)
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
{{Macro/fr|Icon=Text-x-python|Name=MeshToPart|Name/fr=MeshToPart|Description=Cette macro convertit certaines mailles en pièces. Il a une grande tolérance, donc utilisez le uniquement avec des objets qui n'ont aucunes courbes sinon vous obtiendrez un résultat inattendu.|Author=Wmayer|Version=1.0|Date=00/00/0000}}
{{Macro/fr
|Name=MeshToPart
|Icon=Macro_MeshToPart.png
|Description=Cette macro convertit certaines mailles en pièces. Il a une grande tolérance, donc utilisez le uniquement avec des objets qui n'ont aucunes courbes sinon vous obtiendrez un résultat inattendu.
|Author=Wmayer
|Version=1.0
|Date=2011-08-01
|FCVersion=All
|Download=[https://www.freecadweb.org/wiki/images/f/fa/Macro_MeshToPart.png ToolBar Icon]
}}


==Description==
==Description==
Line 5: Line 15:
Cette macro convertit les objets Mesh sélectionnés en objets Part. Il a une grande tolérance, utilisez uniquement cette macro avec des objets qui n'ont pas de courbes, sinon vous obtiendrez une erreur ou des résultats inattendus.
Cette macro convertit les objets Mesh sélectionnés en objets Part. Il a une grande tolérance, utilisez uniquement cette macro avec des objets qui n'ont pas de courbes, sinon vous obtiendrez une erreur ou des résultats inattendus.


==Script==


ToolBar Icon [[Image:Macro_MeshToPart.png]]
{{Code|code=

'''Macro_MeshToPart.FCMacro'''

{{MacroCode|code=


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


==Link==
==Lien==


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

<languages/>

Latest revision as of 11:08, 23 May 2020

MeshToPart

Description
Cette macro convertit certaines mailles en pièces. Il a une grande tolérance, donc utilisez le uniquement avec des objets qui n'ont aucunes courbes sinon vous obtiendrez un résultat inattendu.

Version macro : 1.0
Date dernière modification : 2011-08-01
Version FreeCAD : All
Téléchargement : ToolBar Icon
Auteur: Wmayer
Auteur
Wmayer
Téléchargement
ToolBar Icon
Liens
Version Macro
1.0
Dernière modification
2011-08-01
Version(s) FreeCAD
All
Raccourci clavier
None
Voir aussi
None

Description

Cette macro convertit les objets Mesh sélectionnés en objets Part. Il a une grande tolérance, utilisez uniquement cette macro avec des objets qui n'ont pas de courbes, sinon vous obtiendrez une erreur ou des résultats inattendus.

Script

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

Lien

La discussion sur le forum Convert mesh to solid?