three-slicer 0.4.0 → 0.4.2
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/CHANGELOG.md +65 -0
- package/data/README.md +1 -1
- package/data/config-schema-lean.json +1 -1
- package/data/config-schema.json +51 -51
- package/data/ui-tree-keys.json +1 -1
- package/data/ui-tree.json +215 -81
- package/engine/PARAMS.md +6 -3
- package/engine/src/slicer.worker.js +7 -0
- package/engine/src/slicer_core.js +0 -0
- package/engine/src/slicer_core.mt.js +1 -1
- package/engine/src/slicer_core.mt.wasm +0 -0
- package/package.json +2 -2
- package/types/settings-keys.d.ts +40 -40
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,70 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.2 — 2026-11-03
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Object tools in the ribbon: Arrange, Orient, Measure, Boolean, Cut, Negative part, Text, Seam painting and Variable
|
|
8
|
+
layers. Boolean, Cut, negative parts and engraving run on the kernel's CGAL (`mesh_boolean`); a non-solid input is
|
|
9
|
+
refused with a typed `MESH_BOOLEAN_…` code. Arrange and Orient are this package's own algorithms.
|
|
10
|
+
- Seam paint reaches the kernel as `seam_enforcers` / `seam_blockers`, on classic, Arachne and multi-material walls, and
|
|
11
|
+
round-trips through a 3mf as `paint_seam`.
|
|
12
|
+
- Variable layer height (`variable_layer_heights`, Z bands). It is refused with support, raft, spiral mode and several
|
|
13
|
+
filaments (`UNSUPPORTED_VARIABLE_LAYERS`), and a band under 0.01 mm is `INVALID_VARIABLE_LAYERS`.
|
|
14
|
+
- `textFonts` prop: fonts the Text tool offers beside its built-in Latin one. The demo binds Noto Sans CJK for Korean,
|
|
15
|
+
Japanese, Simplified and Traditional; a `.ttf` or `.otf` upload lasts for the session.
|
|
16
|
+
- Fine adjust: holding Alt (Option) opens typed position, angle and size for the gizmo's mode, with fine drag snap; a
|
|
17
|
+
Hold button keeps it on.
|
|
18
|
+
- Measure snaps to corners and edges while Ctrl (Cmd) is held, and previews the second point under the pointer.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- The window is a title row with the menu bar, a labelled ribbon, the canvas and a task pane; sidebar sections are
|
|
23
|
+
collapsible boxes, and the plate tabs sit over a split slice button that fills with each plate's progress.
|
|
24
|
+
- The gizmo stands outside the selection and is sized by it. A rotate ring turns by the angle the pointer sweeps around
|
|
25
|
+
it (a 30 degree sweep measured 56 to 146 degrees before).
|
|
26
|
+
- In move mode a left drag on a model or inside its box moves it on the bed; the right button and empty space orbit.
|
|
27
|
+
The right-click menu opens on release, on an object only.
|
|
28
|
+
- The arrow keys follow the gizmo's mode: 10 mm, 15 degrees, 5% (Shift 1 mm, 5 degrees, 1%), and move every selected
|
|
29
|
+
object.
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- Text placed low on a wall went under the bed, and the kernel's seat lifted the whole plate by that much (a 20 mm cube
|
|
34
|
+
sliced as 138 layers).
|
|
35
|
+
- An undo after moving a multi-selection restored pivot-relative positions and moved nothing.
|
|
36
|
+
- A copy, a duplicate and a split keep the object's filament.
|
|
37
|
+
|
|
38
|
+
## 0.4.1 — 2026-10-28
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- Up to 30 plates (was 9; upstream allows 36). A 3mf with more plates than 9 was cut to 9 on import, leaving the other
|
|
43
|
+
plates' objects where the file put them. The plate bar wraps into rows.
|
|
44
|
+
- `loadModel` accepts a `File` or `Blob`, and a 3mf goes to its parse worker unread. `preloadModel` starts a parse the
|
|
45
|
+
viewport's next load takes over, `warmLoaderFor` starts the parse workers for a file still on its way, and
|
|
46
|
+
`adoptParseWorker` takes a parse worker the host started before the bundle loaded. `three-slicer-viewer/workers`
|
|
47
|
+
exports the worker factories, and `openableExtensions()` (`three-slicer-viewer/loaders`) lists every extension the
|
|
48
|
+
viewport opens.
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- A 3mf whose meshes sit in one large part (every MakerWorld project) is read by several workers while it inflates.
|
|
53
|
+
Measured on a 51MB, 303MB-of-XML project in the browser extension: 1,241ms to the scene before, 458-502ms after.
|
|
54
|
+
- Loaded meshes are flat-shaded without a normal attribute (136MB less GPU upload on a 3.79M-facet model; a rendered
|
|
55
|
+
Benchy differs in 110 of 1,024,000 pixels, by at most 1 level).
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
|
|
59
|
+
- A 3mf object's `support_enforcer` / `support_blocker` parts were merged into the printed mesh when the object had no
|
|
60
|
+
per-volume face ranges (a 30mm enforcer cube stuck out of two objects of the Hylian Shield project and lifted them 6mm).
|
|
61
|
+
- A large plate layout drew its far plates as background: the camera's far plane was fixed at 3000mm. The depth range
|
|
62
|
+
now reaches the whole layout at the same far/near ratio.
|
|
63
|
+
- Under a Content Security Policy without `'unsafe-eval'` (a browser extension page) neither kernel loaded and every
|
|
64
|
+
setting stayed enabled. Both kernels are linked with `-s DYNAMIC_EXECUTION=0` (mt wasm byte-identical, golden
|
|
65
|
+
unchanged), and the toggle evaluator parses `enable_if` itself; `test_toggle_parity.mjs` pins it to what `Function`
|
|
66
|
+
gave over every upstream rule.
|
|
67
|
+
|
|
3
68
|
## 0.4.0 — 2026-10-24
|
|
4
69
|
|
|
5
70
|
### Removed (breaking)
|
package/data/README.md
CHANGED
|
@@ -6,7 +6,7 @@ OrcaSlicer configuration metadata extracted from the original C++ sources, shipp
|
|
|
6
6
|
|---|---|
|
|
7
7
|
| `config-schema.json` | 976 print options: type, label, category, tooltip, min/max, mode, enum values/labels, defaults, source line numbers |
|
|
8
8
|
| `config-schema-builddump.json` | Build-verified cross-check: the real `print_config_def` (817 options) dumped from a WASM compile of the original `PrintConfig.cpp` — repo-only, excluded from the npm tarball |
|
|
9
|
-
| `ui-tree.json` | Tab → page → group → option tree from `Tab.cpp` (34 pages,
|
|
9
|
+
| `ui-tree.json` | Tab → page → group → option tree from `Tab.cpp` (34 pages, 674 option references — the SLA tabs included) |
|
|
10
10
|
| `toggle-rules.json` | 231 enable/disable rules with original C++ `enable_if` condition source |
|
|
11
11
|
| `invalidation-map.json` | Option-change → re-slice step mapping (Print/PrintObject invalidation branches) |
|
|
12
12
|
| `preset-keys.json` | The option keys belonging to each preset type (`machine`/`process`/`filament`) — what `presetOptionKeys(type)` reads |
|