Release notice: Validate generated definitions, assembly constraints, and manufacturing geometry before production use.
The @scad.part / @scad.assemble anchor is now the directory containing the
builder's source file. The content-addressed part cache and the part interface
state land at <script dir>/.simplecad/ by default:
- A standalone script runs from anywhere — no
pyproject.tomlis required up the tree, and a missing project root no longer fails at decoration time. - Copying or deleting a script directory carries or clears its cache with it.
file_input()paths resolve relative to the anchor; scripts typically declare their inputs next to themselves (scad.file_input("model.py")).- Pass
project_root=...explicitly to anchor at a larger project — the project-level cache and the[tool.simplecadapi.cache]table follow the explicit anchor. Environment overrides (SIMPLECAD_CACHE_DIR,SIMPLECAD_CACHE_MODE, …) are unchanged.
All sketch-family calls emitted by the HistCAD→FTC translator are now
keyword-form (scad.add_circle_rsketch(sketch=s, entity_id=..., center=..., radius=...), scad.constrain_distance_x_rsketch(sketch=s, a=..., b=..., value=...)). Translated sources are training corpus: the parameter names
carry the meaning in the source itself. The same pin already guarded the
CadQuery translator; both suites now reject positional sketch-family calls
(boolean *solids varargs stay positional by signature).
Both translators (histjson, cadqueryftc) emit
project_root=Path(__file__).parent on @scad.part explicitly, so a
delivered .ftc.py states where its cache lands instead of relying on
implicit resolution. The three examples/histcad_demo sources were
regenerated; STEP volume reconciliation is unchanged (1.63e-16 / 8.18e-05).
docs/skill/references/discipline/feature-tree-convention.md gains a section
documenting the decorator's keyword parameters (id, revision, inputs,
cache, project_root, tolerance_profile), where the cache and interface
state land, the override chain (decorator > environment > project config >
defaults), and the cache key composition.
- Builders relying on the old implicit project-root walk-up (shared
<repo>/.simplecad) now get a script-local cache instead; passproject_root=...explicitly to keep the old anchoring. - In-repo examples that declared repo-root-relative
file_inputpaths were rewritten to script-relative paths in this release.