Skip to content

ixmilia/dxf-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e7bad6f · Feb 15, 2025
Feb 23, 2024
Oct 13, 2023
Dec 10, 2024
Dec 10, 2024
Dec 10, 2024
Mar 1, 2024
Feb 15, 2025
Aug 8, 2019
Jan 14, 2020
Nov 8, 2024
Nov 9, 2024
Dec 10, 2024
Apr 17, 2020
Dec 10, 2024
Jul 24, 2019
Jul 24, 2019
Nov 9, 2024

Repository files navigation

dxf-rs

A rust crate for reading and writing DXF CAD files.

Usage

Put this in your Cargo.toml:

[dependencies]
dxf = "0.5.0"

Or if you want serde support, enable the serialize feature:

[dependencies]
dxf = { version = "0.5.0", features = ["serialize"] }

Note that serde support is intended to aid in debugging and since the serialized format is heavily dependent on the layout of the structures, it may change at any time.

Documentation

See the documentation here on docs.rs.

Integration tests

There are some integration/interop tests under src/misc_tests/integration.rs. They currently only run on Windows when the ODA File Converter tool has been installed from the Open Design Alliance. The tool can be found here.

DXF Reference

Since I don't want to fall afoul of Autodesk's lawyers, this repo can't include the actual DXF documentation. It can, however contain links to the official documents that I've been able to scrape together. For most scenarios the 2014 documentation should suffice, but all other versions are included here for backwards compatibility and reference between versions.

R10 (non-Autodesk source)

R11 (differences between R10 and R11)

R12 (non-Autodesk source)

R13 (self-extracting 16-bit executable)

R14

2000

2002

2004

2005

2006

2007 (Autodesk's link erroneously points to the R2008 documentation)

2008

2009

2010

2011

2012

2013

2014

2018

Many of these links were compiled from the archive.org May 9, 2013 snapshot of http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=12272454&linkID=10809853

The R2018 spec can be downloaded for offline use via the command:

wget -r -k -L -e robots=off http://help.autodesk.com/cloudhelp/2018/ENU/AutoCAD-DXF/files/GUID-235B22E0-A567-4CF6-92D3-38A2306D73F3.htm

and a simple launch page can be added via:

echo "<html><meta http-equiv='refresh' content='0; url=files/GUID-235B22E0-A567-4CF6-92D3-38A2306D73F3.htm' /></html>" > help.autodesk.com/cloudhelp/2018/ENU/AutoCAD-DXF/index.html