Codaform generated file-size demonstration

These are newly generated demonstration parts, not customer or manufacturer files,
not results measured from Codaform exports, and not an engineering catalog.
The dimensions are illustrative millimetre values, not pressure-rated standards.

WHAT IS MEASURED
Uncompressed on-disk bytes for standalone STEP source models, versus one reusable
Plant-style Python source file per family PLUS the corresponding CSV size table.
Single size uses size-04 (scale1.0). Ten sizes uses every listed variant.
The mixed library contains three families and30STEP models, compared with3Python
sources and3CSV tables. No unused variants are counted on either single-size side.
ZIP totals are measured separately, both using DEFLATE level9. Shared runtimes,
Codaform, Plant3D installations, readers and operating-system allocation units are
excluded from both sides. No artificial padding or duplicated STEP placements.

GEOMETRY AND VALIDATION
CadQuery2.8.0 / Open CASCADE exports each STEP from the very same Python function
via the supplied primitive adapter. All30models are required to be valid, single,
positive-volume solids. Every STEP is reopened and checked against the source
solid's volume and bounding box. See validation.json for actual errors.
The adapter implements only the primitives used in these examples. It does not
simulate the Plant3D catalog, ports, registration or drawing runtime. Python files
use Plant3D-style APIs but have NOT been executed or certified inside Plant3D.
The CSV is comparison input data, not a promised Plant3D catalog file format.
The STEP models do not include manufacturer metadata, threads or hidden detail.

WHAT CANNOT BE INFERRED
These are source/library file sizes, NOT DWG/project sizes, memory consumption,
load-time measurements or guaranteed savings. Repeated placements may reuse
geometry in either format. Changing dimensions or exporter settings changes bytes.
A one-file STEP assembly and its instancing are not tested here. The10-size case
compares10independently exported STEP variants with one parameterised definition.

VERIFY
Unzip the relevant STEP and Python archives. Sum exact file byte counts (not
'Size on disk'). Compare SHA256 hashes with manifest.json. Decimal units are used:
1kB=1000bytes,1MB=1000000bytes. UI percentages come from these byte totals.
Read comparisons.json to reproduce every displayed number.
Run python verify.py to verify checksums and sizes using only Python's standard
library. To regenerate solids, place generate-comparison.py beside flange.py,
spool.py and support.py, install cadquery==2.8.0, then run the generator with an
output directory argument. ZIP timestamps and STEP header timestamps can change
on regeneration; geometries remain the intended comparison, not byte identities.

Sources for API and STEP export conventions:
https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/How-to-script-components-for-AutoCAD-Plant-3D-AU-2012-Class.html
https://cadquery.readthedocs.io/en/latest/importexport.html

Use these demo sources freely for evaluation. Validate any host integration,
geometry, dimensions, ports and suitability before production use.
