Repository navigation
Open
0 / 10 of 1 issue completedOpen
0 / 10 of 1 issue completed
Copy link
Labels
area:entitiesEntity prescriptions in spec §20.4Entity prescriptions in spec §20.4priority:P1On the path of the current milestoneOn the path of the current milestonetype: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.47, §20.4.48, §20.4.50, §20.4.73, §20.4.75, §20.4.86, §20.4.87.
Sections and their state on main (2026-10-21)
| Section | State | Code | Note |
|---|---|---|---|
| §20.4.47 LEADER (45) (p. 150) | partial |
src/entities/leader.rs | 1 record errors (#71): 12 bits left. |
| §20.4.48 MLEADER (p. 152) | closes |
src/entities/mleader.rs | All 15 MULTILEADER records close (#58). |
| §20.4.50 MLINE (47) (p. 156) | closes |
src/entities/mline.rs | |
| §20.4.73 MLINESTYLE (73) (p. 185) | closes |
src/objects/acad_mlinestyle.rs | All 10 corpus records, four release bands (ARCHITECTURE §7d.3). |
| §20.4.75 HATCH (p. 188) | closes |
src/entities/hatch.rs | Gradient block unconditional (ARCHITECTURE §7g). |
| §20.4.86 MLeaderAnnotContext (p. 206) | closes |
src/entities/mleader.rs | |
| §20.4.87 MLEADERSTYLE (p. 209) | closes |
src/objects/acad_mleader_style.rs |
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.47 LEADER (45)
- R13
- R14
- R2000
- R2004
- R2007
- R2010
- R2013
- R2018
- §20.4.48 MLEADER
- R13
- R14
- R2000
- R2004
- R2007
- R2010
- R2013
- R2018
- §20.4.50 MLINE (47)
- R13
- R14
- R2000
- R2004
- R2007
- R2010
- R2013
- R2018
- §20.4.73 MLINESTYLE (73)
- R13
- R14
- R2000
- R2004
- R2007
- R2010
- R2013
- R2018
- §20.4.75 HATCH
- R13
- R14
- R2000
- R2004
- R2007
- R2010
- R2013
- R2018
- §20.4.86 MLeaderAnnotContext
- R13
- R14
- R2000
- R2004
- R2007
- R2010
- R2013
- R2018
- §20.4.87 MLEADERSTYLE
- 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:P1On the path of the current milestoneOn the path of the current milestonetype:specImplements or verifies a numbered section of ODA spec v5.4.1Implements or verifies a numbered section of ODA spec v5.4.1
Activity
fix(dxf): look up a MULTILEADER context's attachments in its interior…
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): read §20.4.47 LEADER's end point projection and tails on every release (#71) #249). The R14+ end point projection and both version branches are read; all 7 records close, R14 to R2018, and values equal the twin on R2000 to R2018. One measured departure from the spec: from R2010 the box height and width are not written.closesmoved topartialat docs: publish the real-file numbers the Corpus CI job measures #237 for "the 8 R14 records are never routed". That is fixed (fix(entities): route the R14 LWPOLYLINE and HATCH classes and read LWPOLYLINE's R13-R14 vertices (#229) #264: the R14 HATCH and LWPOLYLINE classes are routed, all 8 R14 HATCH and 24 R14 LWPOLYLINE records close and equal the R2000 saves), and a spline edge with no fit points stores no tangents (fix(entities): a HATCH spline edge without fit points stores no tangents (#228) #294), so no release has an errored HATCH record. The row's note still says the R14 records are never routed.-R2007branches are read (fix(entities): decode MULTILEADER on R14 to R2007 with §20.4.48's version branches (#229) #278): all 60 R14 to R2007 records close and every value compared equals the export. The oracle scorer is queued (PR feat(dxf): score MULTILEADER in the value oracle (§20.4.48) #385; 90 records unscored); MULTILEADER text background colour: R2000 DWG holds ACI 9, the DXF export holds true colour 0xC2C8C8C8 (3 records) #381 tracks the R2000 text background colour.feat(dxf): score MULTILEADER in the value oracle (§20.4.48) (#385)
feat(dxf): score MLINE in the value oracle (§20.4.50)
feat(dxf): score HATCH in the value oracle (§20.4.75) (#389)
feat(dxf): score MLINE in the value oracle (§20.4.50) (#391)
feat(dxf): score LEADER in the value oracle (§20.4.47) (#402)
docs(spec-coverage): move the rows the 2026-10-27 main run proves, an…
docs(criteria): re-measure the 1.0 requirements from the 2026-10-27 m…