dxflib是开源的读写dxf文件的库,在QCAD上可以直接下载(QCAD - Downloads)。dxf作为一种通用的绘图文件格式,包含的信息量非常大,要去理解文件的内容也比较受苦,详细的解释在论坛里可以找到(dxf 格式详解_dxf是什么文件格式_runing9的博客-CSDN博客)
DXF中通常R12以上通常有6个常用段如:
HEADER段
TABLES段
CLASSES段
BLOCKS段
OBJECT段
ENTITIES段
如HEADER段中储存系统变量如图形 左上角X坐标值 Y坐标值 ......系统默认字体样式 正交 .... 这些信息在自写DXF格式中可以忽略
TABLES段
此段中包含 线条样式 图层信息 等
CLASSES段
这段没有一丁点图形信息,
BLOCKS段
所有自定义图块和标注块都在此段中储存
ENTITIES段中
包含圆
*
0 circle8:代表 图层归属 62代表颜色 10 圆心X坐标值 20 圆心Y坐标值 30 默认位0此图形非3D为0 40代表 半径
file_ << "\n0\nLINE\n8\n0\n62\n"<<color <<"\n10\n" << x << "\n20\n" << y <<"\n30\n0.0\n11\n" << x << "\n21\n" << y << "\n31\n0.0";
区别在于11 是自定义直线终点X坐标 21 终点Y坐标
当LINE的30\n0 以后为无是LINE替换为POINT 时就是点的组吗格式
如需要其他样式时:可在圆 直线 ARC中的组吗\n8\n0\n 6\n 线条样式名 此线条样式名和 TABLES段中的线条样式名一致,不一致则默认线条样式
所有的块如 线性标注 角度标注 直径 标注半径标注 快定义在ENTITIES段为是块定义。示例图
但是dxflib并不好用,这是自写DXF文件并一键插入cad中