Mesh Workbench

The Mesh Workbench handles triangle meshes. Meshes are a special type of 3D object, composed of triangles conected 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 informations, 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_Import_Mesh.svg|32px]] Import meshes in several file formats
 * [[Image:Mesh_Export_Mesh.svg|32px]] Export meshes in several file formats
 * [[Image:Mesh_Mesh_from_Shape.svg|32px]] Convert Part objects into meshes
 * [[Image:Mesh_Harmonize_Normals.svg|32px]] Harmonize normals
 * [[Image:Mesh_Flip_Normals.svg|32px]] Flip normals
 * [[Image:Mesh_boundary.svg|32px]] Close holes in meshes
 * [[Image:Mesh_Remove_Components.svg|32px]] Remove components of meshes
 * [[Image:Mesh_cut.svg|32px]] Cut meshes along a line

Analyse curvature, faces, and check if a mesh can be safely converted into a solid

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


 * Union, subtract and intersect meshes

These are only some of the basic operations currently present in the Mesh module interface. But the FreeCAD meshes can also be handled in many more ways by scripting.