前言¶
DSH 的代碼、文檔類插件很多,但真拿到一個機械零件的 PRT 文件時,常見的處理方式還是先切到 NX 裏做截圖,再把圖貼回對話窗口。截圖只能看個形狀,面、邊、特徵樹這類信息根本傳不進去,模型一改還要重新截。
qiko0721/dsh-ug-viewer 走的是另一條路線:直接在 DSH Web GUI 裏渲染 UG/NX 模型,鼠標點選幾何,選中的內容自動拼進上下文發給 AI。下面介紹這個插件的功能、安裝方式和實際使用流程。
這是什麼¶
插件名 dsh-ug-viewer,由 QIKO0721 維護,分類是客戶端插件。它解決的問題是:讓 DSH 裏的模型審閱從「看截圖」變成「轉得動、點得中、問得動」。
它的定位很明確——不是把圖片貼進來,而是把 WebGL 視口、幾何選擇和特徵樹搬進側邊欄。STL / OBJ 直接拖進來就能轉,PRT 則交給本機 NX 處理。
核心功能¶
模型預覽¶
- STL / OBJ:拖進視口直接渲染,中鍵旋轉、滾輪縮放、左鍵平移。
- PRT 直接預覽:不先導 STL,後臺調 NX 把實體按面三角化後渲染。
- 只有草圖的 PRT:渲染成線框,圓弧離散成折線。
幾何選擇¶
支持的選對象和反饋方式如下:
| 能選什麼 | 怎麼選 | 反饋 |
|---|---|---|
| 面 | 點面中間 | 整面變藍 |
| 邊 | 點面邊界 6px 內 | 整條邊變紅 |
| 特徵 | 左欄特徵樹點一行 | 該特徵關聯的體變藍 |
| 草圖曲線 | 線框模式下點線 | 整條曲線變紅 |
| 草圖點 | 點小十字 | 浮層顯示「點 #N」 |
| 曲線交點 | 點交叉處 | 浮層顯示「交點 #N」 |
| 草圖約束 | 特徵樹展開草圖 | 浮層顯示約束類型 |
全部支持多選:點一下加入、再點取消、點空白清空。
特徵分析¶
左側常駐特徵樹(可摺疊),打開 PRT 自動加載,顯示特徵類型、參數表達式、父子依賴。草圖可以展開看約束(README 寫的是 22~44 個),類型覆蓋重合、相切、半徑、角度等。
就地問答¶
視口下方有對話欄,直接調 Host 的 llm 服務。選中幾何後輸入問題回車,插件自動把選中的面、邊、特徵、約束、曲線、點、交點拼進上下文,流式返回,不需要切走當前頁面。
界面¶
三欄佈局:目錄 | 特徵樹 | 視口。目錄和特徵樹都能摺疊,工具欄左側的 ☰ 和 ▤ 分別控制。其餘還有視圖預設(等軸 / 前 / 上 / 右)、線框、自動旋轉、截圖、重置。
安裝與啓用¶
前置條件是 DSH(Web GUI);NX 12+ 只在 PRT 預覽和特徵分析時需要,純看 STL / OBJ 不需要。README 提到 NX 12 內嵌 Python 3.6,插件通過 run_journal.exe 調 NX Open。
# 1. 克隆到任意目錄
git clone https://github.com/QIKO0721/dsh-ug-viewer.git
cd dsh-ug-viewer
# 2. 裝進 DSH(任選一種)
dsh plugin --profile web add link:$(pwd)
# 或
plugin_manager { action: install_bundle, target: "<絕對路徑>" }
裝完刷新頁面,側邊欄會出現「UG 模型預覽」。
配置¶
編輯 cordis.patch.yml,把路徑換成自己的:
config:
roots:
- 'D:\models' # 模型目錄(可寫多個)
maxFileBytes: 100663296 # 單文件上限(96 MB)
maxDepth: 3 # 遞歸深度
maxModels: 400 # 列表上限
runJournalExe: 'D:\UG\NXBIN\run_journal.exe' # NX journal 運行器
analyzeTimeoutMs: 180000 # 分析超時
也可以不修改配置文件,在面板裏點「選目錄」運行時切換,選擇會記到 ~/.dsh/dsh-ug-viewer.json。
典型用法¶
一個可復現的流程是:把模型目錄配進 roots,打開插件側邊欄;在目錄裏選中 PRT,視口加載模型,特徵樹自動出現;用鼠標點一個面,該面高亮;在視口下方對話欄輸入「這個面爲什麼是這個形狀」,回車,選中幾何信息隨問題一起發到 Host 的 llm,回答直接流式顯示在欄內。
如果想確認幾何導出鏈路是否正常,插件自帶兩個測試腳本:
cd dsh-ug-viewer
node test/geometry-once.mjs # 測 PRT 幾何導出
node test/chat-once.mjs # 測面板對話接口
這兩個腳本需要 DSH 正在運行、插件已安裝。
適用場景與注意¶
適合在 DSH 裏經常要審閱 UG/NX 零件、並且希望選完幾何立刻問 AI 的人。PRT 相關能力依賴本機裝有 NX 12+,並需要正確配置 runJournalExe;只用 STL / OBJ 的場景不碰 NX。
幾個限制值得先知道:
- 特徵不能精確高亮到具體面。NX 外部 API 不暴露 feature 到 face 的映射,
GetEntities()只返回曲線和基準,所以選中特徵時只能整體高亮它關聯的體。 - 一個體可能由多個特徵生成,因此特徵高亮會「過量」。
- 無實體零件點不了面,只有曲線沒有 B-rep 面。
- 面板對話不進 session 日誌,刷新即失憶。
- 該 NX 12 環境沒帶
NXOpen.UF模塊,插件只能走 NXOpen 接口。
插件以當前 dsh 進程的權限運行。README 的安裝用的是本地 link 方式,也就是源碼克隆到本機後引用目錄,能在安裝前直接讀代碼。安裝前建議先讀一遍源碼,確認配置項和 journal 調用符合自己的環境,再決定是否啓用。許可證是 MIT。
小結¶
dsh-ug-viewer 的價值在於把模型審閱的三個動作合到一個側邊欄裏:轉模型、點幾何、問 AI,選中內容作爲上下文直接進對話。短板也寫在明處,主要是 NX API 本身不暴露的特徵與面的映射關係,所以別指望它做到 CAD 裏的精確特徵定位。
插件在社區目錄的頁面:https://www.skillhub.cn/plugins/QIKO0721/dsh-ug-viewer
源碼:https://github.com/QIKO0721/dsh-ug-viewer