Skip to content

§20 family: Text, attributes, shapes and tolerances (§20.4.3 to §20.4.5, §20.4.37, §20.4.46, §20.4.49) #140

Open

Description

@DrunkOnJava

Spec: ODA Open Design Specification for .dwg files v5.4.1, §20.4.3, §20.4.4, §20.4.5, §20.4.37, §20.4.46, §20.4.49.

Sections and their state on main (2026-10-21)

Section State Code Note
§20.4.3 TEXT (1) (p. 108) closes src/entities/text.rs #62: three angles read BD where §20.4.3 types them RD.
§20.4.4 ATTRIB (2) (p. 109) closes src/entities/attrib.rs
§20.4.5 ATTDEF (3) (p. 110) closes src/entities/attdef.rs
§20.4.37 SHAPE (33) (p. 132) missing -
§20.4.46 MTEXT (44) (p. 148) closes src/entities/mtext.rs R2018 tail and ATTRIB's embedded MTEXT (ARCHITECTURE §7g).
§20.4.49 TOLERANCE (46) (p. 155) closes src/entities/tolerance.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.3 TEXT (1)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.4 ATTRIB (2)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.5 ATTDEF (3)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.37 SHAPE (33) (no decoder yet)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.46 MTEXT (44)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.49 TOLERANCE (46)
    • 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

Activity

  1. added
    type:specImplements or verifies a numbered section of ODA spec v5.4.1
    area:entitiesEntity prescriptions in spec §20.4
    priority:P1On the path of the current milestone
    on Oct 21, 2026
  2. DrunkOnJava commented on Oct 27, 2026

    @DrunkOnJava
    OwnerAuthor

    Status (main 2bab7b2; docs/spec-coverage.md and CI run 40503137263). The table in the body is a 2026-10-21 snapshot and is behind:

    R13 has no AutoCAD-written drawing (#345), so no row here can reach complete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:entitiesEntity prescriptions in spec §20.4priority:P1On the path of the current milestonetype:specImplements or verifies a numbered section of ODA spec v5.4.1

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions