Mesh Workbench/id

The Mesh Workbench handles triangle meshes. Meshes are a special type of 3D object, composed of triangles connected by their edges and their corners (also called vertices).



An example of a mesh object

Many 3D applications use meshes as their primary type of 3D object, like sketchup, blender, maya or 3d studio max. Since meshes are very simple objects, containing only vertices (points), edges and (triangular) faces, they are very easy to create, modify, subdivide, stretch, and can easily be passed from one application to another without any loss. Besides, since they contain very simple data, 3D applications can usually manage very large quantities of them without any problem. For those reasons, meshes are often the 3D object type of choice for applications dealing with movies, animation, and image creation.

In the field of engineering, however, meshes present one big limitation: They are very dumb objects, only composed of points, lines and faces. They are only made of surfaces, and have no mass information, so they don't behave as solids. In a mesh there is no automatic way to know if a point is inside or outside the object. This means that all solid-based operations, such as addition or subtraction, are always a bit difficult to perform on meshes, and return errors often.

In FreeCAD, since it is an engineering application, we would obviously prefer to work with more intelligent types of 3D objects, that can carry more information, such as mass, solid behaviour, or even custom parameters. The mesh module was first created to serve as a testbed, but to be able to read, manipulate and convert meshes is also highly important for FreeCAD. Very often, in your workflow, you will receive 3D data in mesh format. You will need to handle that data, analyse it to detect errors or other problems that prevent converting them to more intelligent objects, and finally, convert them to more intelligent objects, handled by the Part Module.

Using the mesh module
The mesh module has currently a very simple interface, all its functions are grouped in the Mesh menu entry. The most important operations you can currently do with meshes are:
 * [[Image:Mesh_ImportMesh.png|32px]] Import Mesh: Import meshes in several file formats
 * [[Image:Mesh_ExportMesh.png|32px]] Export Mesh: Export meshes in several file formats
 * [[Image:Mesh MeshFromShape.png|32px]] Create Mesh from shape: Convert Part objects into meshes
 * [[Image:Mesh HarmonizeNormals.png|32px]] Harmonize Normals: Harmonize normals
 * [[Image:Mesh_FlipNormals.png|32px]] Flip Normals: Flip normals
 * Fill Holes...: Fill up holes
 * [[Image:Mesh_FillInteractiveHole.png|32px]] Close hole: Close holes in meshes
 * [[Image:Mesh_RemoveComponents.png|32px]] Remove components...: Remove components of meshes
 * Remove components by hand...: Remove components of meshes by hand
 * Add triangle: Add triangle
 * Smooth...: Smooth mesh


 * Analyze curvature, faces, and check if a mesh can be safely converted into a solid
 * Evaluate & Repair mesh...: Evaluates and repairs meshes
 * [[Image:Mesh EvaluateFacet.png|32px]] Face Info: Gives info on faces
 * Curvature Info: Gives info on curvature
 * Check solid mesh: Checks the solid if it can be converted to a mesh
 * Boundings info...: Evaluates the bounding box of a mesh


 * [[Image:Mesh_Regular_Solid.png|32px]] Regular solid... Create mesh primitives, like cubes, cylinders, cones, or spheres:
 * [[Image:Mesh_Cube.png|32px]] Create a mesh cube
 * [[Image:Mesh_Cylinder.png|32px]] Create a mesh cylinder
 * [[Image:Mesh_Cone.png|32px]] Create a mesh cone
 * [[Image:Mesh_Sphere.png|32px]] Create a mesh sphere
 * [[Image:Mesh_Ellipsoid.png|32px]] Create a mesh ellipsoid
 * [[Image:Mesh_Torus.png|32px]] Create a mesh torus


 * Do Boolean operations with meshes
 * Union: Does a union (fusion) on meshes
 * Intersection: Does an intersection (common) on meshes
 * Difference: Does a difference (cut) on meshes


 * Merge: Merges meshes
 * Select Mesh: Selects meshes
 * [[Image:Mesh Cut.png|32px]] Cut mesh: Cut meshes along a line
 * Split Mesh: Splits meshes
 * [[Image:Mesh MakeSegment.png|32px]] Make segment: Makes a segment
 * Trim mesh: Trims meshes
 * Trim mesh with a plane: Trims meshes with a plane
 * Create mesh segments...: Creates mesh segments
 * [[Image:Mesh_CurvaturePlot.png|32px]] Curvature Plot: Creates a curvature plot


 * [[Image:Preferences-import-export.svg|32px]] Preference ... Import Export

These are only some of the basic operations currently present in the Mesh module interface.

More mesh tools are available in the OpenSCAD Workbench.

But the FreeCAD meshes can also be handled in many more ways by scripting.

Links

 * FreeCAD and Mesh Import