forked from 1b-agent/opencadstudio-upstream
A drawing saved by a commercial CAD application (tests/fixtures/plot,
provided by Panos: one 10 m line, three layouts) corrects several
assumptions of the previous commit:
- rotation is relative to the medium's own orientation: an unchanged sheet
keeps the driver's exact medium (its PDF driver lists landscape media of
its own, written with rotation 0; a system printer's portrait A3 plotted
landscape carries 90); only a newly picked sheet is written as the
catalogue's portrait medium
- the stored scale factor (DXF 147) is the ratio × 25.4 on millimetre page
setups and the plain ratio on inch ones; the "use standard scale" bit
stays clear for standard and custom scales and is set for fit-to-paper;
a standard code is kept across a paper-unit conversion ("1:1" on an
inch page setup over a millimetre paper space is 1 in = 25.4 units)
- layout plots take the same scale path as every other area, so a foreign
layout's paper-space unit survives
- "plot with plot styles" / "display plot styles" round-trip as the
dialog's checkboxes, independent of a style table being named
- layout limits place the sheet at minus its displayed margins, the way the
source application does (the printable corner is the paper-space origin);
the margin ↔ rotation mapping shared by the printable-area guide now
turns the medium's top margin into the layout's left one at 90°
The fixture round-trips through the dialog with every stored field
unchanged; picking a new sheet on it writes the canonical form.
Co-Authored-By: Claude Opus 5 <[email protected]>
Page-setup fixtures saved by a commercial CAD application (2016 release, DXF
AC1027 and the matching DWG). Provided by Panos for the plotting parity track;
the drawing holds one 10 m line ($INSUNITS = 6, metres) and three paper
layouts, each with a viewport of that line and its dimension:
| Layout | Device | Media (4) |
44×45 |
73 |
72 |
142/143 |
147 |
75 |
|---|---|---|---|---|---|---|---|---|
A4 1-100 |
DWG To PDF.pc3 |
ISO_A4_(297.00_x_210.00_MM) |
297 × 210 | 0 | mm | 1 / 1 | 25.4 | 16 |
A3 - plotter |
system printer HPB602DE (HP OfficeJet Pro 7740 series) |
A3 |
297.01 × 419.99 | 1 | mm | 1 / 1 | 25.4 | 16 |
ARCH D - PLOTTER |
the application's second PDF plotter configuration (… PDF (High Quality Print).pc3) |
ARCH_D_(36.00_x_24.00_Inches) |
914.4 × 609.6 | 0 | in | 1 / 25.4 | 0.03937 | 16 |
What the file establishes (see src/app/update/file.rs, plot_settings_from_dialog):
- A landscape sheet is written either as the driver's own landscape medium with rotation 0 (the PDF driver lists both orientations) or as a portrait medium with rotation 90 (system printers) — rotation is relative to the medium's orientation, and the medium's exact driver dimensions are kept.
- Margins (
40–43, mm) belong to the medium's own edges: the PDF driver's A4 has 5.79375 left/right and 17.79375 bottom/top. Layout limits (10/20) put the sheet at minus the displayed margins: at rotation 90 the medium's top margin (20.02) becomes the layout's left one, its left margin (5.00) the layout's bottom one. - Plot flags
70= 672 on every layout: draw viewports first, print lineweights, plot with plot styles — the "use standard scale" bit stays clear even with a standard code in75; the model tab (fit to paper) sets it. 147is142/143× 25.4 on millimetre page setups and142/143itself on inch ones.- An inch page setup over a millimetre paper space stores "1:1" as
1 in = 25.4 units(75= 16 kept).