You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Entity decoding: common entity data (extended data chain, graphics preview, entity mode, reactors, colour,
linetype scale, visual styles, invisibility, lineweight) and geometry bodies for LINE, CIRCLE, ARC and POINT.
DwgDocument.Entities: decoded entities with geometry; exposed in the JSON export
and in dwgio inspect (entity-kind counts and sample coordinates).
Bit-packed primitives: packed 32- and 64-bit integers, packed doubles, doubles stored as a patch of a default
value, unpacked doubles and single bits; corrected the 2-bit tags of packed shorts (tag 11 = 256) and packed
integers (tag 00 = full 32-bit value).
Banner and logo redrawn.
Contributing guide, security policy, code of conduct, issue and pull request templates, Dependabot configuration
and a description of the private test fixtures (docs/test-fixtures.md).
Documentation site built with docfx: getting started, public API and the generated API reference.
Changed (breaking)
Only the types listed in docs/public-api.md are public. The container reader, cipher, checksums, decompressor,
bit reader and section parsers under DwgIO.Internal are now internal, and so are the Parse methods of the
header and handle map types and DwgVersionInfo.FromMagic.
The file header, container header, handle map and object types moved to DwgIO.Model, and the JSON exporter and
its options to DwgIO.Json. DwgDocument.CommonHeader is now FileHeader and DwgDocument.Header is now ContainerHeader.
Property names of the header, handle map and section types and the matching JSON export keys changed to clearer
names; the current names are listed in docs/public-api.md and the generated API reference.
The JSON type value and DwgEntity.TypeName use AutoCAD entity names for 3D faces, 3D solids, 2D and 3D
polylines and vertices, and table names for block records, layers, text styles and linetypes.
Changed
The NuGet package icon lives in each project folder (src/DwgIO/icon.png, src/DwgIO.Cli/icon.png).
Tests that need real drawings are reported as skipped, with a reason, when no drawing is available, instead of
passing without running.
THIRD-PARTY-NOTICES.md carries the Autodesk trademark notice and is included in the NuGet packages.
README and changelog describe the file format in the project's own words.
CLI help lists the preview command; error messages no longer cite external documents.
Fixture tests look for drawings in DWGIO_TEST_FILES and in a test_files folder (each folder and one level of
subfolders) and run on .NET 8 as well as .NET 10.
Packages include Source Link.
Fixed
Crafted files can no longer cause huge allocations, integer overflow in bounds checks or crashes with exceptions
other than DwgException: declared section sizes are checked against their page count, page size and the largest
array before allocation; each page is limited to the section's page size; section buffers and decompressed pages of
one document together are limited to 8 GiB; section-map entry and page counts are checked against the map before lists are sized; preview
image ranges, page payload sizes and SummaryInfo dates are range-checked; pages past the section end are no longer
decompressed; page checksums are computed only when VerifyChecksums is set.
The decompressor no longer reads a stale buffer when the output grows during an overlapping back-reference, and it
presizes its output only up to 1 MiB instead of trusting the size declared in the file.
DwgDocument.Open and ReadSection report malformed data as DwgException (with the original exception as InnerException), and the best-effort section readers record such failures in Diagnostics.
Known limitations
Some entity bodies are not decoded yet; they are recorded in DwgDocument.Diagnostics.