作为一名CAD软件工作者,最近碰到dwg读取问题,搜索了一番dwg格式的数据读写以及转换工具,通过查找比对,主要研究了两个开源库,分别是libdxfrw和libredwg。
dwg格式的数据是CAD内部工作格式,以二进制方式存储,格式不开源。格式设计规范参照dwg格式设计规范:(/Caoyang_He/article/details/80343945)
1、libdxfrw:是一个开源的c++库,可以读写ascii和二进制格式的DXF文件。支持R14 到V版本的dwg读取。
(github地址:/codelibs/libdxfrw)
2、libredwg:是纯C写的开源库,支持最新的dwg格式的读写。这个程序是GNU项目的一部分,在GNU的庇护下发布。
(github地址:/LibreDWG/libredwg)
优缺点对比分析:
libdxfrw出来较早,是比较成熟的dwg格式的解析库,bug少,windows系统下,下载下来直接用VS版本及以上的IDE打开,目前在github上几乎不怎么更新了。libredwg目前一直在持续更新中,但bug多,windows PC上,得先采用交叉编译的方式编译成想要的执行代码。不过libredwg因为是纯C写的,解析速度比libdxfrw快很多。
此外,还有一个收费的Delphi库,可以提供dxf、dwg的读写SDK:
/products/cad-vcl-enterprise/
dxf是开源格式,附上dxf的格式规范文档:
/ACD//CHS/filesDXF/WSfacf1429558a55de185c428100849a0ab7-5df0.htm