跳转到主要内容

一个用于创建/操作DXF图纸的Python包。

项目描述

ezdxf

摘要

此Python包旨在方便创建和操作DXF文档,具有跨各种DXF版本的兼容性。它使用户能够无缝地加载和编辑DXF文件,同时保留所有内容,除了注释。

文档中遇到的任何不熟悉的DXF标签都将被优雅地忽略但保留以供将来修改。此功能使处理包含第三方应用程序数据的DXF文档成为可能,而不会丢失任何有价值的信息。

快速信息

  • ezdxf是一个Python包,用于创建新的DXF文件和读取/修改/写入现有DXF文档
  • MIT许可证
  • 目标受众是程序员
  • 至少需要Python 3.9
  • 与操作系统无关
  • 与CPython和pypy3进行了测试
  • 具有类型注解并通过mypy --ignore-missing-imports -p ezdxf成功
  • 核心包的附加要求,不包括附加组件
  • 支持读取/写入/创建以下DXF版本:R12、R2000、R2004、R2007、R2010、R2013和R2018
  • 增加对DXF版本R13/R14的只读支持(升级到R2000)
  • 增加对R12以下较老DXF版本的只读支持(升级到R12)
  • 支持ASCII DXF和二进制DXF的读取/写入
  • 保留第三方DXF内容
  • 二进制轮文件包含可选的CPython C扩展,可在PyPI上获取,适用于Windows、Linux和macOS:PyPI
  • 命令行脚本ezdxf用于显示、转换和检查DXF文件

包含的扩展

这些附加包在基本设置期间不会自动安装,有关设置和依赖关系的更多信息,请访问文档

  • drawing扩展将DXF数据发送到渲染后端,实现了matplotlib接口,可导出图像为PNG、PDF或SVG格式,以及PyQt5
  • r12writer扩展可以直接快速地将基本DXF实体写入DXF R12文件或流
  • iterdxf扩展可以遍历大DXF文件(> 5GB)的模型空间中的DXF实体,这些文件不适合内存
  • Importer扩展可以导入其他DXF文档中的实体、块和表条目
  • dxf2code扩展可以生成从DXF文档加载的DXF结构的Python代码,作为参数化DXF实体创建的起点
  • acadctb扩展用于读取/写入绘图样式文件(CTB/STB)
  • pycsg扩展用于基本构造实体几何(CSG)建模
  • MTextExplode扩展可以将MTEXT实体分解为单行TEXT实体
  • text2path扩展可以将文本转换为轮廓路径
  • geo扩展支持__geo_interface__
  • meshex用于与其他工具(如STL、OFF或OBJ文件)交换网格
  • openscad扩展,是OpenSCAD的接口
  • odafc扩展,是ODA文件转换器的接口,用于读取和写入DWG文件
  • hpgl2扩展用于将HPGL/2绘图文件转换为DXF、SVG和PDF

简单示例

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")

r12writer示例,它写入一个简单的没有内存结构的DXF R12文件

from random import random
from ezdxf.addons import r12writer

MAX_X_COORD = 1000
MAX_Y_COORD = 1000

with r12writer("many_circles.dxf") as doc:
    for _ in range(100000):
        doc.add_circle((MAX_X_COORD*random(), MAX_Y_COORD*random()), radius=2)

r12writer只支持DXF R12绘图的ENTITIES部分,没有HEADER、TABLES或BLOCKS部分,除了写入FIXED-TABLES之外,还有一些额外的预定义文本样式和线型可用。

安装

基本安装通过pip,包括来自PyPI的二进制轮文件中的可选C扩展

pip install ezdxf

完整安装包含所有依赖项(matplotlib、PySide6),用于使用绘图扩展

pip install ezdxf[draw]

有关设置和依赖关系的更多信息,请访问文档

命令行

如果你的shell找不到ezdxf脚本,请使用python -m ezdxf ...

获取子命令的帮助

ezdxf <cmd> -h

在图形窗口中预览DXF文件

ezdxf view <file.dxf>

将DXF文件的工作空间导出为PNG|SVG|PDF

ezdxf draw -o file.<png|svg|pdf> <file.dxf>

打印DXF文件的基本信息

ezdxf info <file.dxf>

显示DXF文件的详细信息和结构

ezdxf browse <file.dxf>

审核DXF文件

ezdxf audit <file.dxf>

预览和转换HPGL/2绘图文件

ezdxf hpgl <file.plt>

网站

https://ezdxf.mozman.at/

文档

开发版本的文档可在https://ezdxf.mozman.at/docs找到

最新版本的文档可在https://ezdxf.readthedocs.io/找到

知识图谱

知识图谱包含比文档更多的信息,并由logseq管理。源数据包含在存储库的ezdxf/notes文件夹中。网站上还有HTML导出,它定期更新。

贡献

《ezdxf》的源代码可以在 GitHub 上找到,请将您的 pull requests 发送到 master 分支。

https://github.com/mozman/ezdxf.git

反馈

GitHub Discussions 中提问和反馈。

https://github.com/mozman/ezdxf/discussions

Stack Overflow 中提问。

Stack Overflow 上提问并使用标签 dxfezdxf

问题追踪器在 GitHub

http://github.com/mozman/ezdxf/issues

发行说明

发行说明包含在知识图谱中。

变更日志

变更日志包含在知识图谱中。

联系

请始终在 论坛Stack Overflow 上提问,以便其他用户也能看到答案。

ezdxf@mozman.at

非常感谢您的反馈。

Manfred

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

ezdxf-1.3.3.zip (2.2 MB 查看哈希值)

上传时间

构建分发

ezdxf-1.3.3-py3-none-any.whl (1.3 MB 查看哈希值)

上传时间 Python 3

ezdxf-1.3.3-cp312-cp312-win_amd64.whl (2.8 MB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

ezdxf-1.3.3-cp312-cp312-musllinux_1_1_x86_64.whl (5.6 MB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.1+ x86-64

ezdxf-1.3.3-cp312-cp312-musllinux_1_1_aarch64.whl (5.6 MB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.1+ ARM64

ezdxf-1.3.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.6 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

ezdxf-1.3.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.6 MB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ ARM64

ezdxf-1.3.3-cp312-cp312-macosx_11_0_arm64.whl (2.9 MB 查看哈希值)

上传时间: CPython 3.12 macOS 11.0+ ARM64

ezdxf-1.3.3-cp312-cp312-macosx_10_9_x86_64.whl (2.9 MB 查看哈希值)

上传时间: CPython 3.12 macOS 10.9+ x86-64

ezdxf-1.3.3-cp312-cp312-macosx_10_9_universal2.whl (3.4 MB 查看哈希值)

上传时间: CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64)

ezdxf-1.3.3-cp311-cp311-win_amd64.whl (2.8 MB 查看哈希值)

上传时间: CPython 3.11 Windows x86-64

ezdxf-1.3.3-cp311-cp311-musllinux_1_1_x86_64.whl (5.6 MB 查看哈希值)

上传时间: CPython 3.11 musllinux: musl 1.1+ x86-64

ezdxf-1.3.3-cp311-cp311-musllinux_1_1_aarch64.whl (5.6 MB 查看哈希值)

上传时间: CPython 3.11 musllinux: musl 1.1+ ARM64

ezdxf-1.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.6 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ x86-64

ezdxf-1.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.6 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ARM64

ezdxf-1.3.3-cp311-cp311-macosx_11_0_arm64.whl (2.9 MB 查看哈希值)

上传时间: CPython 3.11 macOS 11.0+ ARM64

ezdxf-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl (2.9 MB 查看哈希值)

上传时间: CPython 3.11 macOS 10.9+ x86-64

ezdxf-1.3.3-cp311-cp311-macosx_10_9_universal2.whl (3.4 MB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

ezdxf-1.3.3-cp310-cp310-win_amd64.whl (2.8 MB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

ezdxf-1.3.3-cp310-cp310-musllinux_1_1_x86_64.whl (4.4 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.1+ x86-64

ezdxf-1.3.3-cp310-cp310-musllinux_1_1_aarch64.whl (5.4 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.1+ ARM64

ezdxf-1.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

ezdxf-1.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (5.3 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

ezdxf-1.3.3-cp310-cp310-macosx_11_0_arm64.whl (2.9 MB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

ezdxf-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl (2.9 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

ezdxf-1.3.3-cp310-cp310-macosx_10_9_universal2.whl (3.4 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

ezdxf-1.3.3-cp39-cp39-win_amd64.whl (1.8 MB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

ezdxf-1.3.3-cp39-cp39-musllinux_1_1_x86_64.whl (4.4 MB 查看哈希值)

上传时间: CPython 3.9 musllinux: musl 1.1+ x86-64

ezdxf-1.3.3-cp39-cp39-musllinux_1_1_aarch64.whl (4.4 MB 查看哈希值)

上传时间: CPython 3.9 musllinux: musl 1.1+ ARM64

ezdxf-1.3.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ ARM64

ezdxf-1.3.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.2 MB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.12+ x86-64 manylinux: glibc 2.5+ x86-64

ezdxf-1.3.3-cp39-cp39-macosx_11_0_arm64.whl (2.9 MB 查看哈希值)

上传时间: CPython 3.9 macOS 11.0+ ARM64

ezdxf-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl (1.9 MB 查看哈希值)

上传时间: CPython 3.9 macOS 10.9+ x86-64

ezdxf-1.3.3-cp39-cp39-macosx_10_9_universal2.whl (3.4 MB 查看哈希值)

上传时间: CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面