dsh-preview-stl:STL 网格预览插件

前言

在 DeepSeek Harness(DSH)工作区中直接查看 STL 模型,能省去在 Blender 或切片软件间切换的时间。dsh-preview-stl 插件为 DSH 增加了一个文档预览渲染器,点击 .stl 文件即可在右侧边栏渲染出交互式 3D 视口,并输出打印统计信息。

插件定位

dsh-preview-stl 是一个客户端插件,由用户 439436269-ctrl 维护。它解决的问题是:在本地浏览器中解析 STL 网格文件,无需上传、无需后端转换、无需额外切片软件,直接查看模型尺寸、体积、表面积和密封性。

核心功能

1. 文档预览渲染器

插件注册了一个 .stl 文件的预览渲染器。在 Workspace 文件列表中点击 STL 文件,右侧边栏会加载渲染视图。

2. 浏览器端解析

STL 文件流经经过身份验证的 /api/preview/stl 路由,在浏览器中完成解析:

  • 二进制 STL:80 字节头部 + uint32 三角形计数 + 每个 50 字节的三角形数据
  • ASCII STL:遵循标准语法的 facet normal / outer loop / vertex 格式

文件不会上传到服务器,也不会在宿主机上转换。

3. 交互式 WebGL 视口

使用与 dsh-preview-blender 相同的依赖-free WebGL 查看器,支持以下操作:

  • 轨道旋转(orbit)
  • 平移(pan)
  • 滚轮缩放
  • 双击重置视角
  • 线框模式切换
  • 自动旋转
  • 接触阴影
  • 三色轴三角架

STL 默认为 Z-up 坐标系,渲染前会旋转到 Y-up 视口坐标系。

4. 打印统计信息

插件在解析后报告以下数据:

  • 文件格式(二进制 / ASCII + 头部信息)
  • 文件大小
  • 三角形数量
  • 焊接顶点数量
  • 边界框尺寸(毫米)
  • 体积(立方厘米)
  • 表面积(平方厘米)
  • 密封性:边界边、非流形边、退化面

密封性计算通过在网格上焊接顶点并统计边使用次数完成。如果三角形数量超过 analysisMaxTriangles(默认 400,000),会跳过密封性检查以避免卡顿。

5. 单位转换

STL 文件本身是无单位的。插件通过 unitScale 配置项将 STL 单位映射到毫米:

  • unitScale = 1:假设 STL 单位为毫米(默认)
  • unitScale = 10:假设 STL 单位为厘米
  • unitScale = 25.4:假设 STL 单位为英寸

该配置会影响尺寸、体积和表面积的显示值。

安装与启用

插件安装命令如下:

dsh plugin --profile <profile> add dsh-preview-stl

安装后,插件会自动注册渲染器和路由,配置项可在设置 → 插件 → STL preview 中调整。

配置项

键 默认值 说明
enabled true 注册渲染器和路由
routePath /api/preview/stl 认证网格路由路径,必须位于 /api 下
extensions ["stl"] 触发 3D 预览的文件后缀
maxBytes 536870912 最大可流式传输的 STL 大小(512 MiB)
chunkBytes 1048576 主机端分块读取的字节数
unitScale 1 STL 单位到毫米的映射
color #c7d2e2 视口颜色(STL 不携带材质)
analysisMaxTriangles 400000 超过此值跳过密封性检查

适用场景

  • 在 DSH 中快速浏览 STL 模型,检查几何完整性
  • 获取模型的打印前统计信息(尺寸、体积、表面积)
  • 在无额外软件的本地环境中查看 3D 模型

注意事项

  • 插件依赖 DSH 0.2.x 版本(已验证兼容 0.2.0-rc.2 和 0.2.1-rc.2)
  • 需要浏览器支持 WebGL(桌面应用默认具备)
  • ASCII STL 中超出标准语法的顶点颜色或面属性不会被解析
  • 非常大的模型(数百万三角形)会在主线程解析,可能需要片刻;密封性检查会自动跳过
  • 插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证(MIT)

生态背景

DeepSeek Harness 的设计理念是「一切皆插件」。dsh-preview-stl 是社区维护的插件,通过 DSH 插件目录分发,与 DeepSeek 或幻方无官方从属关系。

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

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

小夜