three-slicer 0.2.0 → 0.2.1
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 +0 -1
- package/engine/README.md +2 -2
- package/engine/src/settings.js +7 -0
- package/engine/src/slicer_core.js +0 -0
- package/engine/src/slicer_core.mt.js +0 -0
- package/package.json +1 -1
- package/viewer/README.md +2 -2
package/README.md
CHANGED
|
@@ -436,7 +436,6 @@ not cover fails with a stable error instead of silently producing something else
|
|
|
436
436
|
| --- | --- |
|
|
437
437
|
| `SLA_UNSUPPORTED_HOLLOWING` | `hollowing_enable` or drain holes — a solid slice answered to a hollow request would be a mislabeled print |
|
|
438
438
|
| `SLA_UNSUPPORTED_ORGANIC` | organic support trees |
|
|
439
|
-
| `SLA_PAD_AROUND_OBJECT_UNSUPPORTED` | zero-elevation pad embedding (`pad_around_object`) |
|
|
440
439
|
|
|
441
440
|
`SLA_CAPABILITIES` (exported from `three-slicer/client`) is the machine-readable capability map. A `.3mf`
|
|
442
441
|
carrying SLA records survives round-trip regardless: manual support points and drain holes are preserved on
|
package/engine/README.md
CHANGED
|
@@ -358,7 +358,7 @@ Results carry the split: `stats.filament_mm_by_tool` (indexed by tool number, on
|
|
|
358
358
|
## SLA parameters
|
|
359
359
|
|
|
360
360
|
The table above is the FFF kernel's reader. The SLA entry (`slice_sla`) reads its own parameter set, produced
|
|
361
|
-
by `deriveSlaParams(settings)` — unlike `deriveKernelParams` it always emits every key (
|
|
361
|
+
by `deriveSlaParams(settings)` — unlike `deriveKernelParams` it always emits every key (54 today), filling
|
|
362
362
|
schema/reference-machine defaults, because the SLA keys are not shared with another technology whose defaults
|
|
363
363
|
could disagree. The groups:
|
|
364
364
|
|
|
@@ -368,7 +368,7 @@ could disagree. The groups:
|
|
|
368
368
|
| Display (doubles as the bed) | `display_width/height`, `display_pixels_x/y`, `display_orientation` (portrait default), `display_mirror_x/y`, `bed_width/depth` |
|
|
369
369
|
| Archive identity (config.ini) | `printer_model`, `printer_variant`, `printer_settings_id`, `sla_print_settings_id`, `sla_material_settings_id`, `material_print_speed` |
|
|
370
370
|
| Supports (upstream `SupportTreeConfig`) | `supports_enable`, `support_tree_type`, `support_pillar_diameter`, `support_head_*`, `support_points_density_relative`, `support_critical_angle`, `support_max_bridge_length`, `support_max_pillar_link_distance`, `support_base_*`, `support_small_pillar_diameter_percent`, `support_pillar_widening_factor`, `support_max_bridges_on_pillar`, `support_max_weight_on_model`, `support_object_elevation`, `support_pillar_connection_mode`, `support_buildplate_only`, `slice_closing_radius` |
|
|
371
|
-
| Pad (upstream `PadConfig`) | `pad_enable`, `pad_brim_size`, `pad_wall_thickness`, `pad_wall_height`, `pad_wall_slope`, `pad_max_merge_distance`, `pad_around_object` (
|
|
371
|
+
| Pad (upstream `PadConfig`) | `pad_enable`, `pad_brim_size`, `pad_wall_thickness`, `pad_wall_height`, `pad_wall_slope`, `pad_max_merge_distance`, `pad_around_object` (embed — forces zero elevation), `pad_around_object_everywhere`, `pad_object_gap`, `pad_object_connector_width/stride/penetration` |
|
|
372
372
|
| Capability gate | `hollowing_enable` — `true` is refused with `SLA_UNSUPPORTED_HOLLOWING`, never sliced solid |
|
|
373
373
|
|
|
374
374
|
The result has no G-code: `stats.sla` is `true`, layers carry the same stride-8 segment stream, `support_mesh`
|
package/engine/src/settings.js
CHANGED
|
@@ -688,6 +688,13 @@ export function deriveSlaParams(settings) {
|
|
|
688
688
|
pad_wall_slope: num('pad_wall_slope', 90),
|
|
689
689
|
pad_max_merge_distance: num('pad_max_merge_distance', 50),
|
|
690
690
|
pad_around_object: !!settingRaw(settings, 'pad_around_object'),
|
|
691
|
+
// Embed mode (upstream PadConfig::EmbedObject): the ring's gap and the connector sticks that keep the
|
|
692
|
+
// object attached to the pad. Read even when embed is off — the kernel ignores them then.
|
|
693
|
+
pad_around_object_everywhere: !!settingRaw(settings, 'pad_around_object_everywhere'),
|
|
694
|
+
pad_object_gap: num('pad_object_gap', 1),
|
|
695
|
+
pad_object_connector_width: num('pad_object_connector_width', 0.5),
|
|
696
|
+
pad_object_connector_stride: num('pad_object_connector_stride', 10),
|
|
697
|
+
pad_object_connector_penetration: num('pad_object_connector_penetration', 0.3),
|
|
691
698
|
}
|
|
692
699
|
}
|
|
693
700
|
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "three-slicer",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Browser/WASM 3D-printing slicer reverse-engineered from OrcaSlicer: slicing engine (Arachne walls, tree/grid supports, multi-material), SLA resin slicing with PrusaSlicer's ported support/pad chain and .sl1 export, React viewer with GPU toolpath preview, and schema-driven settings UI.",
|
|
5
5
|
"license": "AGPL-3.0-or-later",
|
|
6
6
|
"type": "module",
|
package/viewer/README.md
CHANGED
|
@@ -68,8 +68,8 @@ Every panel can be switched off, and the values the component owns can be seeded
|
|
|
68
68
|
`printer_technology` says SLA swaps the filament card (and the prime tower, and the painting brushes) for the
|
|
69
69
|
resin card, and slicing routes to the kernel's `slice_sla` — PrusaSlicer's ported support/pad chain — with an
|
|
70
70
|
`.sl1` export instead of G-code (portrait masks, like every SL1-family machine). The preview lifts the model by
|
|
71
|
-
`stats.lift_layers` (pad + elevation), and a request the port does not cover (hollowing, organic trees
|
|
72
|
-
|
|
71
|
+
`stats.lift_layers` (pad + elevation), and a request the port does not cover (hollowing, organic trees)
|
|
72
|
+
surfaces as a typed error instead of a wrong print.
|
|
73
73
|
- **`gcode`** — G-code text drawn on the selected plate instead of a slice result. `parseGcode` recovers roles from
|
|
74
74
|
`;TYPE:` (OrcaSlicer/PrusaSlicer/Cura), from `;_EXTRUSION_ROLE:` tags and from this kernel's own feature comments;
|
|
75
75
|
bead width comes from `;WIDTH:` or, absent that, from E. What the file never states cannot be recovered: an
|