使用Ezdxf,我们可以轻松地读取、编辑现有的DXF文件,甚至从头开始创建新的文件。
有了Ezdxf,我们不必担心DXF格式背后的复杂技术细节。
更关键一点,有了它,我们可以在云端,集成数据库和LLM技术,生成各种图纸。

Ezdxf需要Python 3.9以上版本。
Ezdxf是一个完全由Python编写的库,它还提供了Cython实现的数学类作为可选功能。
为了正常使用,它除了依赖Python的标准库外,还需要安装几个额外的库:pyparsing、numpy、fontTools和typing_extensions。
此外,如果你想要执行单元测试和集成测试,那么还需要安装Pytest这个测试框架。
支持的DXF版本版本
AutoCAD版本
AC1009
AutoCAD R12
AC1012
AutoCAD R13 -> R2000
AC1014
AutoCAD R14 -> R2000
AC1015
AutoCAD R2000
AC1018
AutoCAD R2004
AC1021
AutoCAD R2007
AC1024
AutoCAD R2010
AC1027
AutoCAD R2013
AC1032
AutoCAD R2018(后面格式没有变化)
有用的扩展插件drawing 附加组件是一个转换层,用于向渲染后端发送数据,matplotlib接口,可以将图像导出为PNG,PDF或SVG,并实现PyQt 5。r12writer 插件,用于将基本的XML实体直接快速写入到XML R12文件或流中iterdxf 插件,用于从无法放入内存的巨大文件(> 5GB)的模型空间中删除实体Importer 插件,用于从另一个XML文档导入实体、块和表条目dxf2code 插件,用于为从XML文档加载的XML结构生成Python代码,作为参数化XML实体创建的起点acadctb 读取/写入打印样式文件的附加组件(CTB/STB)pycsg 用于基本构造实体几何(CSG)建模的附加组件MTextExplode 用于将MTEXT图元分解为单行TEXT图元的附加组件meshex 用于与其他工具交换网格,如STL、OFF或OBJ文件openscad 插件,OpenSCAD的接口odafc ODA文件转换器的接口,用于读取和写入DWG文件入门代码绘制一条样条切线。
样条曲线的切线是曲线的一阶导数的方向。
# 导入ezdxf库import ezdxffrom ezdxf.math import Vec3, estimate_tangentsimport numpy as npfit_points = Vec3.list( [ (0, 0, 0), (1000, 600, 0), (1500, 1200, 0), (500, 1250, 0), (0, 0, 0), ])spline = msp.add_spline(fit_points)# 将曲线切线绘制为红线:ct = spline.construction_tool()for t in np.linspace(0, ct.max_t, 30): point, derivative = ct.derivative(t, 1) msp.add_line(point, point + derivative.normalize(200), dxfattribs={"color": 1})doc.saveas("spline.dxf")
效果如下: