Skip to content

§20 family: Symbol tables and their controls (§20.4.53 to §20.4.68) #148

Open
1 of 2 issues completed

Description

@DrunkOnJava

Spec: ODA Open Design Specification for .dwg files v5.4.1, §20.4.53, §20.4.54, §20.4.55, §20.4.56, §20.4.57, §20.4.58, §20.4.59, §20.4.60, §20.4.61, §20.4.62, §20.4.63, §20.4.64, §20.4.65, §20.4.66, §20.4.67, §20.4.68.

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

Section State Code Note
§20.4.53 LAYER CONTROL (50) (p. 160) closes src/objects/control.rs
§20.4.54 LAYER (51) (p. 161) partial src/tables/layer.rs #34: the pre-R2007 field list is not validated past the object header.
§20.4.55 SHAPEFILE CONTROL (52) (p. 162) closes src/objects/control.rs
§20.4.56 SHAPEFILE (53) (STYLE) (p. 163) closes src/tables/style.rs
§20.4.57 LINETYPE CONTROL (56) (p. 164) closes src/objects/control.rs
§20.4.58 LTYPE (57) (p. 165) partial src/tables/ltype.rs #34: R2004 description reads garbage; complex linetypes are not checked.
§20.4.59 VIEW CONTROL (60) (p. 167) closes src/objects/control.rs
§20.4.60 VIEW (61) (p. 167) closes src/tables/view.rs
§20.4.61 UCS CONTROL (62) (p. 169) closes src/objects/control.rs
§20.4.62 UCS (63) (p. 170) closes src/tables/ucs.rs
§20.4.63 TABLE (VPORT) (64) (p. 172) closes src/objects/control.rs
§20.4.64 VPORT (65) (p. 172) closes src/tables/vport.rs
§20.4.65 TABLE (APPID) (66) (p. 175) closes src/objects/control.rs
§20.4.66 APPID (67) (p. 176) closes src/tables/appid.rs
§20.4.67 DIMSTYLE CONTROL (68) (p. 177) closes src/objects/control.rs
§20.4.68 DIMSTYLE (69) (p. 178) partial src/tables/dimstyle.rs R13/R14 block order unmeasured (#74).

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.53 LAYER CONTROL (50)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.54 LAYER (51)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.55 SHAPEFILE CONTROL (52)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.56 SHAPEFILE (53) (STYLE)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.57 LINETYPE CONTROL (56)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.58 LTYPE (57)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.59 VIEW CONTROL (60)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.60 VIEW (61)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.61 UCS CONTROL (62)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.62 UCS (63)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.63 TABLE (VPORT) (64)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.64 VPORT (65)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.65 TABLE (APPID) (66)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.66 APPID (67)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.67 DIMSTYLE CONTROL (68)
    • R13
    • R14
    • R2000
    • R2004
    • R2007
    • R2010
    • R2013
    • R2018
  • §20.4.68 DIMSTYLE (69)
    • 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:tablesSymbol tables and their controls (§20.4.51 to §20.4.70)
    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). Against the 2026-10-21 table in the body:

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:tablesSymbol tables and their controls (§20.4.51 to §20.4.70)priority: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