Skip to content

Constraints

Constraints are used to restrict the movement of entities and define their final locations. A constraint can usually be created between different entity types, check the corresponding operator's tooltip to find out what's supported.

Active

A constraint is considered to be active when the sketch it belongs to is set as the active sketch or, for constraints that don't belong to a sketch, when no sketch is active.

Failure

Whenever the solver fails to find a solution for the given system it will try to mark constraints that are causing the failure. Those constraints will be colored red, additionally the failed sketch will be marked.

Types

Constraint types follow the implementation of solvespace.

Geometric Constraints

SlvsCoincident

Forces two points to be coincident, or a point to lie on a curve, or a point to lie on a plane.

The point-coincident constraint is available in both 3d and projected versions. The 3d point-coincident constraint restricts three degrees of freedom; the projected version restricts only two. If two points are drawn in a workplane, and then constrained coincident in 3d, then an error will result–they are already coincident in one dimension (the dimension normal to the plane), so the third constraint equation is redundant.

SlvsVertical

Forces a line segment to be vertical. It applies in 2D Space only because the meaning of horizontal or vertical is defined by the workplane.

SlvsHorizontal

Forces a line segment to be horizontal. It applies in 2D Space only because the meaning of horizontal or vertical is defined by the workplane.

Note: It’s good to use horizontal and vertical constraints whenever possible. These constraints are very simple to solve, and will not lead to convergence problems. Whenever possible, define the workplanes so that lines are horizontal and vertical within those workplanes.

SlvsParallel

Forces two lines to be parallel. Applies only in 2D.

SlvsPerpendicular

Forces two lines to be perpendicular, applies only in 2D. This constraint is equivalent to an angle constraint for ninety degrees.

SlvsEqual

Forces two lengths, or radiuses to be equal.

If a line and an arc of a circle are selected, then the length of the line is forced equal to the length (not the radius) of the arc.

SlvsTangent

Forces two curves (arc/circle) or a curve and a line to be tangent.

SlvsMidpoint

Forces a point to lie on the midpoint of a line.

SlvsRatio

Defines the ratio between the lengths of two line segments.

The order matters; the ratio is defined as length of entity1 : length of entity2.

Dimensional Constraints

Adding a dimensional constraint places its label in the same step: pick the geometry, then move the mouse to position the label and, optionally, type a value before confirming. The label's position can be adjusted later by dragging its gizmo.

SlvsDistance

Sets the distance between a point and some other entity (point/line/Workplane).

SlvsDiameter

Sets the diameter of an arc or a circle.

SlvsAngle

Sets the angle between two lines, applies in 2D only.

The constraint's setting can be used to to constrain the supplementary angle.

Driven & Animated Dimensions

The value of a dimensional constraint (distance, diameter or angle) is stored as a regular scene property and shown as an editable field in the Constraints panel. Because it's an ordinary Blender property you can right-click it and Add Driver or Insert Keyframe, just like any other value.

The sketch re-solves whenever the value changes — including on frame changes — so the geometry follows a driven or animated dimension across the timeline. This lets you, for example, drive one dimension from another property or animate a dimension to create parametric motion.

Reference dimensions (measurements) only report the current value and can't be driven or keyframed.