Meshes are very simple objects, containing only vertices (points), edges and triangular faces. In general, they are easy to create, modify, subdivide, and stretch, and can be passed from one application to another without any loss of detail. In addition, since meshes contain very simple data, 3D applications like animation software and video games can manage very large quantities of them (millions of triangles) without using a lot of computing resources.
However, in the field of engineering meshes present one big limitation: they are only made of surfaces, and have no "mass" information, so they don't behave like "solids". This means that solid-based operations, like boolean addition or subtraction, are difficult to perform on meshes. Also, since they are defined by individual points, they are hard to describe in a parametric fashion.
Meshes are normally created by internal functions of the Mesh Workbench, or by importing mesh format files, like STL and OBJ.
Essentially, every object derived from a Mesh Feature (
Mesh::Feature class) is expected to hold and manipulate a Mesh.
Since FreeCAD is primarily designed to be a solid modeller, it is better suited to deal with solid Shapes. It can import and display Meshes in the 3D view, and the Mesh Workbench offers some commands to directly manipulate them. But in many cases the Mesh first needs to be converted to a Shape (see Part ShapeFromMesh), or the geometry needs to be recreated using solid modelling techniques from the Part Workbench or the PartDesign Workbench.
Finite element meshes
In FreeCAD the word "Mesh" may also refer to a specific object that will be used in finite element analysis (FEA).
When an object with a solid Shape is used in the FEM Workbench it will be discretized into a triangular mesh. In this case, the resulting object is a FEM FemMeshObject (
Fem::FemMeshObject class), and is not derived from a Mesh Feature (