Exact sizes, and the size step
A size you type is the size you get. A size the Studio picks for you lands on a round step.
The rule
- Typed sizes are drawn as typed, to the last digit, never rounded and never clamped. If one does not fit, it is still drawn, and flagged.
- Driven sizes (the grey ones, filled in to fit the profile) round down to the marker's size step: 0.5 mm on the inkjet presets, any step you set, or whole printer dots per cell, so every cell is exactly a whole number of dots. A 3D printer profile with a line width makes every cell a whole number of lines.
- The step belongs to the preset, and a marker can override it.
In numbers
A single 4 × 4 marker on a 30 mm square, its size driven:
| Size step | Marker |
|---|---|
| 0.5 mm (the inkjet presets' default) | 22 mm |
| 0.1 mm | 22.4 mm |
| Whole printer dots (600 dpi) | 22.352 mm |
| A 3D printer profile, 0.675 mm lines | 20.25 mm: each cell 5 lines |
The Marker row says how the size lands on the printer: “22.352 mm = 6 cells × 88 dots at 600 dpi, exact”
Type 21.37 mm on the same square and it is drawn at 21.37 mm: no step. Type 25 mm, which with its quiet zone does not fit, and it is still drawn at 25 mm, and the Studio says: “3.3 mm wider and 3.3 mm taller than the 30 × 30 mm rectangle: drawn as typed (a smaller size, or Auto, fits it)”
Why
Round numbers are easy to read, check with a ruler and type into CAD; exact numbers are what you asked for.
“we should by default recommend to the nearest like .5 mm”
Zach, 2026-10-20
“we should always have complete control”
Zach, 2026-10-20
In the code: core/autosize.py (rules 2 and 3) and web_api.cells_of; the contract's SizeStep.