The Drawing (DWG) file format developed by Autodesk is a proprietary file format and the native file format for a number of proprietary CAD systems. The Drawing Exchange Format (DXF) is usually a better alternative for free software as it has better support for virtually the same content.
Wikipedia has a good article about the DWG format and it's history.
DWG in FOSS Software
There have been two efforts at making a free software library for reading/writing DWG.
- libdxfrw which is the default DXF/DWG library for LibreCAD (versions 2 & 3)
- LibreDWG which is more advanced but in beta state
Free software known to have some support for DWG
- FreeCAD uses LibreDWG from version 0.19 for Linux builds and Conda Windows builds. Otherwise check the FreeCAD documentation or ask in our forum.
- FreeCAD can be configured to use the non-free ODA converter
- GauchoCAD uses LibreDWG but is currently alpha software with no released packages
- LibreCAD has basic DWG support using the libdxfrw library
- QCAD has a commercial version which adds DWG support using the ODA Drawing SDK
Current status of LibreDWG
Generally LibreDWG is stable for the most common entities and objects for DWG and DXF, plus hundreds more. It can write DWG r2000 already, plus all DXF versions. DWG write support for 2004-2018 is about 80% done. See also LibreDWG discussion list and LibreDWG news
Please test and report bugs.
There is currently focus on gambas bindings (that's the free GNU VBA variant) for GauchoCAD and C++ bindings for SolveSpace. Perl and python bindings are ready but unused.
- Not feature parity with Drawings SDK
- Many basic dynamic blocks and parametrics are done but it's still a work in progress.
- DWG write support for 2004-2018 is about 80% done, still some bugs.
- Creating 3dsolids from scratch, writing acis data is also not yet good enough.
- The objects and fields are all done, but it's undocumented and unstable.
- lisp bindings, like for guile would be nice, but low priority (no one has asked for it)
- Libdxfrw is the DXF / DWG library used by LibreCAD
- Drawing Exchange Format (DXF)
- Getting started with 2D CAD drafting