Vertical
vertical aligns with the sketch's Y axis: a line becomes vertical, or two or more points are stacked on the same x.
In the viewport
- Click one line — or click two or more points.
- Click Vertical. A line gets a
Vbadge; in the point form every point after the first moves to the first one's x.
Drawing a line close to vertical with Infer while drawing on writes this constraint automatically.

Before

The plate's sides lean, and the three holes sit at three different x positions.
After

vertical(h1.center(), h2.center(), h3.center())The sides stand upright and the three centers stack on one line.
The code behind it
vertical(left) and vertical(right) are the line form — the leaning sides stand up. vertical(h1.center(), h2.center(), h3.center()) stacks the hole centers on one x, 1 DOF per follower.
plate.part.js
import { sketch, line, circle } from 'fluidcad/core';
import { coincident, horizontal, vertical, fix, distance, diameter } from "fluidcad/constraints";
sketch("xy", () => {
// A tall plate drawn leaning; the constraints stand it upright.
const bottom = line([0, 0], [40, 0]);
const right = line([40, 0], [46, 90]);
const top = line([46, 90], [6, 90]);
const left = line([6, 90], [0, 0]);
coincident(bottom.end(), right.start());
coincident(right.end(), top.start());
coincident(top.end(), left.start());
coincident(left.end(), bottom.start());
horizontal(bottom);
horizontal(top);
vertical(left); // line form: the sides become vertical
vertical(right);
fix(bottom.start());
distance(bottom.start(), bottom.end(), 40);
distance(left.start(), left.end(), 90);
// A column of holes: the point form stacks their centers on one x.
const h1 = circle([22, 15], 8);
const h2 = circle([18, 45], 8);
const h3 = circle([24, 75], 8);
vertical(h1.center(), h2.center(), h3.center());
diameter(h1, 8);
diameter(h2, 8);
diameter(h3, 8);
distance(left, h1.center(), 20);
distance(bottom, h1.center(), 15);
distance(h1.center(), h2.center(), 30);
distance(h2.center(), h3.center(), 30);
})
In code
vertical(l) // the line is vertical: 1 DOF
vertical(p1, p2) // p2 takes p1's x: 1 DOF
vertical(p1, p2, p3, ...) // every point after the first: 1 DOF each
See also
- Horizontal
- Symmetric — mirror pairs across
yAxis()