前言¶
在 DSH 里让 agent 做 CAD 相关任务,常见做法是堆脚本:PDF 能解析、DXF 能导出、SolidWorks 能拉伸,数字看起来都对,交付的零件却在沉孔面、通盲孔或图注漏项上翻车。难点往往不在「能不能画出来」,而在缺少与脚本绑在一起的验收判据——agent 只拿到一半工具链,仍会交出一个体积和质量都正常的错件。
下面介绍维护者 1123443202 发布的 DSH 插件包 dsh-pdf-3d-pipeline(社区分类:工作流)。它把 2D 工程图 PDF 到 SLDPRT/STEP 的步骤、文档契约和八道闸门打包成 bundle,技能名为 pdf-to-3d-pipeline,CLI 为 pdf3d。插件以当前 dsh 进程权限运行;安装前请自行审阅 GitHub 仓库 源码与 MIT 许可证。
这是什么¶
一句话:图纸进,零件出;中间八道关,一道不过就不许交付。
流水线路径为:2D 工程图 PDF → 图注合同(drawing_spec.json)→ DWG/DXF → 分段拉伸 → SLDPRT/STEP → 对图注验收 → 交付。与「只追求模型能打开」的做法相比,这条链在每一阶段末尾输出 GATE <stage>: PASS 或 STOP: ...,并配合 SKILL.md、AGENTS.md、USAGE.md 等,让 dsh、Claude Code、Codex、Cursor 等 agent 在同一套停机表与交付定义下执行。
目录页:SkillHub 插件页。当前 package.json 版本为 0.2.0,平台限定 Windows(os: win32),Node >=18。
核心功能¶
插件包内主要组成如下(摘自 README 说明):
| 组件 | 作用 |
|---|---|
run.ps1 |
唯一流水线入口,8 个阶段,末行闸门结果,退出码 0/1/2 |
SKILL.md / AGENTS.md |
技能入口与 agent 执行契约 |
USAGE.md / QUICKSTART.md |
参数填空与 DEMO-01 示例 |
reference/ |
验收契约 G0~G7、排障与数据格式 |
scripts/ |
各步 Python / PowerShell;diagnostics/ 为验收器自检 |
bin/pdf3d.mjs |
pdf3d CLI(doctor、run verify 等) |
能力边界(资料原文):
- 支持:单视图、板类零件(等厚拉伸、通孔、沉孔、盲孔、腰形槽、圆角轮廓);图纸需标材质与重量。
- 不支持:多视图回转体、加强筋/拔模/变截面、铸件、装配体等——遇到应直说,不硬跑「看着像」的模型。
README 中强调的三类真实返工场景,均由 verify 阶段对照图注合同拦截:图注里有沉孔但 DWG 无对应圆、盲孔被做成通孔、沉孔只在一面做了而体积与反面对调模型一致等。验收器本身还有 gate_selftest.py 变异测试,避免检查器永远报「问题 0 项」。
安装与启用¶
前置条件(Windows):
- AutoCAD 已打开(replay 走 COM)+ SolidWorks(脚本拉起、跑完关闭)。
- Python 3 +
pymupdf;勿用 Windows Store 的python存根(会exit 9009且无输出)。可用scripts/env.ps1自动找解释器,或设置环境变量PDF3D_PYTHON=<path>。
在已取得插件源码的目录下,推荐作为 dsh 插件注册(会先备份 profile 的 package.json):
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -Register
它会:将技能目录 junction 到 ~/.dsh/skills/pdf-to-3d-pipeline;把包名写入 profile 的 dsh.profile.bundles 与 dependencies;在 node_modules 下建 junction。改完后需彻底退出 dsh 再启动(托盘退出,不只是关窗口)。
撤销注册:
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -Unregister
仅挂载技能、不改 profile:
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -Targets dsh,workbuddy,claude
环境检查:
node .\bin\pdf3d.mjs doctor
node .\bin\pdf3d.mjs run verify -Spec .\drawing_spec.json -Step .\out\PART.STEP
典型用法¶
先从图纸上确认四个数:总宽(mm)、板厚(mm)、重量(kg)、材质。再按阶段执行;见到 STOP 即停,不要继续后续步骤。
node .\bin\pdf3d.mjs doctor
& .\run.ps1 spec -Pdf .\你的图纸.pdf
& .\run.ps1 dwg -Pdf .\你的图纸.pdf -PartWidth 200
& .\run.ps1 part -Dxf .\part.dxf -Depth 8 -Mass 0.47 -Name 零件名
& .\run.ps1 build -Dxf .\part.dxf -Depth 8 -Name 零件名 -Counterbore 3.4
& .\run.ps1 verify -Spec .\drawing_spec.json -Step .\out\零件名.STEP `
-Segments .\part_segments.json -Part .\out\零件名.SLDPRT -OutDir .\out
& .\run.ps1 deliver -Spec .\drawing_spec.json -Step .\out\零件名.STEP `
-Segments .\part_segments.json -To "D:\交付\零件名" -Mass 0.47
板厚未标注时,可在 part 前插入反算板厚:
& .\run.ps1 thickness -Dxf .\part.dxf -Mass 0.47 -Material aluminium
判据比单个数字更重要:spec 要求图注 unparsed=0;part 看外轮廓与质量偏差;build 的元素数须与 segs=N 一致;verify 须为「问题 0 项」。参数含义与每关失败如何改,见仓库内 USAGE.md。
安装完成后,也可直接让 agent 按技能名执行,例如说明 PDF 路径、总宽、板厚、材质与图纸重量,并要求在某关失败时停在该关说明原因、交付验收记录与面视图。
适用场景与注意¶
适合需要在 Windows + AutoCAD + SolidWorks 环境下,把单视图板类工程图 PDF 做成可交付 SLDPRT/STEP,且必须对沉孔面、通盲孔、图注数量做机械验收的团队或 agent 工作流。
注意:
- 插件与脚本会在本机调用 CAD COM/API,运行权限等于当前 dsh 进程;安装前请检查源码与 MIT 许可证。
- 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本文仅介绍该开源 bundle 的用法与边界。
结尾¶
dsh-pdf-3d-pipeline 的价值在于把「会拒绝交付错件」的闸门与脚本、技能文档打在同一插件包里,而不是散装自动化。若你的工作流正是工程图 PDF → SolidWorks 零件且不能接受沉孔面错误这类 silent failure,可按上文 install.ps1 -Register 接入 dsh,并用 pdf3d doctor 与 run.ps1 各阶段闸门做自检与验收。
- 目录页:https://www.skillhub.cn/plugins/1123443202/dsh-pdf-3d-pipeline
- 源码与文档:https://github.com/1123443202/dsh-pdf-3d-pipeline