feat(layout): MVSETUP sets a drawing up for plotting

In model space MVSETUP draws the sheet border at the drawing scale
(scale factor, paper width and height) and zooms to it, or switches to
a layout. On a layout it creates viewports in a bounding area (a single
one, a 2x2 engineering set of top/front/right/isometric views, or an
array with spacing), deletes picked objects, and scales picked
viewports to a paper/model unit ratio.

A viewport's fit to the model now measures the model along the
viewport's own view direction, so side and isometric views frame it
too.

Refs #1501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hakan SevenandClaude Opus 5.5 committed 2026-10-13 15:21:26 +03:00
1 parent b1d4c9bd9b
commit 57eb7fe4db
31 files changed
+929 -10

No files matched your search

+12
View File
@@ -1943,6 +1943,18 @@ pub enum CmdResult {
p1: DVec3,
p2: DVec3,
},
/// Commit `entity`, then zoom to the given corner points; end command.
CommitAndZoom {
entity: EntityType,
p1: DVec3,
p2: DVec3,
},
/// Scale the given layout viewports to `factor` paper units per model
/// unit; end command.
ScaleViewports {
handles: Vec<Handle>,
factor: f64,
},
/// Print a measurement result to the command line and end the command.
Measurement(String),
/// Print a measurement result and keep the command active.