用于创建 AutoCAD DXF 的开源 Python 库

用于创建、读取和操作 AutoCAD DXF 文件的免费 Python CAD 库。开发人员可以读取和写入 ASCII DXF 和二进制 DXF 模型。

什么是 Ezdxf 库?

借助强大的开源 Python AutoCAD DXF 库 Ezdxf,软件开发人员可以在自己的 Python 程序中使用 AutoCAD DXF 文件。AutoCAD 使用广泛使用的 DXF(图形交换文件)文件类型与其他 CAD 程序交换数据。该库支持 DXF 格式的大部分功能,同时通过向程序员隐藏复杂的 DXF 细节,简化了开发人员的工作。

第三方程序可以使用 Ezdxf 库嵌入特定于应用程序的数据。生成 DXF 文件、编辑 DXF、编写现有 DXF 文档、使用 CPython 和 Pypy3 进行测试、保留第三方 DXF 内容、使用可选的 CPython C 扩展以及许多其他功能对于管理 DXF 文档至关重要。其他附加组件也可用,但必须单独加载,因为它们不会在基本设置期间自动安装。

开源 Ezdxf 库支持多个 DXF 版本,包括 R12、R2000、R2004、R2007、R2010、R2013 和 R2018。此外,它还支持 R12 之前的 DXF 版本以及 R13 和 R14 版本的 DXF 只读模式。Ezdxf 库的使用受 MIT 许可证的约束。

Previous Next

Ezdxf 入门

安装 Ezdxf 软件包最简单的方法是使用 pip。它包含 PyPI 中可选的 C 语言扩展,以二进制文件的形式提供。请使用以下命令顺利安装。

通过 pip 安装 Ezdxf

pip install ezdxf 

您可以从 Github 存储库下载已编译的共享库。

通过 Python 3D 库使用多边形

多边形是具有直边的二维形状。多边形建模是一种通过使用多边形网格表示或近似其表面来建模对象的方法。开源 Python 库 Ezdxf 使软件开发人员只需几行 Python 代码即可为每个堆栈点创建多边形。这对于固件无法校正小孔尺寸的 3D 打印机非常有用。

通过 Python 创建 AutoCAD DXF 文件

开源 Python Ezdxf 库全面支持在 Python 应用程序中读取和写入 AutoCAD DXF 文档。该库创建新的 DXF 文档时,仅包含必要的资源,例如线型、文本样式等。此外,还可以打开现有的 DXF 文件并轻松修改其内容。

如何通过 Python 库创建新的 DXF 绘图?

import ezdxf
from ezdxf import colors
from ezdxf.enums import TextEntityAlignment

# Create a new DXF document.
doc = ezdxf.new(dxfversion="R2010")

# Create new table entries (layers, linetypes, text styles, ...).
doc.layers.add("TEXTLAYER", color=colors.RED)

# DXF entities (LINE, TEXT, ...) reside in a layout (modelspace, 
# paperspace layout or block definition).  
msp = doc.modelspace()

# Add entities to a layout by factory methods: layout.add_...() 
msp.add_line((0, 0), (10, 0), dxfattribs={"color": colors.YELLOW})
msp.add_text(
    "Test", 
    dxfattribs={
        "layer": "TEXTLAYER"
    }).set_placement((0, 0.2), align=TextEntityAlignment.CENTER)

# Save the DXF document.
doc.saveas("test.dxf")
 

通过 Python 打开并读取 AutoCAD DXF 图形

开源 Python Ezdxf 库使软件开发人员只需几行 Python 代码即可打开、加载现有 DXF 文档并从中获取数据。请记住,它非常适合来自 AutoCAD 或 BricsCAD 等可靠来源的 DXF 图形,并且可以加载存在轻微或严重缺陷的 DXF 文件。您可以轻松访问和迭代所有 DXF 实体,并轻松访问现有实体的属性。

如何通过 Python 库加载 DXF 文件?

import sys
import ezdxf

try:
    doc = ezdxf.readfile("your_dxf_file.dxf")
except IOError:
    print(f"Not a DXF file or a generic I/O error.")
    sys.exit(1)
except ezdxf.DXFStructureError:
    print(f"Invalid or corrupted DXF file.")
    sys.exit(2)

如何使用 Python 处理 DXF 绘图中的文本

Ezdxf Python 库全面支持处理 DXF 文档中的文本。该库包含各种文本处理功能,例如添加简单的单行文本实体、基本文本对齐方式(例如顶部、中间、底部、基线、居中、右对齐)、适合文本、标准文本样式和线型、添加新文本样式、使用 3D 文本、使用标准字体等等。

如何通过 Python API 添加简单的单行文本?

import ezdxf
from ezdxf.enums import TextEntityAlignment

# The TEXT entity is a DXF primitive and is supported in all DXF versions.
# The argument setup=True creates standard linetypes and text styles in the
# new DXF document.
doc = ezdxf.new("R12", setup=True)
msp = doc.modelspace()

# Use method set_placement() to define the TEXT alignment, because the
# relations between the DXF attributes 'halign', 'valign', 'insert' and
# 'align_point' are tricky.
msp.add_text("A Simple Text").set_placement(
    (2, 3),
    align=TextEntityAlignment.MIDDLE_RIGHT
)

# Using a predefined text style:
msp.add_text(
    "Text Style Example: Liberation Serif",
    height=0.35,
    dxfattribs={"style": "LiberationSerif"}
).set_placement((2, 6), align=TextEntityAlignment.LEFT)

doc.saveas("simple_text.dxf")
 
 中国人