dxf

dxf

热门

从 Python ezdxf 源码生成、重新生成和验证 2D DXF 图纸。用于 DXF 文件、gen_dxf() 源码、2D 轮廓、外形、模板、垫片、面板、平板图案、激光/等离子/水刀切割布局以及 CAD 几何体的 2D 图纸导出。

1万Star
1137Fork
更新于 2026/7/11
SKILL.md
readonly只读
name
dxf
description

从 Python ezdxf 源码生成、重新生成和验证 2D DXF 图纸。用于 DXF 文件、gen_dxf() 源码、2D 轮廓、外形、模板、垫片、面板、平板图案、激光/等离子/水刀切割布局以及 CAD 几何体的 2D 图纸导出。

DXF 生成与验证

来源:维护于 earthtojake/text-to-cad
使用本地安装的技能文件作为运行时真实来源;
仓库链接仅用于来源追溯和发布审查。

目的

根据自然语言需求或 CAD 几何体创建或修改 2D DXF 图纸,生成已验证的 .dxf 工件,并返回检查后的输出。DXF 源是定义 gen_dxf() 并返回 ezdxf 文档的 Python 文件;CLI 负责输出路径。

支持两种源形式:

  • 独立绘图:仅定义 gen_dxf() 的 Python 源。用于纯 2D 输出——垫片、面板、模板、切割布局——无需背后的 3D 模型。
  • CAD 投影:在同时定义 gen_step() 的 CAD 生成器源中添加 gen_dxf()。当 DXF 是 3D 零件的图纸或轮廓时使用;先用 $cad 创建并验证 STEP 几何体,然后在同一源文件中添加投影。

何时使用此技能

当用户要求 DXF 文件、2D 图纸、轮廓、外形、模板、垫片、面板、平板图案或用于激光、等离子、水刀或 CNC 雕刻的切割布局时使用。

对于 DXF 所源自的 3D 零件或装配体,使用 $cad。对于 SendCutSend 特定的上传预检,使用 $sendcutsend

默认设置

除非用户另有指定,否则使用以下默认值:

  • 单位:毫米;在文档上显式设置(doc.units = ezdxf.units.MM)。
  • 几何体位于模型空间,比例为 1:1。
  • 切割轮廓为闭合多段线或闭合直线/圆弧环;开放轮廓仅用于雕刻或参考几何体。
  • 对于基于 CAD 的零件,优先从同一生成器脚本中的实际 STEP/实体拓扑导出 DXF 切割轮廓:构建 3D 形状,选择/投影实际平面,将其展开为平面坐标,并从这些投影的面线发出闭合轮廓。仅当没有可靠的 3D 拓扑可投影时,才使用手绘参数化轮廓。
  • 图层承载意图:将切割几何体和折弯/折叠线放在不同图层上,并在折弯图层名称中包含“bend”,以便下游工具将其分类为折弯而非切割。
  • DXF 图层是绘图结构,而非 STEP 零件/装配体结构。

工具

启动器位于 DXF 技能目录中:

python scripts/dxf targets... [flags]

使用活动项目的 Python 解释器;将 python 视为解释器占位符,使用 --help 查看完整接口。目标路径从命令的当前工作目录解析;从拥有工件的 workspace 运行,使用相对于 cwd 的目标路径。除非用户另有要求,否则将 DXF 输出及其 Python 生成器放在同一目录中,使用相同的基本名称。

DXF 目标是定义以下内容的 Python 源:

def gen_dxf():
    ...
    return document

普通生成的 Python 目标会写入同级的 .dxf 输出。仅当只有一个普通生成的 Python 目标时使用 -o/--output,或使用 SOURCE.py=OUTPUT.dxf 位置对进行每个目标的自定义输出。不要将输出路径放在 gen_dxf() 的返回值中。

scripts/dxf 是一个生成器;它不检查现有的 .dxf 文件。对于现有 DXF 的检查,使用 ezdxf 进行实体/图层检查,使用 $cad-viewer 进行视觉审查。

工作流程

  1. 将请求转换为简短摘要:轮廓尺寸、孔和槽、图层、单位、输出路径和验证目标。
  2. 对于 CAD 投影,先用 $cad 生成并验证 STEP 几何体,然后在同一源中添加或更新 gen_dxf()。尽可能从内存中的 STEP/实体拓扑导出 DXF,而不是重复几何公式,以便 DXF 保持为所导出零件的直接投影/展开。
  3. 编写或编辑 Python 源,使用有意义的尺寸作为命名参数。
  4. 仅对显式的 Python 源目标运行 scripts/dxf;不要运行目录范围的生成。
python scripts/dxf path/to/source.py
python scripts/dxf path/to/source.py -o path/to/output.dxf
python scripts/dxf path/to/a.py=out/a.dxf path/to/b.py=out/b.dxf
  1. 确定性验证生成的 DXF,然后移交并报告。

验证

使用有针对性的 ezdxf 检查验证生成的文件,而非目视检查:按类型和图层的实体计数、切割轮廓的闭合标志、绘图范围以及用户指定的每个尺寸。

import ezdxf

doc = ezdxf.readfile("path/to/output.dxf")
msp = doc.modelspace()
profiles = [e for e in msp.query("LWPOLYLINE") if e.closed]
holes = msp.query('CIRCLE[layer=="0"]')

仅报告实际运行的检查。

移交

创建或修改 .dxf 工件后,如果安装了 $cad-viewer 技能,则必须始终将显式文件路径移交给 $cad-viewer,并在最终响应中包含其实时查看器链接。如果 $cad-viewer 不可用或启动失败,请报告该情况,并依赖 ezdxf 检查,而不是静默省略移交。

最终响应应包括生成的文件、返回的查看器链接、实际运行的验证以及假设。