Files
OneCAD-Draft/tests/fixtures/plot
PanosandClaude Opus 5 8e09bd8463 fix(plot): follow the fixture's page-setup conventions
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]>
2026-09-17 18:04:38 +03:00
..

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 in 75; the model tab (fit to paper) sets it.
  • 147 is 142/143 × 25.4 on millimetre page setups and 142/143 itself on inch ones.
  • An inch page setup over a millimetre paper space stores "1:1" as 1 in = 25.4 units (75 = 16 kept).