dsh-freecad:在本機 FreeCAD 中讀寫 STEP 並生成第一角法加工圖

前言

在 DSH 裏讓模型處理 CAD,常見做法是上傳模型到雲端或自己寫腳本調 OCC/OpenCascade。前者有數據與合規顧慮,後者要在 DSH 側維護 Python 與幾何庫。dsh-freecad 走另一條路:幾何計算全部在 FreeCAD 進程裏完成,插件只做工具註冊、參數校驗和文件傳遞,模型不出本機,也不在 DSH 裏單獨裝 Python。

下面介紹該插件的定位、能力與安裝方式,便於在客戶端 profile 裏接入 STEP 檢視、簡單編輯和出圖流程。

這是什麼

dsh-freecad 由 Negulons 維護(npm 包作者署名爲藍色大肥魚),在 SkillHub 插件目錄 中歸類爲客戶端插件。MIT 許可證;當前 npm 版本爲 0.4.2。

一句話定位:把對話裏的自然語言意圖轉成 FreeCAD 可執行的幾何操作——讀取 STEP/STP(及 IGES/BREP)、按參數編輯立體模型、再生成第一角法二維加工圖(SVG/DXF/PDF/PNG)。它不是 CAD 內核,也不是雲端服務;FreeCAD 打不開的文件,這裏同樣打不開。

核心功能

插件向 DSH 註冊五組工具,長度單位均爲 mm。

工具 作用
freecad_status 檢查 freecadcmd 路徑、版本、worker 是否就緒;排錯時優先調用
freecad_inspect_step 讀 STEP/STP 等:包圍盒、體積、面/邊/頂點、對象列表、孔識別(含斜孔、腰形孔等);detail: true 可分頁讀面/邊明細
freecad_edit_step 平移/旋轉/縮放/鏡像、鑽孔、布爾增刪、倒圓角/倒角;導出新 STEP,可選存 FCStd
freecad_step_to_drawing HLR 隱藏線消除 → 主/俯/右視圖與軸測圖,自動圖幅比例、總尺寸、孔表與標題欄,多格式導出
freecad_measure 不改模型,測量點/面/邊距離、夾角、圓柱/圓邊直徑,供補標註使用

README 明確說明:不是生產級出圖工具。圖紙目前側重總寬/總高與孔表,凸臺直徑、臺階高度、孔位等常需人工補標或先用 freecad_measure 再讓模型補全;無剖視圖、形位公差等。完整限制見倉庫 docs/limitations.md。

環境要求

依賴 要求
操作系統 Windows 10/11 已實測;Linux / macOS 需手動指定 freecadcmd
FreeCAD 1.0 或 1.1,且帶 freecadcmd
DSH 支持 bundle(dsh.bundle.patch)的版本
Node.js 18+(DSH 自帶即可)

已驗證組合示例:Windows 11 + FreeCAD 1.1.4(便攜版)+ DSH Desktop。

安裝與啓用

插件是普通 DSH bundle,裝入 profile 後必須重啓 DSH 纔會掛載。

方式 A:DSH 插件頁(推薦)

打開 DSH 的插件頁,輸入 dsh-freecad 搜索並安裝,然後重啓 DSH。插件頁會寫入 profile 依賴、dsh.profile.bundles 與 cordis.patch.yml,無需手改文件。若重啓後「設置 → FreeCAD」未出現,可再重啓一次。

方式 B:npm 與安裝腳本

先安裝包,再執行倉庫提供的安裝腳本(會備份被改動的文件):

npm i dsh-freecad     # 或 pnpm add dsh-freecad
node node_modules/dsh-freecad/scripts/install.mjs

裝完之後

重啓 DSH 後,可在對話中說「檢查一下 FreeCAD 狀態」,或調用 freecad_status,確認 freecadcmd 路徑與版本。

非 Windows 或便攜版安裝時,在 DSH → 設置 → FreeCAD 填入 freecadcmd 完整路徑;也可通過 profile 的 config.freecadPath 或環境變量 FREECAD_CMD。路徑解析順序:設置頁 → profile 配置 → 環境變量 → Windows 默認 Program Files 路徑。該配置保存後立即生效,無需重啓 DSH。

典型用法

倉庫 README 給出的對話示例可直接復現(產物默認落在工作目錄,如圖紙目錄 <輸入名>_drawing/、編輯後的 <原名>_edited.step):

你:讀一下 examples/demo_bracket.step,告訴我它有幾個孔、多大。
你:把它轉成 A3 加工圖,帶軸測圖,輸出 PNG 和 DXF。
你:在頂面中心加一個 Ø8 通孔,倒 C1 角,另存一份。

示例 STEP 經 freecad_step_to_drawing 可生成 A3 圖紙,SVG/DXF/PDF/PNG 可同時輸出。

適用場景與注意

適合:需要在 DSH 對話中本地檢視 STEP、做常見機加特徵編輯(孔、倒角、簡單布爾)、快速出第一角法草圖供內部溝通或再人工補標的使用者;強調數據不出本機、無遙測。

注意:

  1. 插件以當前 DSH 進程權限運行,可讀寫其能訪問的路徑;安裝前建議查看 GitHub 源碼 與 MIT 許可證,並確認 FreeCAD(LGPL)運行時依賴符合你的合規要求。
  2. 改 dsh/*.py 後 worker 每次調用會重載;改 index.js 或 lib/client.js 須重啓 DSH。
  3. SkillHub 爲社區插件目錄,與 DeepSeek / 幻方無官方從屬關係;星標等元數據以目錄與 GitHub 頁面爲準(截至資料抓取時 GitHub 約 3 stars)。

結尾

dsh-freecad 是 DSH 生態裏面向 FreeCAD 的薄橋接層:不替代 FreeCAD,也不承諾工廠級圖紙,但在「對話驅動 + 本機幾何」這條線上步驟清晰、工具邊界明確。進一步參數語義與架構說明見倉庫 docs/tools.md、docs/architecture.md。

羽毛球分组比赛记分
小程序二维码

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

小夜