dsh-pdf-3d-pipeline:带闸门的工程图 PDF 转 SolidWorks 零件流水线

前言

在 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜