关于 engineering-drawing
engineering-drawing 是一项脚本技能,可从 CAD 零件几何生成工程图,适合需要随模型更新尺寸的 CAD 建模者,输出为 PDF。
主要功能
- 01投影视图与等轴测视图
- 02基于几何的尺寸和孔标注
- 03ISO 图框与标题栏
- 04可重复生成的 PDF
适用场景
- 01制作供车间使用的零件图
- 02模型更改后更新视图和尺寸
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ earthtojake/ text-to-cad --skill engineering-drawing安装后在 Claude Code 中输入/engineering-drawing确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEagents/openai.yamlreferences/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
首次运行时会下载该安装环境;之后的运行会复用它。
工作流
-
获取零件。
cadgen.read_step(Path(__file__).parent / "../STEP/part.step")会读取@step模型生成的工件(先运行python <model>.py);实时的 build123d 形状也可以直接使用。图纸用于记录几何形状,不负责构建几何形状。 -
在模型旁边编写
<name>_drawing.py,使用 模板。从模型模块导入尺寸标注所引用的模型数据(孔距、总体尺寸、壁厚),而不是重新输入,这样移动特征时,其尺寸标注也会随之移动。 -
使用
sheet.three_views(part, iso=True)放置视图,它会返回四个视图:按第三角投影法排列的俯视图、主视图和右视图,并为两行尺寸标注留出空间;空白角落还会放置一个等轴测图。sheet.three_views(part)返回三个视图。仅在自定义布局时使用sheet.view(part, name, at=(x, y))(以图纸左下角为原点,单位为毫米;A3 为 420 × 297,A4 为 297 × 210)。 -
按制造所需标注尺寸,使用模型坐标:各视图的总体尺寸(
view.overall())、特征位置和尺寸(view.dim,设计有要求时使用tol=或fit=)、孔的标注(view.hole:通孔、深度、沉孔、沉头孔、螺纹),以及带引线的注释(view.note)。不要设置text,这样尺寸会自动测量;仅在模型未定义尺寸时才提供数值。也不要设置offset,尺寸标注会放在视图外的下一个空行;仅在需要特意放置尺寸标注时才传入该参数,并注意它是相对于尺寸标注自身的测量点计算,而不是相对于视图边缘。注释应少而简短;若注释宽于图纸的注释栏,就会被拒绝;notes=接受的是列表(notes="BREAK EDGES"是由 11 个字符组成的序列,因此也会被拒绝)。 -
运行
python <name>_drawing.py。它会输出生成的 PDF 路径,以及绘图时发现的所有问题——先查看这些信息:- “测量到了空白纸张”:尺寸标注的模型测量点没有落在视图几何图形上。几乎总是因为零件以角点为基准构建,而脚本假定零件以中心为基准。检查零件的包围盒。
- “注释重叠”:两个标注打印在一起,通常是某个视图最外侧的尺寸标注与其上方视图的标签重叠。增大
three_views(gap=...)的间距,或使用offset=放置其中一个。文本按渲染时逐字形测量,因此检测的是实际墨迹而不是标记语言:只要数值彼此不重叠,一串带公差的尺寸标注就不会触发警告。
第 3 步和第 5 步可独立完成:即使图纸上还没有任何尺寸标注,只要有视图,它仍是一张图纸,也可以生成 PDF。
无人值守运行时,将
MPLCONFIGDIR设置为可写目录,以免 matplotlib 的字体缓存发出警告。 -
阅读 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。