Assembly

Introduction
In FreeCAD the word "Assembly" is normally used to refer to a 3D model that is composed of several distinguishable parts, that are put together in some way to create a functional object, just like real life products are made.

For example, a bolt, a washer and a nut are three separate bodies that when put together comprise an assembly.



Manual assembly
In general terms, you don't need special tools to create assemblies, you just need to have many different bodies arranged in some way.

To position the bodies where you want them, you can
 * use the Std Transform tool,
 * use the Std_Placement.svg Std Placement dialog, or
 * modify the placement property directly in the property editor.

You may use one of the pseudo-assembly external workbenches, like Lattice2, Manipulator, Part-o-magic, or WorkFeature, to help you find intersections, measure distances, and distribute your objects in the desired way.

In general, the object was designed to serve as the basic building block to create assemblies. This object is used to group several bodies and move them together as a unit, that is, as a sub-assembly. Then this sub-assembly can be placed next to, or used inside of other sub-assemblies in order to create the final assembly.

Constrained assembly
You can also use a dedicated assembly workbench, like A2plus,  Assembly3, or  Assembly4. Please note that Assembly2 is unmaintained, so it is not recommended for new models.

The assembly workbenches use constraints and expressions to create relationships between the objects in your model, in order to mathematically tie the objects in place, for example, "this face should stick to this other face", "this cylinder should be concentric to that circle", "this point should follow this edge", etc.

This is an advanced usage of the software that is normally used in complex mechanical systems. If your model is not very complex, then using an assembly workbench may not be necessary.