dsh-cad-preview:在 DSH 侧栏里预览 STEP、STL 等 3D 模型

前言

在 DSH 里做智能体或脚本开发时,工作区里常会混着机械零件、网格模型和导出文件。.step、.stl 这类资源若只能依赖外部 CAD 或独立查看器,切窗口、找路径会打断上下文。DeepSeek Harness 的插件生态把能力拆成可安装的扩展;dsh-cad-preview 由社区维护者 RichardYZLu 发布,归类为客户端插件,目标是在 DSH 右侧栏直接打开文件树里的 3D 文件,用轨道相机旋转、缩放,并可选线框、网格与坐标指示,而不离开当前 DSH 窗口。

下面介绍它解决什么问题、支持哪些格式、如何安装与日常使用,以及部署在非本机域名时的配置注意点。

这是什么

dsh-cad-preview(npm 包名 dsh-cad-preview,仓库 RichardYZLu/dsh-cad-preview)是面向 DSH Web 客户端的 CAD / 网格 3D 模型预览器。打开侧栏支持的扩展名后,侧栏内渲染可交互几何体;可与 dsh-better-sidebar 的文件查看器集成,也可挂到 DSH 自带的文档预览上。社区目录页:skillhub.cn 上的 dsh-cad-preview(与 DeepSeek / 幻方无官方从属,仅为独立插件索引)。

支持的格式与预览信息

先做格式区分:B-rep 与 OCCT 原生格式走 OpenCascade(WASM) 在 Worker 里离散;三角网格类走 three.js 各 Loader。

格式 解析方式 说明
.step .stp OpenCascade(WASM) B-rep 离散:读实体、曲面与单位
.iges .igs OpenCascade(WASM) 同上
.brep .brp OpenCascade(WASM) OCCT 原生 BREP
.stl three.js STLLoader 二进制与 ASCII 均可
.3mf three.js 3MFLoader 按 OPC 包解析
.obj three.js OBJLoader 只取几何,忽略材质
.ply three.js PLYLoader ASCII 与二进制均可

打开文件后,顶栏会显示:文件大小、包围盒尺寸(mm)、三角面数、解析耗时。

为什么用 Web Worker

.step 等 B-rep 解析在 OpenCascade 侧是同步、一口气跑完的,内存需求可达 GB 级。DSH 侧栏与聊天界面共用同一渲染进程;若把这段计算放在主线程,会拖住整个界面。

预览器把 CAD 内核放进 Web Worker(页面 bundle 不含内核,内核在 lib/client.worker.js)。效果是:解析期间仍可滚动、切换标签;关标签页可释放内核内存;取消解析可终止线程;坏文件主要影响该 Worker。OpenCascade WASM 约 7.6 MB,首次使用需从网络加载(失败时可点「重试」,插件也会自动重试一次)。

核心交互与外观

鼠标 / 触控板:

  • 左键拖动:旋转
  • 右键拖动(或 Shift + 左键):平移
  • 滚轮:缩放;触控板与触屏支持双指缩放

工具条与快捷键:

按钮 快捷键 作用
线框 W 隐藏面,只画结构线
Z/Y 轴向上 U CAD(Z 向上)与图形(Y 向上)约定切换
网格 G 地面网格 + 坐标轴
适配 F 重新框选模型,不改变当前视角
重置 R 模型居中落地、全部进画面、视角回初始

右下角红 X / 绿 Y / 蓝 Z 方向指示器随视角旋转,便于对照模型坐标系。默认外观为 ao+strong(环境光遮蔽 + 约 30° 结构线);线框模式为 lines,结构线阈值可降到 1° 以保留圆柱侧面折边。

安装与启用

前置条件只有 DSH 本身,无其它依赖。装完后需 重启 DSH Desktop,插件在启动时挂载。

你的环境 挂到哪里
装了 dsh-better-sidebar 注册为其文件查看器(.step 等可直接开标签页)
只有 DSH 自带侧栏 注册进 DSH 自带文档预览
两者都有 两处都注册,互不影响

从 npm 安装(推荐):

dsh plugin --profile web add dsh-cad-preview

从 GitHub 安装(须用完整 HTTPS,勿用 github:owner/repo 简写,以免 pnpm 解析为 SSH 导致 Permission denied):

dsh plugin --profile web add https://github.com/RichardYZLu/dsh-cad-preview

锁定版本可在 URL 后加 #<tag>,例如 https://github.com/RichardYZLu/dsh-cad-preview#v0.3.6;不带 # 则跟随默认分支最新提交。

卸载:

dsh plugin --profile web remove dsh-cad-preview

典型用法

  1. 按上一节命令安装并重启 DSH Desktop。
  2. 在文件树中点击 .step、.stl 等受支持扩展名的文件。
  3. 在侧栏预览中左键旋转、滚轮缩放,需要对照结构时用 W 切线框,用 F / R 调整取景。
  4. 若通过隧道或局域网域名访问 GUI 且请求被 403 拒绝,在 profile 的 cordis.patch.yml 中为插件配置 trustedHosts(见下一节)。

适用场景与注意

适合: 在 DSH 工作区内快速核对 STEP/IGES/BREP 与 STL/3MF/OBJ/PLY,不必为看一眼模型单独开 CAD 或浏览器 tab。

权限与安全: 插件以当前 DSH 进程权限运行,会读取你打开的文件并加载远程 WASM 资源。安装前建议浏览 GitHub 仓库 源码与许可:包本身为 MIT;lib/occt-import-js.wasm 含 occt-import-js(MIT)与 OpenCascade Technology(LGPL-2.1 + OCCT exception),详见包内 lib/THIRD-PARTY-NOTICES.md。

非 loopback 域名: 插件路由带 Host 信任栅栏,默认只认 loopback。用例如 dsh.example.com 访问时,需在配置中声明信任域名:

# profile 的 cordis.patch.yml
- id: cad-preview
  name: dsh-cad-preview
  config:
    trustedHosts:
      - dsh.example.com
    maxModelBytes: 8589934592

已在 DSH 侧给 /api、/sidebar 放行过的域名通常会被自动继承;被拒时响应体会说明被挡域名与应改的配置项。

其它界面提示(摘自 README): 三角面数超过上限(默认提示中的上限为 12000000)需简化模型或只预览局部;「这个环境没有 Web Worker」表示当前页面无法安全 offload 解析,应在正常 DSH 窗口打开;CAD 解析线程相关错误在确认版本 ≥ 0.3.2 后可尝试重装。

结尾

dsh-cad-preview 把 STEP/STP/IGES/BREP 与常见网格格式收进 DSH 侧栏,用 Worker 隔离重型 B-rep 解析,并给出 orbit 相机、线框与坐标辅助。需要安装命令与细节时,以仓库 README 为准:

  • 目录页:https://www.skillhub.cn/plugins/RichardYZLu/dsh-cad-preview
  • GitHub:https://github.com/RichardYZLu/dsh-cad-preview
羽毛球分组比赛记分
小程序二维码

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

小夜