前言¶
在 DeepSeek Harness 里做机械、结构或硬件相关对话时,经常需要对照本机 CAD 模型:看外形、量大致尺寸、或并排对比两个版本。常见做法是切到独立查看器或在线平台,往往伴随上传、资料库绑定或额外客户端。NOMAD-bri 维护的 dsh-product-model-compare 是 DSH 生态里的客户端类插件:在侧栏打开本地 STEP/STP/STL/OBJ 与模型 JSON,支持单视窗或双视窗对比,不建产品库、不上传、不改磁盘上的原文件。
这是什么¶
插件仓库:NOMAD-bri/dsh-product-model-compare。社区目录页:skillhub.cn 条目(独立站点,与 DeepSeek / 幻方无官方从属关系)。
README 写明:插件不包含产品库、参数持久化到云端或同步;只做本地文件的查看与临时测量。模型仅在本机读取;视窗状态写入浏览器 IndexedDB(dsh-local-model-viewer),STEP 解析用一次性临时目录,请求结束即删。
核心功能¶
下面按界面区域归纳 README 中的能力(均已出现在官方文档,此处不扩展未列出的功能)。
| 区域 | 能力 |
|---|---|
| 顶部 | 打开本地文件、搜索本机 STEP 列表、下拉选模型、刷新列表 |
| 左侧工具条 | 旋转、部件尺寸、两点距离、三点角度、当前姿态尺寸、摆正模型 |
| 中央视窗 | 自适应取景,前 / 顶 / 侧 / 等轴视角,蓝色实体高亮选中部件 |
| 右侧属性面板 | 选中部件名称与 X / Y / Z 尺寸、操作按钮、测量记录 |
| 工作区 | 单模型或双模型对比;两侧各自记忆模型与视角 |
| 恢复 | 重新进入或重启后恢复上次的模型、视角、姿态、孤立部件与测量 |
补充行为:
- 摆正模型:点选一个平面,将该面法线对齐到 Z 轴;恢复原始姿态可撤销。
- 单独查看部件:只显示选中部件,可单独摆正和测量;返回整机复原。
- 清除测量只清标记;清除模型只清当前视窗与该侧缓存,不会删除磁盘原文件。
- 双模型模式下左右两侧独立缓存,互不覆盖。
技术栈要点:index.js 负责 Host(索引、读文件、STEP 子进程、静态资源);client.js 注册侧栏;local-viewer.js 为 Shadow DOM + three.js(vendor 内带 three.js r170)。STL、OBJ、模型 JSON 在前端解析;STEP/STP 经 parse-step.py 与 OCP 三角化。
环境要求¶
- DeepSeek Harness,且支持以本地目录安装 bundle 插件。
- Node.js 20 及以上(扫描脚本与插件 Host)。
- 仅 STEP/STP 需要 Python 3.10+ 与 OCP(OpenCascade 绑定;README 推荐
pip install cadquery-ocp)。STL、OBJ、模型 JSON 不需要 Python。
安装与启用¶
官方说明是在 Harness 里以本地目录安装 bundle,或在支持插件的界面中选择含下列文件的目录:
<仓库目录> # 含 package.json / cordis.patch.yml / index.js / client.js
安装后侧栏出现 「本地3D工作台」。README 未给出 dsh plugin add github:... 一类命令,安装方式以目录 bundle 为准。
插件以当前 DSH 进程权限运行;安装前请自行通读源码与 MIT 许可证。
首次配置与典型用法¶
1. 生成本地 STEP 索引¶
模型下拉列表读取索引文件。在仓库目录执行:
node scripts/scan-models.mjs
默认扫描所有固定磁盘,输出到 ~/.product-model-compare/step-index.json。
只扫指定目录或改输出路径:
node scripts/scan-models.mjs --root "D:\CAD" --root "E:\Models"
node scripts/scan-models.mjs --root "D:\CAD" --out "D:\my-step-index.json"
package.json 中也可通过 npm script 调用:npm run scan(等价于上述 scan 脚本)。
2. STEP 解析相关环境变量(可选)¶
仅当 Python 不在 PATH 上的 python,或 OCP 安装路径非默认时需要设置;改完后重启 Harness 让 Host 读到变量。
| 环境变量 | 作用 |
|---|---|
PRODUCT_VIEWER_PYTHON |
Python 解释器完整路径 |
PRODUCT_MODEL_OCP_PATH |
含 OCP 包的目录;多个路径 Windows 用 ;,macOS/Linux 用 : |
PRODUCT_MODEL_INDEX |
索引文件路径,覆盖默认 ~/.product-model-compare/step-index.json |
3. 打开工作台¶
侧栏进入「本地3D工作台」→ 从下拉选择模型,或 打开本地模型。首次打开后,后续会自动恢复上次状态。
典型对比流程(双模型模式):左右各自选文件或索引项 → 分别旋转、摆正、孤立部件 → 用两点距离或三点角度做临时测量 → 右侧查看测量记录;需要重来时对单侧 清除模型 或 清除测量。
适用场景与注意¶
适合:需要在 Harness 对话旁快速查看本机 STEP/STL/OBJ、做网格近似测量、或左右对照两个本地文件,且希望数据不出本机的开发者或工程师。
测量与精度(README「已知限制」):
- 尺寸、距离、角度基于三角网格,为近似值;不是精确 B-Rep,不含壁厚测量。
- 姿态尺寸为世界轴向外形包围盒,随摆正/孤立变化,不等同于 CAD 精确外形。
- STEP 三角化容差:线性 0.8、角度 0.35;极大装配体可能慢或占内存。
- 摆正需点选平面;圆管曲面上单个三角面作基准不可靠。
- 外部修改原文件后,缓存网格不会自动更新,需重新打开该文件。
- 目前没有部件树、剖切、爆炸图、模型对比差值。
隐私与本地数据:索引仅记录路径,存于 ~/.product-model-compare/step-index.json;不上传模型。点「清除模型」会删除该侧 IndexedDB 缓存。
结尾¶
dsh-product-model-compare 把本地三维查看与临时测量收进 DSH 侧栏,强调无库、无上传、不碰原文件,适合在智能体工作流里就地核对几何。进一步了解实现与贡献约定见仓库 README 与 UI-ARCHITECTURE.md。
- 目录页:https://www.skillhub.cn/plugins/NOMAD-bri/dsh-product-model-compare
- GitHub:https://github.com/NOMAD-bri/dsh-product-model-compare