Equal
equal gives two or more lines the same length, or two or more circles/arcs the same radius. One dimension on the first entity then sizes all of them.
In the viewport
- Click two or more lines, or two or more circles / arcs (all one kind, all distinct).
- Click Equal. Every entity gets an
=badge.

Before

Two holes drawn at two different sizes: ⌀20 and ⌀12.
After

equal(h1, h2)The second hole takes the first one's size, so one diameter sizes both.
The code behind it
equal(h1, h2) equates the second hole to the first (1 DOF), so the single diameter(h1, 20) sizes both. With more entities — equal(c1, c2, c3, c4) on four corner rounds — every entity after the first follows it, and one radius sizes all four.
holes.part.js
import { sketch, circle, origin } from 'fluidcad/core';
import { equal, coincident, horizontal, distance, diameter } from "fluidcad/constraints";
sketch("xy", () => {
// Two holes drawn at two different sizes.
const h1 = circle([0, 0], 20);
const h2 = circle([50, 0], 12);
coincident(h1.center(), origin());
horizontal(h1.center(), h2.center());
distance(h1.center(), h2.center(), 50);
// One diameter, shared: the second hole takes the first one's size.
equal(h1, h2);
diameter(h1, 20);
})
In code
equal(l1, l2) // same length: 1 DOF
equal(c1, c2) // same radius: 1 DOF
equal(a, b, c, ...) // every entity after the first: 1 DOF each
Lines and round entities cannot be mixed in one statement, and a datum axis has no length to equate.