An mdBook under docs/book: a user guide (getting started, UI tour, sketching, features, parameters, components and joints, sheet metal, plastic, files, shortcuts, MCP) and a developer guide (CONTRIBUTING, architecture, command engine, kernel boundary, persistent naming, test harnesses, and the existing docs/*.md pages). `cargo xtask book` generates the command reference from `solvecraft-cli commands` and renders the screenshots with `solvecraft-cli snapshot`, then runs mdbook. .github/workflows/pages.yml publishes the book at /solvecraft/ and the web app at /solvecraft/app/ (skipped while the repository is private). .github/workflows/ci.yml runs `cargo xtask ci` on pull requests. README and Help → Documentation link to the book. Fixes #28 Fixes #8 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 lines
1.3 KiB
Markdown
22 lines
1.3 KiB
Markdown
# Parameters and expressions
|
|
|
|
Every dimension and feature input is a **model parameter** (`d1`, `d2`, …). **User parameters**
|
|
are ones you add yourself, with a unit, an expression and an optional comment. Change them in
|
|
**Change Parameters** (`parameters.change`). The timeline rebuilds from the first feature that
|
|
uses them.
|
|
|
|
Expressions are unit-aware: `2 * width + 5 mm`, `angle / 2`, `sqrt(area)`, `1 in + 3 mm`, using
|
|
`+ - * / ^`, parentheses, `sin cos tan asin acos atan atan2 sqrt abs min max floor ceil round mod
|
|
trunc` and unit conversion. A length where an angle is expected (or the other way round) is an
|
|
error, not a silent conversion. Cycles are reported with their path (`a → b → a`), renaming a
|
|
parameter updates every expression, dimension and feature input that uses it, and a parameter
|
|
in use can't be deleted (the error lists its users).
|
|
|
|
The design's units (Document Settings in the browser: mm, cm, m, in or ft) set how a bare number
|
|
typed into a feature is read. In an inch design `2` means 2 in. Changing the units never moves
|
|
existing geometry.
|
|
|
|
Parameters export to and import from CSV or JSON (`parameters.export`, `parameters.import`).
|
|
**Configurations** (`config.*`) keep a table of rows, each with its own parameter values and
|
|
suppressed features, switched with `config.activate`.
|