dsh-ug-viewer:在 DSH 里转 UG/NX 模型,点哪问哪

前言

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

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

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

小夜