# 3D constraints

## Variational Direct Modeling

Use geometric constraints (aka variational direct modeling) to model parametric solids and surfaces. Define constraints between edges and faces to modify solid and surface models.

As soon as a constraint is added, BricsCAD automatically modifies the model and these constraints are updated with subsequent modifications to the model. The key advantage of variational direct modeling is that all constraints are taken into account simultaneously and the model behavior does not depend on the constraint creation order. It allows you to parametrize any feature of the 3D model without the worry of model creation history.

Dimensional constraints control the dimensions of the model. When such a constraint is introduced or the value of its parameter is changed, BricsCAD automatically updates the solid and surface geometry. For example, the dimensions of a box can be controlled by the parameters of three distance constraints applied to its opposite faces.

BricsCAD provides the following 3D constraints:

- Geometrical constraints: Fix (), Coincident (), Concentric (), Parallel (), Perpendicular (), Tangent (), and Rigid Set ().
- Dimensional 3D constraints: Distance (), Radius (), Angle (), Cone Angle (), Path Constraint ().

3D Constraints are available in the 3D Constraints toolbar, the Parametric/3D Constraints menu, the Home / Parametrize ribbon panel and the Constraints tab on the Quad.

All 3D constraints are listed in the Mechanical Browser panel. Select a constraint to check and edit its properties.

The following (sub)entities and items are supported for 3D constraint creation:

- Vertices, edges and faces of 3D solids, surfaces, meshes and regions and surfaces of planar, cylindrical, spherical, toroidal and conical geometry.
- Lines, rays, xlines, circles and arcs.
- Segments and vertices of 3D polylines.
- Arbitrary curves for coincident and path constraints with a point as another argument.
- Planes, axes and origin points of the WCS or a block coordinate system.

3D constraints have a number of properties that allow you to control how BricsCAD treats them in various situations.

## Geometry-driven constraints

Dimensional 3D constraints can also be **geometry-driven**. They update the model to accurately reflect the current state of the model. You cannot specify their expression. Instead, their value is obtained from the model and can be changed with direct modeling operations and changes to other constraints.

Other parameters, including constraints, can depend on the values of geometry-driven constraints. In some circumstances, a constraint dependent on geometry-driven constraints can make the model unresolvable. This should be avoided.

You can turn regular constraints into geometry-driven constraints and vice versa, in the Mechanical Browser panel and the Parameters Manager panel or using the DMCONSTRAINT3D command. After a regular constraint is turned into a geometry-driven one, its expression will be overwritten with the first modification of the model that affects this constraint.

## 3D constraints and direct modeling

3D constraints are taken into account when direct modeling operations are applied. If there is a 3D constraint that fixes the placement of faces or edges, this constraint will be preserved during Push/Pull, Move and Rotate operations. A 3D constraint can be temporarily disabled, or erased permanently in the Mechanical Browser panel.

Geometry-driven constraints update their values when a direct modeling operation is completed, which possibly leads to additional changes in the model.

If some faces or edges disappear during direct modeling or Boolean solid editing operations, 3D constraints applied to such entities are removed. However, if there is an exact correspondence between the initial faces and the faces obtained, 3D constraints are automatically applied to the new entities.

Depending on the value of the DMRECOGNIZE system variable, BricsCAD automatically recognizes geometrical relations between the surfaces of a solid and will preserve them during direct modeling operations. This feature is called **design intent recognition**.