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

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

小夜