Repository navigation
Open
Labels
area:entitiesEntity prescriptions in spec §20.4Entity prescriptions in spec §20.4priority:P2Quality and completenessQuality and completenesstype:specImplements or verifies a numbered section of ODA spec v5.4.1Implements or verifies a numbered section of ODA spec v5.4.1
Description
Spec: ODA Open Design Specification for .dwg files v5.4.1, §20.4.38, §20.4.69, §20.4.70, §20.4.84.
Sections and their state on main (2026-10-21)
| Section | State | Code | Note |
|---|---|---|---|
| §20.4.38 VIEWPORT ENTITY (34) (p. 133) | partial |
src/entities/viewport.rs | 6 records error (#71): the decoder consumes 266 of a 1,125-bit budget. |
| §20.4.69 VIEWPORT ENTITY CONTROL (70) (p. 182) | decoder |
src/objects/control.rs | |
| §20.4.70 VIEWPORT ENTITY HEADER (71) (p. 183) | missing |
- | |
| §20.4.84 LAYOUT (p. 202) | closes |
src/objects/acad_layout.rs, src/objects/acad_plot_settings.rs | All 31 corpus records across R2004, R2010, R2013 and R2018. |
closes comes from the boundary checks on the local 19-file corpus (STATUS.md, 2026-08-30). It is re-measured on the public corpus in CI by the 0.2.0 measurement epic, and no section is complete until its values equal AutoCAD's own DXF export.
Acceptance, for every section above
- Every field of its prescription is read, with every version branch the section names
- Where the section prints an example, its bytes are a committed fixture and decode to the values printed
- The field list ends on the record's exact data-stream boundary (and string/handle-stream boundaries on R2007+) on every corpus record of the type, on every release band
- Every value equals AutoCAD's DXF export of the same drawing, matched by handle (DXF group 5), with the scorer from the oracle epic
- The corpus holds at least one record of the type on each release band, R13 to R2018; a band without one is recorded on the corpus epic, not assumed
- Its row in docs/spec-coverage.md moves to
complete, with the evidence linked
Subtasks
- §20.4.38 VIEWPORT ENTITY (34)
- R13
- R14
- R2000
- R2004
- R2007
- R2010
- R2013
- R2018
- §20.4.69 VIEWPORT ENTITY CONTROL (70)
- R13
- R14
- R2000
- R2004
- R2007
- R2010
- R2013
- R2018
- §20.4.70 VIEWPORT ENTITY HEADER (71) (no decoder yet)
- R13
- R14
- R2000
- R2004
- R2007
- R2010
- R2013
- R2018
- §20.4.84 LAYOUT
- R13
- R14
- R2000
- R2004
- R2007
- R2010
- R2013
- R2018
A subtask becomes its own issue when someone picks it up; that issue quotes the section's field list and names the corpus records it is measured on.
Parent: #138
Metadata
Metadata
Assignees
Labels
area:entitiesEntity prescriptions in spec §20.4Entity prescriptions in spec §20.4priority:P2Quality and completenessQuality and completenesstype:specImplements or verifies a numbered section of ODA spec v5.4.1Implements or verifies a numbered section of ODA spec v5.4.1
Activity
DrunkOnJava commentedon Oct 27, 2026
Status (main 2bab7b2;
docs/spec-coverage.mdand CI run 40503137263). Against the 2026-10-21 table in the body:partialis nowcloses(fix(entities): decode the whole §20.4.38 VIEWPORT record on every release (#71) #247). Every field and version branch is read; all 51 records close, R14 to R2018, and the 36 R2000 to R2018 records with a DXF twin equal it. Not yet scored by the oracle (36 records unscored).closesand now on every band that holds one: fix(objects): decode LAYOUT on R14, R2000 and R2007 with §20.4.84's version branches (#229) #270 decodes it on R14, R2000 and R2007 (75 records that were skipped), and fix(objects): LAYOUT has no data-store block; those 16 bits are plot_layout_flags #236 fixedplot_layout_flags. Oracle: 132 records, 7,317 values equal, 0 different, 207 DWG-only, 727 DXF groups not decoded.decoder.missing; PR feat(objects): decode VIEWPORT ENTITY HEADER from §20.4.70 (#146) #311 is queued.chore(corpus): record the baseline the Corpus job measured for VIEWPO…
feat(dxf): score VIEWPORT in the value oracle (§20.4.38) (#390)
feat(objects): decode VIEWPORT ENTITY HEADER from §20.4.70 (#146) (#311)