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 或幻方無官方從屬關係。

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

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

小夜