- GuiCommand: Name:Part ShapeFromMesh MenuLocation:Part → Create shape from mesh... Workbenches:Part SeeAlso:Part ConvertToSolid, Part RefineShape, Part PointsFromMesh
The Part ShapeFromMesh command creates a shape from a mesh object. Mesh objects have limited editing capabilities in FreeCAD, converting them to shapes will allow their use with many more boolean and modification tools.
The inverse operation is [ Mesh FromPartShape from the Mesh Workbench.
- Select the mesh object in the tree view.
- Go to the menu, Part → [ Create shape from mesh.
- A popup-menu will ask for the tolerance for sewing shape; the default value is {{Value|0.1}}.
- A shape from the mesh object is created as a separate new object.
Analyzing and repairing of the mesh, if needed, should be done manually before launching [ ShapeFromMesh. Appropriate tools for this task are available in the Mesh Workbench.
After creation of a Shape, it may be useful to use Convert to solid (necessary for boolean operations) and [ Refine shape.
- Edit STL Files In FreeCAD video by AllVisuals4U.
Creating a Shape from a Mesh can be done by using the makeShapeFromMesh
method from a Part TopoShape; you need to specify the source mesh and tolerance, and assign the result to a new Part Feature object.
Notice that the mesh must be recalculated before it is converted to a Shape, otherwise there won't be topology information, and the conversion won't be successful.
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()
documentation index > Part > Part ShapeFromMesh