concept
Variables, units, and expressions
Reuse dimensions and calculate Distance, Angle, and Number values in numeric fields.
Variable types
Open Variables to create reusable project values. Distance stores a length, Angle stores an angle, and Number stores a unitless scalar. Give each variable a clear name and use that name in compatible numeric inputs.
Supported units
Distance expressions accept millimeters (`mm`), centimeters (`cm`), meters (`m`), inches (`in`), and feet (`ft`). Angle expressions accept degrees (`deg`) and radians (`rad`). A value without an explicit unit is interpreted for the field and current project unit.
The numeric keypad shows a live result in the current project unit. For example, entering `0.015` in an inch project previews `0.015 in`; entering `0.381 mm` previews the same length as `0.015 in`.
Changing Project Setup > Units preserves the physical size of existing dimensions and features. Existing saved expressions retain the unit used when they were entered; an expression may show this explicitly as `mm{1+1}` after you change units. New expressions without a unit use the project's new unit. For example, `mm{1+1}` remains 2 mm even in an inch project, while a new `1+1` in that project means 2 in.
Expression examples
Expressions support variable names, parentheses, `+`, `-`, `*`, `/`, powers with `^`, and the constants `pi` and `e`.
width / 2
(height + 10 mm) * 2
360 deg / toothCount
2 * pi * radiusOnly compatible dimensions can be added or subtracted. Multiplication and division can derive or cancel dimensions, but the final result must match the field: a distance for length inputs, an angle for angle inputs, or a unitless value for Number inputs. Division by zero, unknown names, incompatible dimensions, and non-finite results are rejected.
Editing dependencies
When a feature uses a variable, changing the variable rebuilds dependent results. MakerSolid keeps the source expression as well as its last valid value. If an edit becomes invalid, correct the expression or cancel before continuing.