printbench 0.8.2 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -59,6 +59,7 @@ function onExported(payload: PrintBenchExportedPayload) {
59
59
  // payload.longestEdgeMm — 若导出时指定了目标边长缩放
60
60
  // payload.scaleAxis — 若按 X/Y/Z 轴缩放(最长边模式不带此字段)
61
61
  // payload.partIds / modelSize — 分件导出时带回写出的零件与缩放后整模尺寸
62
+ // payload.groundCenter — 若导出时置于地面中心
62
63
  }
63
64
  </script>
64
65
 
@@ -94,6 +95,9 @@ function onExported(payload: PrintBenchExportedPayload) {
94
95
  | `partColors` | `Record<string, string>` | — | 受控零件色,`#RRGGBB`,key 为零件 `id` |
95
96
  | `bedSizeMm` | `{ x, y, z }` | — | 宿主默认打印床体积(mm:X/Z 床面,Y 高度)。挂载时写入设置一次,之后仍可在布局区/设置中修改 |
96
97
  | `showBedVolume` | `boolean` | — | 宿主默认是否显示打印床线框。挂载时写入设置一次,之后仍可开关(未传时默认隐藏) |
98
+ | `showGrid` | `boolean` | `true` | 宿主默认是否显示地面网格。挂载时写入设置一次 |
99
+ | `gridAutoFit` | `boolean` | — | 宿主默认网格是否随模型包围盒放大(设置默认 `true`)。挂载时若传入则写入一次;固定尺寸时请设 `false` |
100
+ | `gridSizeMm` | `{ x, y, z }` | — | 宿主默认固定网格尺寸(mm,边长取 max(X,Z),20 格)。挂载时写入一次;若未同时传 `gridAutoFit`,会自动设为固定尺寸(`gridAutoFit: false`) |
97
101
  | `diagnosisZIndex` | `number` | `100` | 诊断浮层 `z-index`。也可在外层设 CSS 变量 `--printbench-diagnosis-z` |
98
102
  | `annotations` | `Annotation[]` \| `AnnotationDocument` \| `string` | — | 模型批注(世界坐标 mm)。需同时打开 `features.annotations` 才能编辑;详见下方「批注」 |
99
103
  | `features` | `{ numeric?, primitives?, split?, autoSplit?, drafts?, extras?, restore?, layout?, importUnit?, hideEmpty?, hideTour?, hideStatusBar?, hidePanelModeToggle?, hidePreviewLighting?, annotations?, … }` | 能力项默认 `false` | 进阶能力。缺省精简:左栏仅导入 / 零件 / 导出 / 快照。未开 `drafts` 时不读不写自动草稿。导入单位优先用文件声明,否则按包围盒尺寸推测 mm/cm/m 再换算到内部毫米;开 `importUnit` 时可再确认。`split` 为切面拆件;`autoSplit` 为「自动拆件」按钮(默认隐藏,需显式打开)。`restore` 为「复原到导入状态」按钮(默认隐藏,宿主需显式打开;完整工作台预设已开启)。`layout` 打开贴地 / 镜像 / 目标尺寸缩放 / 选面朝下与打印床体积。`annotations` 打开模型批注(默认关闭,`PRINTBENCH_FULL_FEATURES` 也不含该项)。`hideEmpty` / `hideTour` / `hideStatusBar` / `hidePanelModeToggle` / `hidePreviewLighting` 为 `true` 时分别隐藏空画布提示、首次引导 Tour(可与 `extras` 同开)、底栏状态条、零件栏悬浮/通栏切换按钮、预览模式左上角灯光模式控件(默认显示)。 |
@@ -185,7 +189,7 @@ async function upload() {
185
189
  | -------------------- | ------------------------------------------------- | -------------------------------------------------- |
186
190
  | `ready` | — | 几何内核就绪 |
187
191
  | `error` | `string` | 可展示错误 |
188
- | `exported` | `{ action, format, fileName, blob, unit, size, longestEdgeMm?, scaleAxis?, scaleBasis?, partIds?, modelSize?, axis? }` | 网格导出完成。`size` 为本次 blob 内网格包围盒;分件且按整模缩放时带 `modelSize`;`partIds` 为实际写出的零件 |
192
+ | `exported` | `{ action, format, fileName, blob, unit, size, longestEdgeMm?, scaleAxis?, scaleBasis?, partIds?, modelSize?, groundCenter?, axis? }` | 网格导出完成。`size` 为本次 blob 内网格包围盒;分件且按整模缩放时带 `modelSize`;`groundCenter: true` 表示已贴地居中 |
189
193
  | `snapshot` | `{ action, format, fileName, blob, mime, width, height }` | 模型快照完成。`format` 为 `'png'` \| `'jpeg'` |
190
194
  | `report` | 审核报告对象 | 下载 JSON / HTML 审核报告时触发 |
191
195
  | `parts` | `{ id, index, name, initialSize, size, unit }[]` | 零件列表;`size` 为当前尺寸,`initialSize` 为导入时尺寸(无则为 `null`) |
@@ -204,7 +208,7 @@ async function upload() {
204
208
 
205
209
  | 方法 | 说明 |
206
210
  | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
207
- | `exportFile(options?)` | 不打开插件对话框。`action` / `format` / `unit` 同上;`longestEdgeMm` + `scaleAxis?` 等比缩放;`scaleBasis`: `'model'`(默认,整模比例)\| `'exportSet'`;`partIds` 只导出指定零件;`silent: true` 跳过确认。成功返回与 `exported` 相同的 payload。 |
211
+ | `exportFile(options?)` | 不打开插件对话框。`action` / `format` / `unit` 同上;`longestEdgeMm` + `scaleAxis?` 等比缩放;`scaleBasis`: `'model'`(默认,整模比例)\| `'exportSet'`;`partIds` 只导出指定零件;`groundCenter: true` 导出时贴地且 XZ 居中于原点(不改工作台);`silent: true` 跳过确认。成功返回与 `exported` 相同的 payload。 |
208
212
  | `exportSnapshot(options?)` | 按当前视角截取模型图(不含网格、手柄、切面)。`action`: `'download'` \| `'upload'`;`format`: `'png'`(默认)\| `'jpeg'`;`quality` 仅 JPEG。成功返回与 `snapshot` 相同的 payload。`customExport` 时不本地下载、不 POST。 |
209
213
  | `autoSplit(options?)` | 多零件接触面自动装配(≥2 件)。检测接触后一端保留凸起、一端挖槽,再加卡扣。`connector`: `'ballSnap'` \| `'sphere'` \| `'square'`(默认 `ballSnap` 爪扣);`connectorSize` 可选;`silent: true` 时不弹修复确认,未封闭则返回 `{ ok: false, needsRepair: true, repairPartNames }`。成功 `{ ok: true }`。 |
210
214
  | `getPartBounds()` | 同步返回与 `@parts` 相同结构的零件列表(含 `initialSize` / `size`)。无模型时为 `[]`。 |
@@ -296,7 +300,7 @@ JSON 结构:
296
300
  - **STL**:二进制;无单位字段,切片软件需与导出单位一致(推荐毫米)。单零件 `.stl`,多零件 `.zip`(每件一个 STL)。不含颜色。
297
301
  - **3MF**:自带毫米单位;每零件单独 object,并写入 `displaycolor`(零件打印色)
298
302
  - **GLB**:单文件多网格;零件打印色写入材质。无打印单位字段,坐标按导出单位解释。
299
- - **目标边长缩放**:导出对话框可选参考轴(最长边 / X / Y / Z)、缩放基准(整模 / 仅导出零件)并填「目标边长 mm」;可勾选「仅导出选中」。宿主:`exportFile({ longestEdgeMm, scaleAxis?, scaleBasis?, partIds? })`。先按毫米等比缩放,再按所选 `unit` 写出。按件循环且需可组装时用默认 `scaleBasis: 'model'`。
303
+ - **目标边长缩放**:导出对话框可选参考轴(最长边 / X / Y / Z)、缩放基准(整模 / 仅导出零件)并填「目标边长 mm」;可勾选「仅导出选中」「置于地面中心」。宿主:`exportFile({ longestEdgeMm, scaleAxis?, scaleBasis?, partIds?, groundCenter? })`。先按毫米等比缩放,再按 `partIds` 过滤,再可选贴地居中(相对**本次写出集合**的 AABB),再按所选 `unit` 写出。按件循环时 `groundCenter: true` 会把每件单独放到地面中心;缩放比例仍可用默认 `scaleBasis: 'model'` 保持可组装尺寸。
300
304
  - **快照**:PNG / JPEG。按当前相机截取模型,不含工作台网格、变换手柄、拆件切面与测量。下载或一键上传(同 `uploadUrl` / `customExport`)。嵌入预览用 `exportSnapshot()`。
301
305
 
302
306
  ### 快捷键
@@ -314,7 +318,7 @@ JSON 结构:
314
318
  | Ctrl | 多选、框选 |
315
319
 
316
320
 
317
- 草稿保存在浏览器本地,仅当 `features.drafts` 为 true 时读写并提示恢复。设置含默认导入单位、默认导出格式、网格/场景光照开关、灯光模式(标准照明 / 摄影棚 / 环境光照 / 跟随头灯,默认标准照明)、最小壁厚、打印床尺寸(默认 220×220×250 mm,Y 为高度)。打印床线框默认隐藏,可在布局区或设置中打开;宿主可用 props `bedSizeMm` / `showBedVolume` 提供初始默认值(只写入一次,不锁定控件)。
321
+ 草稿保存在浏览器本地,仅当 `features.drafts` 为 true 时读写并提示恢复。设置含默认导入单位、默认导出格式、场景光照开关、灯光模式(标准照明 / 摄影棚 / 环境光照 / 跟随头灯,默认标准照明)、最小壁厚、打印床尺寸(默认 220×220×250 mm,Y 为高度)。地面网格默认开启,初始 200 mm / 20 格并随模型包围盒放大(`showGrid` / `gridAutoFit` 默认 `true`);勾选「自定义网格尺寸」或宿主传 `gridSizeMm` 后可填 XYZ(边长取 max(X,Z))且不再随模型放大。打印床线框默认隐藏,可在布局区或设置中打开;宿主可用 props `bedSizeMm` / `showBedVolume` / `showGrid` / `gridAutoFit` / `gridSizeMm` 提供初始默认值(只写入一次,不锁定控件)。
318
322
 
319
323
  开启 `features.layout` 后:贴地将零件落到 Y=0;镜像相对包围盒中心;「缩放到」按最长边或指定轴等比缩放并自动贴地;「选面朝下」点击表面使该面朝下并贴地。超出打印床时底栏提示;显示床线框时超界会变为警示色。
320
324
 
@@ -1,5 +1,5 @@
1
1
  import j from "jszip";
2
- import { h as w, r as R } from "./index-Cwlaqcgp.js";
2
+ import { h as w, r as R } from "./index-Cc4caqHB.js";
3
3
  function p(s, l) {
4
4
  return s.match(new RegExp(`\\b${l}\\s*=\\s*"([^"]*)"`, "i"))?.[1];
5
5
  }
@@ -1,6 +1,6 @@
1
1
  import { Group as w, Mesh as l, MeshStandardMaterial as u, DoubleSide as h, Color as c } from "three";
2
2
  import { GLTFExporter as p } from "three/examples/jsm/exporters/GLTFExporter.js";
3
- import { b as d } from "./index-Cwlaqcgp.js";
3
+ import { b as d } from "./index-Cc4caqHB.js";
4
4
  async function G(r, e, n) {
5
5
  const t = new w();
6
6
  t.name = "PrintBench", r.forEach((f, o) => {