feat: plot a model-space window to PDF

Pick a rectangular window in model space with the existing PLOTWINDOW command (now enabled in model space, previously paper-space only) and export it to a PDF at a chosen ISO paper size (A4-A0), orientation and scale (fit or ratio). The window is a hard clip boundary. Adds paper-size presets, a window-to-sheet transform, scale + clip support in the PDF exporter, and Page Setup controls (format/orientation/pick window).
This commit is contained in:
sLuCHa committed 2026-07-05 23:13:43 +02:00
1 parent ced42daff5
commit 363593b09f
13 files changed
+444 -24

No files matched your search

+14 -1
View File
@@ -33,7 +33,7 @@ mod zoom_in;
mod zoom_out;
pub mod zoom_window;
use crate::modules::{CadModule, RibbonGroup, RibbonItem};
use crate::modules::{CadModule, IconKind, ModuleEvent, RibbonGroup, RibbonItem, ToolDef};
pub struct ViewModule;
@@ -137,6 +137,19 @@ impl CadModule for ViewModule {
RibbonItem::Tool(cascade::tool()),
],
},
// ── Plot ──────────────────────────────────────────────────────────
// Model space has no paper-space side toolbar, so Page Setup
// (format/orientation/pick window for PLOTWINDOW) needs an
// entry here too.
RibbonGroup {
title: "Plot",
tools: vec![RibbonItem::Tool(ToolDef {
id: "PAGESETUP",
label: "Page Setup",
icon: IconKind::Svg(include_bytes!("../../../assets/icons/pagesetup.svg")),
event: ModuleEvent::Command("PAGESETUP".to_string()),
})],
},
]
})
}