mcpField
E
engineering-drawing

engineering-drawing

github.com/earthtojake文档处理23.9k2.4k 次安装今天更新
代码仓库

关于 engineering-drawing

engineering-drawing 是一项脚本技能,可从 CAD 零件几何生成工程图,适合需要随模型更新尺寸的 CAD 建模者,输出为 PDF。

主要功能

  1. 01投影视图与等轴测视图
  2. 02基于几何的尺寸和孔标注
  3. 03ISO 图框与标题栏
  4. 04可重复生成的 PDF

适用场景

  1. 01制作供车间使用的零件图
  2. 02模型更改后更新视图和尺寸

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/earthtojake/text-to-cad --skill engineering-drawing

安装后在 Claude Code 中输入/engineering-drawing确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
agents/
openai.yaml
references/
sheet-api.md

详细介绍

工程图

来源:维护于 earthtojake/text-to-cad。 将已安装的本地技能文件用作运行时的事实来源。

工程图是从零件派生的文档。cadgen.eng_drawing 根据零件的几何形状投影视图,在该几何形状上的点之间标注尺寸,在其上查找中心标记,并将结果排布在带有图框和标题栏的 ISO 图纸上。修改模型后,重新运行绘图脚本,视图、隐藏线和测量值都会随之更新。图纸上的所有内容都不是手工绘制的,也没有任何数字是手动输入的,除非你选择覆盖某个值。

输出是一个 PDF。 这是车间收到的文件,也是所有操作系统都会打开的文件。不会写入 DXF,也不会配对或链接任何文件,并且没有 CLI:脚本就是接口。$dxf 用于制作切割排版和展开图,它们是刀具路径,而不是文档;两者用途不同。

设置

通过 uv 运行 cadgen,这样本技能的命令就能与 CAD 应用的服务共用同一个安装环境及其预热构建守护进程:

  • 下文的 cadgen 指 uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.26 cadgen
  • 下文的 python 指 uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.26 python

首次运行时会下载该安装环境;之后的运行会复用它。

工作流

  1. 获取零件。cadgen.read_step(Path(__file__).parent / "../STEP/part.step") 会读取 @step 模型生成的工件(先运行 python <model>.py);实时的 build123d 形状也可以直接使用。图纸用于记录几何形状,不负责构建几何形状。

  2. 在模型旁边编写 <name>_drawing.py,使用 模板。从模型模块导入尺寸标注所引用的模型数据(孔距、总体尺寸、壁厚),而不是重新输入,这样移动特征时,其尺寸标注也会随之移动。

  3. 使用 sheet.three_views(part, iso=True) 放置视图,它会返回四个视图:按第三角投影法排列的俯视图、主视图和右视图,并为两行尺寸标注留出空间;空白角落还会放置一个等轴测图。sheet.three_views(part) 返回三个视图。仅在自定义布局时使用 sheet.view(part, name, at=(x, y))(以图纸左下角为原点,单位为毫米;A3 为 420 × 297,A4 为 297 × 210)。

  4. 按制造所需标注尺寸,使用模型坐标:各视图的总体尺寸(view.overall())、特征位置和尺寸(view.dim,设计有要求时使用 tol= 或 fit=)、孔的标注(view.hole:通孔、深度、沉孔、沉头孔、螺纹),以及带引线的注释(view.note)。不要设置 text,这样尺寸会自动测量;仅在模型未定义尺寸时才提供数值。也不要设置 offset,尺寸标注会放在视图外的下一个空行;仅在需要特意放置尺寸标注时才传入该参数,并注意它是相对于尺寸标注自身的测量点计算,而不是相对于视图边缘。注释应少而简短;若注释宽于图纸的注释栏,就会被拒绝;notes= 接受的是列表(notes="BREAK EDGES" 是由 11 个字符组成的序列,因此也会被拒绝)。

  5. 运行 python <name>_drawing.py。它会输出生成的 PDF 路径,以及绘图时发现的所有问题——先查看这些信息:

    • “测量到了空白纸张”:尺寸标注的模型测量点没有落在视图几何图形上。几乎总是因为零件以角点为基准构建,而脚本假定零件以中心为基准。检查零件的包围盒。
    • “注释重叠”:两个标注打印在一起,通常是某个视图最外侧的尺寸标注与其上方视图的标签重叠。增大 three_views(gap=...) 的间距,或使用 offset= 放置其中一个。文本按渲染时逐字形测量,因此检测的是实际墨迹而不是标记语言:只要数值彼此不重叠,一串带公差的尺寸标注就不会触发警告。

    第 3 步和第 5 步可独立完成:即使图纸上还没有任何尺寸标注,只要有视图,它仍是一张图纸,也可以生成 PDF。

    无人值守运行时,将 MPLCONFIGDIR 设置为可写目录,以免 matplotlib 的字体缓存发出警告。

  6. 阅读 PDF,并修复所有重叠问题。检查尺寸标注文字是否压在视图上,特征位于表面后方时是否显示隐藏线,每个孔是否都有中心标记,以及是否有引线穿过零件。对于很小的尺寸(几毫米),数值会放在其自身的延伸线上;改为标注更大的特征。调整 at= 或 offset= 后重新运行。

图纸包含的内容

  • 含义明确的图层:VISIBLE(粗实线)、HIDDEN(虚线)、CENTER (中心标记)、DIM、NOTES、TITLE、SHEET(图框),每层均以各自的线宽打印——从 0.5 mm 到 0.18 mm,确保纸面上粗细分明。一条边只绘制一次:如果内核同时将某条轮廓判定为可见边和隐藏边,则将其放在 VISIBLE 图层上。完全不绘制隐藏的相切过渡——圆角延伸至某个面,或圆柱闭合处的接缝,都不是加工人员能看到的特征;若将它们绘制为虚线,就会误读为并不存在的隐藏边(例如,在孔内沿孔自身轴线画出一条线)。
  • 根据几何形状测量的尺寸,带实心箭头和尺寸界线,并且无论图纸比例如何,尺寸值都表示真实尺寸。
  • 标题栏包含标题、零件编号、材料、作者、比例、单位、投影方式、修订版、SHEET n OF m 和绘图函数名称;其上方列出编号注释(若提供一般公差,则列为注释 1);若提供 revisions=,则在右上角显示修订表。超出单元格长度的文字会缩小字号,并以省略号截断,不会溢出。
  • PDF 字节由内容决定:不会添加创建日期,因此未更改的图纸每次重新生成都会得到相同文件。

出错时会明确报错

脚本会抛出异常,而不是写出错误或缺失的文档:

  • 视图超出图框;比例名称对应的布局已排布并验证可容纳,或会说明没有标准比例可用。
  • 零件参数不符合词汇定义:未知的视图名称、图纸尺寸或投影方式;orientation= 不是 "h"/"v";直径为负数或零;沉孔参数不是 (diameter, depth) 对;tol 不是数字或一对数值;某个孔同时设置了 thru 和深度;notes= 或 revisions= 是未包装的字符串;注释宽度超过图纸宽度;angle() 的两条边共线或长度为零;at= 或 offset= 不是有限值。
  • 缺少渲染器。PDF 就是图纸,因此没有 matplotlib 属于失败,而不是跳过部分内容。渲染失败时不会留下文件。
  • 在导入时,out= 缺失或未指定 .pdf 文件。

交付时应说明的限制

  • 公差仅取自你填写的 tol=、fit= 和 general_tolerance=;数值应来自设计要求或用户,不得臆造。未标注公差的尺寸均为名义尺寸。
  • 视图是带有内核生成的隐藏线的正投影视图;目前尚不支持剖视图、局部详图或辅助视图。应说明视图未展示的内容。
  • 图纸会确保标注避开它所识别的视图,并报告仍与其他标注重叠打印的标注,但不会检查标注是否与线条重叠。请阅读 PDF。

评论

支持 Markdown