Files
OneCAD-Draft/help/create-edit-geometry.html
T
Felix RiestraandClaude Sonnet 5 7cddf31bcb Add named parameters, UI scale setting, OPTIONS/OP dispatch, and help manual
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 <[email protected]>
2026-09-09 13:50:08 +02:00

58 lines
8.4 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 — Create and Edit Geometry">
<title>Create and Edit Geometry — 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 class="current-topic" open><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><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">Create and Edit Geometry</h1>
<h3 id="basic-drawing-commands">Basic drawing commands</h3>
<p>Create lines, arcs, circles, ellipses, polylines, splines, points, text, hatches, and other supported entities from the ribbon or command line. Follow the active prompt: multi-step commands remain active until they complete or are cancelled.</p>
<h3 id="modify-geometry">Modify geometry</h3>
<p>Common modification workflows include move, copy, rotate, scale, mirror, offset, trim, extend, fillet, chamfer, stretch, join, explode, and erase. Locked layers can prevent modification.</p>
<h3 id="grips-and-direct-manipulation">Grips and direct manipulation</h3>
<p>Select an entity to expose its grips. Dragging a grip previews and then commits a geometric change. Constrained neighboring geometry may update with it.</p>
<h3 id="undo-redo-and-oops">Undo, redo, and OOPS</h3>
<p><strong>Undo</strong> reverses recorded document operations and <strong>Redo</strong> reapplies them. <strong>OOPS</strong> restores the most recently erased entities without reversing later commands. Save before a risky sequence and verify that associated dimensions, hatches, groups, and constraints were restored with their geometry.</p>
<nav class="page-navigation" aria-label="Previous and next chapter"><a rel="prev" href="workspace-navigation.html">← Workspace and Navigation</a><a rel="next" href="layers-properties.html">Layers and Properties →</a></nav>
<p class="date-footer">OpenCAD Studio Help · Generated from <code>help/manual.md</code></p>
</div>
</main>
</body>
</html>