
LibreDWG
用于管理 AutoCAD DWG 文件的开源 C 库
通过开源 C++ CAD API 生成、编辑、读取、操作和转换 AutoCAD DWG 模型为 SVG 文件。
什么是 LibreDWG?
LibreDWG 是一个便捷的免费 C 语言库,在处理 AutoCAD DWG 图纸时非常有用。DWG 是一种流行的文件格式,由 AutoDesk 公司于 20 世纪 70 年代为当时刚刚兴起的 CAD 应用程序创建。尽管 DWG 是一种专有格式,但它仍然是许多承包商的首选。该库用户友好,旨在提供 API,帮助软件开发人员构建可处理 DWG 文件的应用程序。
该库提供许多处理 AutoCAD DWG 文件的实用功能。您可以打开和查看 DWG 图纸、创建新的 DWG 文件、将其转换为各种格式、将其更改为 DXF 和 JSON、将 DWG 转换为 SVG 和 Postscript、使用 dwggrep 查找文本、使用 dwglayer 显示图层等等。
在库中,软件开发人员可以打开或关闭 DWG 写入支持。此功能最初处于关闭状态,但激活后,您可以使用它以 DWG 格式进行写入。将大多数 DWG 文件转换为 r2000 格式通常很顺利。DWG 阅读器可以处理多种文件格式,包括 JSON、DXF、DXFB、GeoJSON、YAML、XML/OGR、GPX、SVG 和 PS。
LibreDWG 入门
您需要安装基本的开发工具(C99 编译器,例如 gcc/clang、make、autoconf、automake 和 libtool)。然后使用以下命令创建库的克隆。
使用以下命令克隆库
git clone git://git.sv.gnu.org/libredwg.git
现在将目录更改为由 git 创建的 libredwg 文件夹( cd libredwg )并在终端中发出以下命令
将目录更改为 libredwg 文件夹
$ sh autogen.sh
$ ./configure --enable-trace # (this will enable debugging messages)
$ make
$ sudo make install
$ make check
通过 C 库创建 AutoCAD DWG
免费的 LibreDWG C 库使软件开发人员能够在自己的 C 应用程序中创建新的 AutoCAD DWG 文件。文件创建后,您可以在 DWG 图形中插入各种类型的实体,例如表格、形状、图案填充、相机、光源、线、网格、多行文字、二维折线、三维折线、文本、表格、描线等等。该库还支持设置实体的对齐方式,并轻松访问和更新实体的属性。DWG 编写器支持各种输入格式,例如 DXF、DXFB 和 JSON。
通过 C 库读取 AutoCAD DWG
开源 LibreDWG 库已完全支持在 .NET 应用程序中以编程方式访问和读取 AutoCAD DWG 文件,只需几行 C 代码即可。DWG 读取器支持多种输出格式,例如 JSON、DXF、DXFB、GeoJSON。此外,还支持 YAML、XML/OGR、GPX、SVG 和 PS 文件格式。
如何通过 C 库读取 AutoCAD DWG?
int error;
Dwg_Data dwg;
error = dwg_read_file(filename, &dwg);
if (!error)
{
model_xmin = dwg_model_x_min(&dwg);
model_ymin = dwg_model_y_min(&dwg);
double dx = (dwg_model_x_max(&dwg) - dwg_model_x_min(&dwg));
double dy = (dwg_model_y_max(&dwg) - dwg_model_y_min(&dwg));
double scale_x = dx / (dwg_page_x_max(&dwg) - dwg_page_x_min(&dwg));
double scale_y = dy / (dwg_page_y_max(&dwg) - dwg_page_y_min(&dwg));
//...
}
dwg_free(&dwg);
通过 C 库将 DWG 文件转换为 SVG
SVG 是二维矢量图形的 W3C 标准,非常流行。开源 LibreDWG 库使软件开发人员能够使用 C 命令将 AutoCAD DWG 图形转换为 SVG 文件格式。要转换 SVG(可缩放矢量图形)文件,您需要打开 DWG 文件并输出 SVG 文件。请记住,该库将处理二维数据,并将处理来自 DWG 的 3D 内容,因为 SVG 仅支持二维图像。