Part Forme à partir d'un maillage

From FreeCAD Documentation
Revision as of 14:52, 19 September 2020 by David69 (talk | contribs)

Part Forme à partir du maillage

Emplacement du menu
Pièce → Créer la forme à partir d'un maillage...
Ateliers
Part
Raccourci par défaut
Aucun
Introduit dans la version
-
Voir aussi
Part Convertir en solide, Part Affiner la forme, Part Points à partir de maillage

Introduction

Cette commande Part Forme à partir du maillage crée une forme à partir d'un Maillage. FreeCAD offre des possibilités d’édition limitées des maillages; les convertir en shapes (formes) permettra leur usage par beaucoup plus d'outils de FreeCAD.

Utilisation

  1. Sélectionnez l'objet mesh dans la Vue en arborescence.
  2. Allez dans le menu, Pièce → Créer une forme à partir d'un maillage....
  3. Un menu contextuel demandera la tolérance pour la forme de la pièce. La valeur par défaut est 0.1.
  4. Une forme de l'objet maillage est créée en tant que nouvel objet séparé.

L'analyse et la réparation du maillage, si nécessaire, doivent être effectuées manuellement avant de lancer Créer la forme à partir d'un maillage... . Les outils appropriés pour cette tâche sont disponibles dans l' Atelier Mesh.

Après la création d'une Shape, il peut être utile d'utiliser Convertir en solide (nécessaire pour les Operations booléennes) et Affiner la forme.

Liens

Script

La création d'une Shape à partir d'un Maillage peut être fait en utilisant la méthode makeShapeFromMesh à partir d'un Part TopoShape. Vous devez spécifier le maillage source et la tolérance et affecter le résultat à un nouvel objet Part Feature.

Notez que le maillage doit être recalculé avant d'être converti en Forme (Shape) sinon il n'y aura pas d'informations de topologie et la conversion ne réussira pas.

import FreeCAD as App
import Part

doc = App.newDocument()
mesh = doc.addObject("Mesh::Cube", "Mesh")
mesh.recompute()

solid = doc.addObject("Part::Feature", "Shape")
shape = Part.Shape()
shape.makeShapeFromMesh(mesh.Mesh.Topology, 0.1)

solid.Shape = shape
solid.Placement.Base = App.Vector(15, 0, 0)
solid.purgeTouched()
doc.recompute()