forked from 1b-agent/opencadstudio-upstream
Named parameters (docs/named_parameters_design.md, stages 3-4): - ParameterTable (src/scene/named_parameters.rs): a document-wide table of named formulas, each resolved through a shared expression evaluator with cross-parameter references, cycle detection, and division-by-zero/parse error reporting. SketchConstraint::driving_param becomes DrivingValue (Literal | Named) instead of a bare f64, resolved at solve time by sketch_solve::build_constraint via Scene::named_parameters. - Persistence (src/scene/named_parameters_persist.rs): same lazy XRecord model sketch_persist.rs already established, synced around open/save. Bumps the sketch-constraint XRecord's own format version (1 -> 2) since DrivingValue's shape doesn't line up with a version-1 blob's bytes. - PARAMETERS command and its editor (src/ui/window/named_parameters.rs): add/remove/edit rows, live validation, duplicate-name detection: Apply defines the table and re-solves every constraint scope with a named-parameter-driven constraint (command_driver.rs). Distance/Angle constraint prompts (modules/draw/constrain/value.rs) now accept either a literal or an existing parameter's name, mirroring how the constraint's own value prompt already worked. - Undo scope-down carried over from this project's own established pattern (constraint-system stage 9): the geometry an Apply moves is one undo step, but the parameter table edit itself has no undo entry yet — a documented follow-up, not a silent gap. UI scale setting (src/app/settings.rs, app/mod.rs, ui/window/options.rs): a whole-interface scale percentage (50-200%), wired directly into iced's own per-window scale_factor hook rather than per-panel font-size plumbing, so it applies immediately to every panel, dialog, and the ribbon at once. Persisted alongside the existing lineweight-display-scale setting. OPTIONS/OP command dispatch (app/commands/view.rs, app/commands/mod.rs): OPTIONS was registered for autocomplete but had no dispatch arm — the Start-tab welcome screen's own button was the only way to reach it. Found live-testing the UI-scale setting, unrelated to that feature itself. "OP" is AutoCAD's own short alias. help/: a new self-contained static user-help manual (manual.md as the authored source, tools/build_help.py splits it into the committed static HTML pages plus search index) — not yet wired into the application. 64 new/updated tests across the named-parameters and constraint-prompt changes. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
56 lines
8.0 KiB
HTML
56 lines
8.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="description" content="OpenCAD Studio user manual — Blocks and References">
|
|
<title>Blocks and References — OpenCAD Studio Help</title>
|
|
<link rel="stylesheet" href="assets/css/core.css">
|
|
<link rel="stylesheet" href="assets/css/opencad.css">
|
|
<script src="search-index.js" defer></script>
|
|
<script src="assets/js/help.js" defer></script>
|
|
</head>
|
|
<body>
|
|
<header class="topbar">
|
|
<button class="nav-toggle" type="button" aria-controls="help-sidebar" aria-expanded="true" title="Toggle chapter navigation"><span aria-hidden="true">☰</span><span class="sr-only">Toggle chapter navigation</span></button>
|
|
<a class="brand" href="index.html">OpenCAD Studio Help</a>
|
|
<div class="search-shell">
|
|
<label class="sr-only" for="help-search">Search help</label>
|
|
<input id="help-search" class="help-search" type="search" role="combobox" placeholder="Search commands and topics" autocomplete="off" aria-autocomplete="list" aria-controls="search-results" aria-expanded="false">
|
|
<span class="search-key" aria-hidden="true">⌘K</span>
|
|
<ul id="search-results" class="search-results" role="listbox" hidden></ul>
|
|
</div>
|
|
</header>
|
|
<nav id="help-sidebar" class="sidebar" aria-label="Help chapters">
|
|
<div><a class="chapter-link" href="index.html">Help overview</a></div>
|
|
<details><summary><a href="getting-started.html">Getting Started</a></summary><ul><li><a href="getting-started.html#what-opencad-studio-does">What OpenCAD Studio does</a></li><li><a href="getting-started.html#a-first-drawing">A first drawing</a></li><li><a href="getting-started.html#how-to-use-this-manual">How to use this manual</a></li></ul></details>
|
|
<details><summary><a href="files-drawings.html">Files and Drawings</a></summary><ul><li><a href="files-drawings.html#create-and-open-drawings">Create and open drawings</a></li><li><a href="files-drawings.html#save-and-save-as">Save and Save As</a></li><li><a href="files-drawings.html#recovery-and-backups">Recovery and backups</a></li><li><a href="files-drawings.html#external-resources">External resources</a></li></ul></details>
|
|
<details><summary><a href="workspace-navigation.html">Workspace and Navigation</a></summary><ul><li><a href="workspace-navigation.html#model-space-and-paper-space">Model space and paper space</a></li><li><a href="workspace-navigation.html#pan-zoom-and-orbit">Pan, zoom, and orbit</a></li><li><a href="workspace-navigation.html#multiple-model-viewports">Multiple model viewports</a></li><li><a href="workspace-navigation.html#selection-and-object-snaps">Selection and object snaps</a></li></ul></details>
|
|
<details><summary><a href="create-edit-geometry.html">Create and Edit Geometry</a></summary><ul><li><a href="create-edit-geometry.html#basic-drawing-commands">Basic drawing commands</a></li><li><a href="create-edit-geometry.html#modify-geometry">Modify geometry</a></li><li><a href="create-edit-geometry.html#grips-and-direct-manipulation">Grips and direct manipulation</a></li><li><a href="create-edit-geometry.html#undo-redo-and-oops">Undo, redo, and OOPS</a></li></ul></details>
|
|
<details><summary><a href="layers-properties.html">Layers and Properties</a></summary><ul><li><a href="layers-properties.html#layers">Layers</a></li><li><a href="layers-properties.html#object-properties">Object properties</a></li><li><a href="layers-properties.html#styles">Styles</a></li></ul></details>
|
|
<details class="current-topic" open><summary><a href="blocks-references.html">Blocks and References</a></summary><ul><li><a href="blocks-references.html#create-and-insert-blocks">Create and insert blocks</a></li><li><a href="blocks-references.html#array-inserts">Array inserts</a></li><li><a href="blocks-references.html#attributes-and-external-references">Attributes and external references</a></li></ul></details>
|
|
<details><summary><a href="annotation-dimensions.html">Annotation and Dimensions</a></summary><ul><li><a href="annotation-dimensions.html#text-and-annotation">Text and annotation</a></li><li><a href="annotation-dimensions.html#dimensions">Dimensions</a></li><li><a href="annotation-dimensions.html#annotation-scale">Annotation scale</a></li></ul></details>
|
|
<details><summary><a href="layouts-plotting.html">Layouts and Plotting</a></summary><ul><li><a href="layouts-plotting.html#layouts-and-viewports">Layouts and viewports</a></li><li><a href="layouts-plotting.html#page-setup-and-plot-preview">Page setup and plot preview</a></li><li><a href="layouts-plotting.html#export-checks">Export checks</a></li></ul></details>
|
|
<details><summary><a href="3d-modeling.html">3D Modeling and Visualization</a></summary><ul><li><a href="3d-modeling.html#solids-and-surfaces">Solids and surfaces</a></li><li><a href="3d-modeling.html#visual-styles-and-lighting">Visual styles and lighting</a></li><li><a href="3d-modeling.html#tessellation-quality">Tessellation quality</a></li></ul></details>
|
|
<details><summary><a href="parametric-constraints.html">Parametric Constraints</a></summary><ul><li><a href="parametric-constraints.html#geometric-constraints">Geometric constraints</a></li><li><a href="parametric-constraints.html#editing-constrained-geometry">Editing constrained geometry</a></li><li><a href="parametric-constraints.html#persistence-and-history-limitations">Persistence and history limitations</a></li></ul></details>
|
|
<details><summary><a href="commands-shortcuts.html">Commands and Shortcuts</a></summary><ul><li><a href="commands-shortcuts.html#command-line">Command line</a></li><li><a href="commands-shortcuts.html#discover-commands">Discover commands</a></li><li><a href="commands-shortcuts.html#shortcut-conventions">Shortcut conventions</a></li></ul></details>
|
|
<details><summary><a href="automation-plugins.html">Automation and Plugins</a></summary><ul><li><a href="automation-plugins.html#automation-interface">Automation interface</a></li><li><a href="automation-plugins.html#plugins">Plugins</a></li><li><a href="automation-plugins.html#native-and-web-differences">Native and web differences</a></li></ul></details>
|
|
<details><summary><a href="troubleshooting-recovery.html">Troubleshooting and Recovery</a></summary><ul><li><a href="troubleshooting-recovery.html#a-drawing-opens-incorrectly">A drawing opens incorrectly</a></li><li><a href="troubleshooting-recovery.html#geometry-is-missing-or-distorted">Geometry is missing or distorted</a></li><li><a href="troubleshooting-recovery.html#rendering-is-incomplete">Rendering is incomplete</a></li><li><a href="troubleshooting-recovery.html#undo-did-not-restore-the-expected-state">Undo did not restore the expected state</a></li><li><a href="troubleshooting-recovery.html#report-a-reproducible-problem">Report a reproducible problem</a></li></ul></details>
|
|
</nav>
|
|
<main id="main-content">
|
|
<div class="content-wrap">
|
|
<p class="page-kicker">OpenCAD Studio User Manual</p>
|
|
<h1 class="content-title">Blocks and References</h1>
|
|
<h3 id="create-and-insert-blocks">Create and insert blocks</h3>
|
|
<p>A block definition groups reusable drawing content; an INSERT places an instance with its own position, rotation, scale, attributes, and optional array settings. Editing a definition affects every reference to it.</p>
|
|
<h3 id="array-inserts">Array inserts</h3>
|
|
<p>Array inserts place multiple block instances with row and column counts and spacing. Large counts can generate substantial geometry. Validate scaled and rotated arrays when exchanging drawings with another CAD system.</p>
|
|
<h3 id="attributes-and-external-references">Attributes and external references</h3>
|
|
<p>Attributes attach editable values to block references. External references and underlays retain links to other files; preserve their paths when sharing or archiving a project.</p>
|
|
<nav class="page-navigation" aria-label="Previous and next chapter"><a rel="prev" href="layers-properties.html">← Layers and Properties</a><a rel="next" href="annotation-dimensions.html">Annotation and Dimensions →</a></nav>
|
|
<p class="date-footer">OpenCAD Studio Help · Generated from <code>help/manual.md</code></p>
|
|
</div>
|
|
</main>
|
|
</body>
|
|
</html>
|