Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,18 @@ once the public API stabilizes at 0.1.0.

## [Unreleased]

### Added — LIGHT by class name, ACSH_CYLINDER_CLASS, ACSH_REVOLVE_CLASS and RAPIDRTRENDERENVIRONMENT decode to their record boundary (2026-10-28, #425, #426, #427, #152)

Three classes in the BookViewerApp3 drawings, and LIGHT declared by class name there, now decode. Those drawings have no AutoCAD DXF export, so each field list is the one the records close on to the bit, and its values are not yet scored ("boundary closes, values unscored"). Their state stays `decoder`.

LIGHT's field list was replaced by one its R14 record closes on: `Light`'s position and target are no longer optional, and its colour is a `ShColor`.

The corpus job's skipped records fell from 44 to 32.

### Added — the value oracle scores HATCH and TOLERANCE (2026-10-28, #389, #392)

HATCH (§20.4.75) is scored path by path. A record whose boundary has an arc, ellipse or spline edge stops being scored at that edge. TOLERANCE (§20.4.49) adds 60 rows to the oracle baseline.

### Added — the table objects decode: TABLESTYLE from R2010, CELLSTYLEMAP, TABLEGEOMETRY, TABLECONTENT and ACAD_TABLE (2026-10-27 and 28, #313, #316, #317, #319, #151)

TABLESTYLE (§20.4.101.2) and CELLSTYLEMAP (§20.4.102) share one cell-style reader (§20.4.101.3 and §20.4.101.4). TABLEGEOMETRY (§20.4.103), TABLECONTENT (§20.4.97) and the ACAD_TABLE entity (§20.4.96) follow, each paired with AutoCAD's DXF export by its probe. 103 skipped records of the pinned corpus now decode. An ACAD_TABLE's insertion rotation is compared in degrees against group 50; no pinned table is rotated, so that comparison is not yet measured on a nonzero angle.
Expand Down
15 changes: 7 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,10 @@ on the pinned corpus. A *skipped* record is a type with no decoder on `main`
yet. Two of the skipped types have a decoder in review, SHAPE (#310) and the
VIEWPORT entity header (#311). The rest are custom classes in the four
drawings pinned from kurema/BookViewerApp3: the render settings
(RAPIDRTRENDERENVIRONMENT, RAPIDRTRENDERSETTINGS, MENTALRAYRENDERSETTINGS and
RENDERGLOBAL), five associative-network classes (ACDBASSOCNETWORK,
ACDBASSOCACTION, ACDBASSOCDEPENDENCY, ACDBASSOCVERTEXACTIONPARAM and
ACDBASSOCARRAYACTIONBODY), ACSH_CYLINDER_CLASS, ACSH_REVOLVE_CLASS, and LIGHT
declared as a custom class. Those drawings have no DXF
(RAPIDRTRENDERSETTINGS, MENTALRAYRENDERSETTINGS and RENDERGLOBAL) and five
associative-network classes (ACDBASSOCNETWORK, ACDBASSOCACTION,
ACDBASSOCDEPENDENCY, ACDBASSOCVERTEXACTIONPARAM and ACDBASSOCARRAYACTIONBODY).
Their few records do not settle a field list, and those drawings have no DXF
export to derive or score them against yet (#152). The Corpus job's
`corpus-measurement` artifact lists the skipped records of each drawing by
type (`corpus-logs/`).
Expand Down Expand Up @@ -211,9 +210,9 @@ every later disclosure.
short outside the ten proven pages still decodes as lossy UTF-8 (#375).
- Decode password-protected R2007 files: a section whose descriptor declares
encryption is refused, not decoded.
- Decode the render-settings classes, five associative-network classes and
ACSH_CYLINDER_CLASS and ACSH_REVOLVE_CLASS (listed above); the pinned corpus
holds a few such records and no DXF export of them yet (#152).
- Decode the render-settings and five associative-network classes listed
above; the pinned corpus holds a few such records and no DXF export of them
yet (#152).
- Write R13, R14 or R2007 files; the writer covers the R2004 family only.
- Byte-identical DWG round trips, or output checked by any CAD application.
- Python bindings, a non-technical end-user application, an installer or a
Expand Down
Loading