diff --git a/docs/wiki/Assemble-tool.md b/docs/wiki/Assemble-tool.md new file mode 100644 index 000000000000..44fd596ed71c --- /dev/null +++ b/docs/wiki/Assemble-tool.md @@ -0,0 +1,58 @@ +# Assemble tool and Auto-fit + +## What it is + +EdgeSlicer adds stronger **assembly** and **auto-fit** tools so multi-part models can be mated and merged for printing without juggling them by hand. + +Two related entry points: + +- **Auto-Fit Assembly** (object / selection menu) — right-click a multi-selection: the largest part stays fixed; the rest mate to it by matching faces, holes, and pegs; everything merges into one print-ready object. +- **Assemble tool → Auto-fit** — pick one feature on each part, press Auto-fit, nudge with live **Rotate / Offset** sliders, then **Merge parts**. + +New assembly modes include **Triangle and triangle** and **Curve and curve**. **Point and point** snaps to vertices at any zoom and has one-click **Coincide points**. + +## Where to find it + +- Prepare view → **Assemble** tool (toolbar / assembly tools) +- Right-click a **multi-selection** → **Auto-Fit Assembly** (or equivalent assembly command) +- Screenshot: `docs/images/assembly.png` (assembly modes, curve-and-curve mate, Auto-fit, Rotate / Offset, Merge parts) + +## How to use it + +### Auto-Fit Assembly (selection) + +1. Select multiple parts that should become one object. +2. Right-click → **Auto-Fit Assembly**. +3. Review the result: largest part fixed; others mated by faces / holes / pegs and merged. + +### Assemble tool → Auto-fit + +1. Open the **Assemble** tool. +2. Choose an assembly mode (including **Triangle and triangle**, **Curve and curve**, or **Point and point**). +3. Pick one feature on each part (flat face, circular rim, a single triangle, or a curved patch). For Point and point, use **Coincide points** when you want a one-click snap. +4. Press **Auto-fit**. +5. Nudge with the live **Rotate / Offset** sliders. +6. Press **Merge parts** when the mate looks right. + +Rotation is chosen by outline fit **and** a whole-mesh collision check, so pegs seat square without intersecting. + +### Related assembly helpers + +- **Assemble Separately / Separate** — pull parts out of an assembly in place +- **Merge into Single Part** — merge while keeping paint and seam annotations + +## Limits / notes + +| Situation | What happens | +|---|---| +| Poor feature picks | Auto-fit may not find a clean mate — try another mode or feature. | +| Collision check | Favours mates that do not intersect; adjust Rotate / Offset if needed. | +| Upstream face-and-face snapping | Edge also carries fixes so face-and-face picking uses the facet under the cursor again. | + +For cut-plane joints instead of assembly mates, see [Flexi joints and Cut tool](Flexi-joints). + +## Related + +- [Auto-Fit Assembly](Auto-Fit-Assembly) — same selection-based flow called out on the Home index +- [Flexi joints and Cut tool](Flexi-joints) +- [Home](Home) diff --git a/docs/wiki/Auto-Fit-Assembly.md b/docs/wiki/Auto-Fit-Assembly.md new file mode 100644 index 000000000000..95d97a8b97ae --- /dev/null +++ b/docs/wiki/Auto-Fit-Assembly.md @@ -0,0 +1,30 @@ +# Auto-Fit Assembly + +## What it is + +**Auto-Fit Assembly** mates a multi-selection into one print-ready object: the largest part stays fixed, the rest mate by matching faces, holes, and pegs, then everything merges. + +For feature-pick Auto-fit inside the Assemble tool (Triangle/Curve/Point modes, Rotate / Offset, Merge parts), see [Assemble tool and Auto-fit](Assemble-tool). + +## Where to find it + +- Object list / Prepare view → select multiple parts → right-click → **Auto-Fit Assembly** + +## How to use it + +1. Select the parts that should become one object. +2. Right-click → **Auto-Fit Assembly**. +3. Check that the largest part stayed fixed and the others seated on faces / holes / pegs. +4. Slice or continue editing the merged object. + +## Limits / notes + +| Situation | What happens | +|---|---| +| Ambiguous geometry | Mating may need the Assemble tool’s feature-pick Auto-fit instead. | +| Paint / seams | Prefer **Merge into Single Part** when you need annotations preserved — see [Assemble tool](Assemble-tool). | + +## Related + +- [Assemble tool and Auto-fit](Assemble-tool) +- [Home](Home) diff --git a/docs/wiki/Bake-slice-to-mesh.md b/docs/wiki/Bake-slice-to-mesh.md new file mode 100644 index 000000000000..215386d3c039 --- /dev/null +++ b/docs/wiki/Bake-slice-to-mesh.md @@ -0,0 +1,47 @@ +# Bake slice to mesh + +> Staging: available on `feat/ultra-preferences`. Not on `main` yet. + +## What it is + +**Bake slice to mesh...** rebuilds the object as the **outer wall the slicer will actually print**, so you can re-slice that mesh at another layer height (or export it). + +It uses the current slice’s extrusion paths (including fuzzy skin), not a separate “smooth contour only” path in the live UI. + +## Where to find it + +- Prepare **object** context menu → **Bake slice to mesh...** +- Object list object row or canvas right-click on a full object / instance + +**Not** on the part menu, multi-selection menus, or Assemble view. + +**Enable gate:** exactly one object, and the plate must already be sliced through perimeters (`can_bake_slice_to_mesh` / `slice_bake_available`). + +## How to use it + +1. Slice the plate so perimeters exist for the object. +2. Right-click the object → **Bake slice to mesh...** +3. In the **Bake slice to mesh** dialog: + - **Result:** Replace object / Add as new object / Export STL... + - **Resolution** (mm) + - **Smooth vertical steps** + - **Close small gaps** / **Gap radius** +4. Confirm with **Bake**. + +Tooltip: *Rebuild this object as the outer wall the slicer will actually print, so it can be re-sliced at another layer height.* + +## Limits / notes + +| Situation | What happens | +|---|---| +| Not sliced yet / no perimeters | Menu item stays disabled. | +| Multi-object or part selection | Bake is not offered. | +| Contour vs extrusion UI | Dialog can build contour options, but live UI uses **extrusion paths** (fuzzy skin included). | +| vs SVG/text gizmo **Bake** | Different feature — gizmo Bake only drops SVG/text editability into an uneditable part. | + +## Related + +- [Object menu](Object-menu) +- [Repair/Remesh](Repair-Remesh) +- [Quad remesh](Quad-remesh) +- [Home](Home) diff --git a/docs/wiki/Compare-Slices.md b/docs/wiki/Compare-Slices.md new file mode 100644 index 000000000000..20349c53fe87 --- /dev/null +++ b/docs/wiki/Compare-Slices.md @@ -0,0 +1,42 @@ +# Compare Slices + +## What it is + +**Compare Slices** diffs two slices (or sliced files) so you can see what changed between them: **settings**, **time** and **filament** estimates, plus a **per-layer toolpath** comparison. + +Use it when you tweak a preset or project and want a clear before/after without guessing from memory. + +## Where to find it + +- **View** menu → **Compare Slices** +- Screenshot in the repo: `docs/images/compare-slices.png` (time and filament deltas, changed settings, per-layer toolpath overlay) + +## How to use it + +1. Produce the first slice (or keep a sliced file you already have). +2. Change settings or the model as needed and slice again — or pick a second sliced file. +3. Open **View → Compare Slices**. +4. Choose the two slices / sliced files to compare. +5. Review: + - which **settings** differ + - **time** and **filament** deltas + - the **per-layer toolpath** overlay for path-level differences +6. Use that to decide whether the change is worth keeping, or to document a regression. + +## Limits / notes + +| Situation | What happens | +|---|---| +| You only have one slice | You need a second slice or sliced file to compare against. | +| Large projects | Per-layer overlays can be dense — focus on layers or regions that matter for the change. | +| Upstream Orca | This is an EdgeSlicer workflow feature; stock Orca does not ship the same Compare Slices window. | + +Other notes: + +- Comparing a slice to a saved sliced file is useful for “what did this release / preset change?” checks. +- Pair with [Preferences → Extras](Preferences-Extras) habits (for example Auto-Save) when you want an easy trail of project states to re-open and re-slice. + +## Related + +- [Preferences → Extras](Preferences-Extras) — Edge-only preferences (project, presets, archive, …) +- [Home](Home) — EdgeSlicer wiki index diff --git a/docs/wiki/Edge-Hub.md b/docs/wiki/Edge-Hub.md new file mode 100644 index 000000000000..1285bdf5a98b --- /dev/null +++ b/docs/wiki/Edge-Hub.md @@ -0,0 +1,40 @@ +# Edge Hub overview + +## What it is + +**Edge Hub** is the same EdgeSlicer binary run as a **tray-only background process**. It serves the phone page and camera relays. Any slicer window can start it, and it keeps running after you close those windows. + +Through the hub you get LAN phone access (QR / token link), optional remote access over Tailscale, printer event notifications, hidden slicer windows for phone-driven slice/send, and the control surfaces that only answer on loopback. + +## Where to find it + +- System tray → Edge Hub (balloon / menu) +- Hub page (loopback only) — phone QR, notifications card, window / hidden-instance controls +- Preferences → Extras → **Phone access** (related options; see [Preferences → Extras](Preferences-Extras)) + +## How to use it + +1. Start EdgeSlicer as usual — a slicer window starts the hub if it is not already running. +2. Open the hub from the tray when you need the phone QR, notification destinations, or window controls. +3. Enable **phone access on the LAN**, scan the **QR code**, and use the phone page (`http://:13640/r//`) for Streams, Prepare, Devices, and Reprints. Details: [Phone access](Phone-access). +4. Optionally set up **Tailscale remote access** for HTTPS away from home. Details: [Remote access (Tailscale)](Remote-access-Tailscale). +5. Configure **notifications** on the hub page’s Notifications card. Details: [Printer event notifications](Printer-notifications). +6. Let the hub open further slicer windows, including **hidden** ones (no desktop window) so the phone can slice and send without UI on the PC. A hidden instance that would have raised a dialog flags *needs attention* on the hub page and in the tray menu; you can toggle hidden ↔ visible either way. + +## Limits / notes + +| Situation | What happens | +|---|---| +| Hub page / tray control plane | Answers only on **loopback** — no tunnel reaches the control plane. | +| Phone link | Token-gated; survives restarts. **New link** rotates the token and invalidates saved links and home-screen icons. | +| Firewall (Windows installer) | Adds a rule for **TCP 13640** for the hub. | +| Closing slicer windows | Hub can keep running in the tray. | + +## Related + +- [Phone access and the companion app](Phone-access) +- [Remote access (Tailscale)](Remote-access-Tailscale) +- [Printer event notifications](Printer-notifications) +- [Store G-Code Files](Store-G-Code-Files) — archive used by phone Reprints +- [Stream tab](Stream-tab) — desktop camera wall; shares phone link / QR concepts +- [Home](Home) diff --git a/docs/wiki/Edit-cut.md b/docs/wiki/Edit-cut.md new file mode 100644 index 000000000000..b805092b181f --- /dev/null +++ b/docs/wiki/Edit-cut.md @@ -0,0 +1,50 @@ +# Edit cut and Copy cut + +> Staging: available on `feat/ultra-preferences`. Not on `main` yet. + +## What it is + +When an object still has a **stored cut recipe** from the Cut tool: + +- **Edit cut...** — reopen that cut in the Cut gizmo so you can change it +- **Copy cut to...** — submenu of other objects; set the same cut up on another object, ready to cut it the same way + +These sit near **Invalidate cut info** on the object menu. + +## Where to find it + +- Object menu → **Edit cut...** (only if `has_selected_editable_cut()`) +- Object menu → **Copy cut to...** → pick another object (only if the cut is copyable) + +## How to use it + +### Edit cut + +1. Select an object produced (or still holding) an editable cut. +2. Right-click → **Edit cut...** +3. Adjust the cut in the Cut gizmo (plane, Flexi joints, thickness, etc.). +4. Apply when done. + +Tooltip: *Edit the cut that produced this object.* + +### Copy cut to another object + +1. Select the object that has the cut recipe. +2. Right-click → **Copy cut to...** → choose the target object. +3. Cut the target with the same setup. + +Tooltip: *Set this cut up on another object, ready to cut it the same way.* + +## Limits / notes + +| Situation | What happens | +|---|---| +| No stored editable cut | Edit cut is not shown. | +| Invalidate cut info | Clears cut metadata (already on `main`); after that, Edit/Copy may no longer apply. | +| Flexi joints / curved cut | See [Flexi joints](Flexi-joints). | + +## Related + +- [Flexi joints and Cut tool](Flexi-joints) +- [Object menu](Object-menu) +- [Home](Home) diff --git a/docs/wiki/Fill-bed-with-copies.md b/docs/wiki/Fill-bed-with-copies.md new file mode 100644 index 000000000000..4d2d89bf021d --- /dev/null +++ b/docs/wiki/Fill-bed-with-copies.md @@ -0,0 +1,44 @@ +# Fill bed with copies + +## What it is + +**Fill bed with copies** packs as many copies of the selection as will fit on the current plate, using a dialog for gaps, margins, rotation, and layout mode. + +It fills around objects already on the plate. **Grid** lays an exact regular block; **Compact** packs more tightly (Edge’s compact pack no longer gives up early and leaves empty strips). Filling plate 2 or later puts copies on that plate. + +## Where to find it + +- Object menu → **Fill bed with copies** +- Object menu → **Clone** (`Ctrl+K`) → dialog button **Fill** (tooltip “Fill bed with copies”) + +Entry also sits under Clone in the object menu family described in [Object menu](Object-menu). + +## How to use it + +1. Select the object (or instance) you want to duplicate across the bed. +2. Choose **Fill bed with copies**, or open **Clone** and click **Fill**. +3. In the dialog set: + - **Minimum gap between copies** + - **Allow rotation** (on/off) + - **Layout**: Compact or Grid + - **Minimum distance from bed edge** + - Optional **Keep the front edge clear** / **Distance from the front edge** (calibration-line margin) + - **Ignore support clearance** (staging on `feat/ultra-preferences` — not on `main` yet) +4. Confirm with **Fill**. +5. Check the live count / arrangement on the plate, then slice. + +## Limits / notes + +| Situation | What happens | +|---|---| +| Objects already on the plate | Fill packs around them. | +| Grid layout | Exact regular block; hardware validation of Grid is still listed as unchecked by the maintainer — verify the first print. | +| Ignore support clearance | Staging only — packing can ignore support clearance; warnings may mention support clearance instead of always blaming brim. | +| Compact layout | Improved vs early bail-out that left empty strips. | +| Plate 2+ | Copies go on the active / chosen later plate. | + +## Related + +- [Scale to build volume](Scale-to-build-volume) +- [Object menu](Object-menu) +- [Home](Home) diff --git a/docs/wiki/Flexi-joints.md b/docs/wiki/Flexi-joints.md new file mode 100644 index 000000000000..d4fb57844dd4 --- /dev/null +++ b/docs/wiki/Flexi-joints.md @@ -0,0 +1,62 @@ +# Flexi joints and Cut tool + +## What it is + +EdgeSlicer extends the **Cut tool** so you can join the halves of a cut part with a **print-in-place Flexi joint** instead of a plug: double ring, ball and socket, chain link, hinge (chosen knuckle count, halves can fold shut), screw-top **thread**, or quarter-turn **bayonet** lock. + +The cut plane can also bend into a **curved cut**, and flat or curved cuts can remove a **cut thickness** (kerf) so reassembled halves leave room for glue or a joint. + +Joints survive saving and reopening a project. The slicer warns when a gap-closing setting would fuse them. + +## Where to find it + +- Prepare view → **Cut tool** (toolbar / object manipulation) +- In the Cut tool UI: Flexi joint type and clearance, curved-cut controls, cut thickness / kerf options +- Assembly-related screenshots: `docs/images/assembly.png` in the repo (assemble modes; Flexi/cut behaviour is in the Cut tool itself) + +## How to use it + +### Add a Flexi joint on a cut + +1. Select the part and open the **Cut tool**. +2. Place the cut (flat or curved — see below). +3. Choose a **Flexi joint** instead of a plug: double ring, ball and socket, chain link, hinge, thread, or bayonet. +4. Set **clearance** and orient the joint to suit the part. +5. For a **hinge**, set the number of knuckles; the halves can fold shut after printing. +6. Apply the cut. Keep both halves; connectors (including Flexi joints) sit on the cut surface. +7. Save the project if you need the joint to persist across sessions. + +### Curved cut + +1. In the Cut tool, bend the cut plane into a **curved sheet**. +2. Drag control points; right-click-drag to snap them to the model. +3. Set density as needed. +4. Set each half to **Visible**, **Ghost**, or **Hidden** so you can read the result from both sides. +5. Both halves are always kept. Connectors and Flexi joints sit on the curved surface. + +### Cut thickness (kerf) + +1. For a flat or curved cut, set a non-zero **cut thickness** to remove a slab of material. +2. Centre it on, above, or below the cut as needed (glue gap or joint clearance). +3. Connectors grow to span the gap. +4. Leave thickness at **zero** (default) for a normal zero-kerf cut. + +## Limits / notes + +| Situation | What happens | +|---|---| +| Gap-closing settings that would fuse the joint | Slicer **warns** — check clearance / related settings before printing. | +| Project reopen | Flexi joints are preserved with the project. | +| Hardware validation | Curved cut and Flexi joints (including thread and bayonet) are listed as **not yet printed on hardware by the maintainer** — check the first print carefully. | +| Zero cut thickness | Behaviour matches a normal cut (no kerf). | + +Other notes: + +- Prefer Flexi joints when you want print-in-place articulation or a lock without a separate plug. +- Use cut thickness when glue or joint clearance needs a gap between halves. + +## Related + +- [Assemble tool and Auto-fit](Assemble-tool) — mate features and merge parts +- [Auto-Fit Assembly](Auto-Fit-Assembly) — multi-selection face/hole/peg mating +- [Home](Home) — EdgeSlicer wiki index diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md new file mode 100644 index 000000000000..af5d5c9f9477 --- /dev/null +++ b/docs/wiki/Home.md @@ -0,0 +1,129 @@ +# Welcome to the EdgeSlicer Wiki + +EdgeSlicer is an OrcaSlicer-based slicer (via Snapmaker Orca) with bleeding-edge features aimed at supporting many printers in one app. + +Some Prepare-menu features (Bake slice to mesh, Quad remesh, Round all edges, Edit/Copy cut) are documented from staging branch `feat/ultra-preferences` and may not be on `main` yet. + +This wiki explains **EdgeSlicer-specific** features: what each one is, where to find it, and how to use it. For settings that come from upstream OrcaSlicer unchanged, use the [OrcaSlicer Wiki](https://www.orcaslicer.com/wiki/). + +**Current release:** [v2.3.8.0-edge](https://github.com/aceRage/EdgeSlicer/releases/tag/v2.3.8.0-edge) · [GitHub](https://github.com/aceRage/EdgeSlicer) · [Releases](https://github.com/aceRage/EdgeSlicer/releases) + +--- + +## What is Edge-only? + +These areas are custom to EdgeSlicer (or heavily extended here). Each page follows the same short shape: **What it is**, **Where to find it**, **How to use it**, and **Limits / notes**. + +### Support + +| Page | What it covers | +|---|---| +| [Support sets and groups](Support-sets-and-groups) | Named support presets, per-part support groups, the Groups window | +| [Over-support surfaces](Over-support-surfaces) | Bottom/wall faces over support printed like walls, not bridges | + +### Edge Hub (phone and remote) + +| Page | What it covers | +|---|---| +| [Edge Hub overview](Edge-Hub) | Tray hub, phone page, QR / token link, hidden slicer windows | +| [Phone access and the companion app](Phone-access) | LAN phone UI, iOS/Android app, Reprints | +| [Remote access (Tailscale)](Remote-access-Tailscale) | HTTPS link, allow-list, home vs away | +| [Printer event notifications](Printer-notifications) | Tray, Web Push, Pushover, webhooks, native app push | +| [Store G-Code Files](Store-G-Code-Files) | Archive of sent G-code, retention, phone Reprints | + +### Multicolor and materials + +| Page | What it covers | +|---|---| +| [Support Filament Matching](Support-Filament-Matching) | Supports/interfaces/brims in the colour of the surface they touch | +| [Outer wall filament](Outer-wall-filament) | Separate filament for outer walls | +| [Paint depth](Paint-depth) | Bound painted multi-material claims by walls or distance | +| [Split by painted colour](Split-by-painted-colour) | Painted regions → separate parts | +| [Spool Manager (Spoolman)](Spool-Manager) | Inventory, slot bindings, usage deduction | + +### Assembly and modeling + +| Page | What it covers | +|---|---| +| [Auto-Fit Assembly](Auto-Fit-Assembly) | Mate multi-selection by faces / holes / pegs | +| [Assemble tool and Auto-fit](Assemble-tool) | Feature pick, rotate/offset, merge | +| [Flexi joints and Cut tool](Flexi-joints) | Print-in-place joints, curved cut, cut thickness | +| [glTF / GLB import](glTF-import) | Meshes, materials, vertex colours, textures | +| [Sculpt](Sculpt) | Brush sculpting on the Prepare toolbar | +| [Image Fill](Image-Fill) | Project an image onto a part; optional dithering | +| [Fill bed with copies](Fill-bed-with-copies) | Compact / grid packing dialog | +| [Scale to build volume](Scale-to-build-volume) | Fit an object to the bed with gaps | +| [Visibility (Normal / Ghost / Hidden)](Visibility) | Eye column; Ghost X-ray; Hidden still slices | + + +### Object / part context menu + +| Page | What it covers | +|---|---| +| [Object and part context menus](Object-menu) | Edge right-click map (object, part, multi-select) | +| [Fill bed with copies](Fill-bed-with-copies) | Compact/Grid pack dialog; also Clone → Fill | +| [Scale to build volume](Scale-to-build-volume) | Fit to bed with gaps and centre | +| [Repair/Remesh](Repair-Remesh) | OpenVDB watertight remesh; staging dialog | +| [Bake slice to mesh](Bake-slice-to-mesh) | Staging — bake sliced outer wall to mesh | +| [Quad remesh](Quad-remesh) | Staging — QuadriFlow quad remesh | +| [Round all edges](Round-all-edges) | Staging — fillet all edges | +| [Edit cut and Copy cut](Edit-cut) | Staging — edit/copy stored cut recipe | +| [Split by painted colour](Split-by-painted-colour) | Paint regions → separate parts | + +### Print quality + +| Page | What it covers | +|---|---| +| [Process settings (Edge overview)](Process-settings) | Map of Edge process tweaks vs upstream Orca | +| [Offset layers](Offset-layers) | Interlocking odd walls (experimental) | +| [Z contouring](Z-contouring) | Smooth shallow top staircasing (Edge notes) | +| [Locked Zag infill](Locked-Zag-infill) | Separate skin/skeleton patterns; skin follows surface | +| [Fuzzy skin (Edge notes)](Fuzzy-skin) | Unfuzz overhangs; width floor | + +### Workflow and devices + +| Page | What it covers | +|---|---| +| [Preferences → Extras](Preferences-Extras) | Project, presets, Bambu Network, Spoolman, phone, G-code archive | +| [Compare Slices](Compare-Slices) | Diff two slices: settings, time, filament, toolpaths | +| [Stream tab](Stream-tab) | Multi-camera wall (Snapmaker, Moonraker, Bambu LAN, RTSP/ONVIF) | +| [Devices list](Devices) | Multiple printers of the same model as separate entries | +| [Bambu Lab in EdgeSlicer](Bambu-Lab) | Profiles, LAN send, dual-nozzle, mixed nozzles, status | + +### Getting started + +| Page | What it covers | +|---|---| +| [Download and install](Download-and-install) | Windows / Linux / macOS packages, side-by-side with Snapmaker Orca | +| [Data directory and migration](Data-directory) | `%APPDATA%\EdgeSlicer`, legacy UltraOne / Snapmaker_Orca copy | +| [Supported printers](Supported-printers) | Snapmaker, Bambu, Flashforge, Orca vendor library — status table | +| [Lineage and licence](Lineage) | Fork chain, AGPL-3.0, what is / is not redistributed | + +--- + +## How pages are written + +Every feature page aims to answer: + +1. **What it is** — one short paragraph. +2. **Where to find it** — menu, tab, or right-click path. +3. **How to use it** — the usual steps, not every edge case. +4. **Limits / notes** — what it will not do, and when stock Orca behaviour still applies. + +Screenshots live under `docs/images/` in the repo when a page needs them. + +--- + +## Upstream documentation + +EdgeSlicer keeps Snapmaker Orca / OrcaSlicer behaviour for shared settings. Prefer: + +- [OrcaSlicer Wiki](https://www.orcaslicer.com/wiki/) — printer, material, and process settings +- [OrcaSlicer Calibration Guide](https://www.orcaslicer.com/wiki/guides/calibration_guide) + +--- + +## Contributing + +Bug reports and feature requests: [GitHub Issues](https://github.com/aceRage/EdgeSlicer/issues). +Wiki edits: keep Edge-only pages here; do not duplicate full upstream setting docs. Prefer the same concise “what / how used” shape as the pages above. diff --git a/docs/wiki/Object-menu.md b/docs/wiki/Object-menu.md new file mode 100644 index 000000000000..bc4f0b9865e0 --- /dev/null +++ b/docs/wiki/Object-menu.md @@ -0,0 +1,86 @@ +# Object and part context menus (Edge) + +## What it is + +Prepare-view **right-click** menus on the object list and 3D canvas share the same Edge-aware builders. This page is the map of **Edge-only or heavily extended** items. Stock Orca / Snapmaker items (Simplify, Mesh boolean, Center, Drop, Mirror, Delete, Add part, …) stay on those menus but are documented upstream. + +Menus are built in `GUI_Factories` (`MenuFactory`). Object-list and canvas right-click both use them. + +## Where to find it + +- Object list → right-click an **object** row or a **part** row +- 3D Prepare view → right-click the selection +- Multi-select objects or parts for the multi-selection menus + +Related (not a menu item): the object-list **eye** column cycles Normal → Ghost → Hidden. See [Visibility](Visibility). + +## How to use it (Edge highlights) + +### Object menu (one object) + +| Item | What it does | Page | +|---|---|---| +| **Clone** (`Ctrl+K`) | Opens Clone dialog (copy count, auto-arrange). **Fill** runs fill-bed. | [Fill bed with copies](Fill-bed-with-copies) | +| **Fill bed with copies** | Pack copies onto the remaining bed (compact or grid). | [Fill bed with copies](Fill-bed-with-copies) | +| **Visibility** | Normal / Ghost / Hidden / Show all objects. | [Visibility](Visibility) | +| **Support groups...** | Opens the Support groups window for this object. | [Support sets and groups](Support-sets-and-groups) | +| **Repair/Remesh** | OpenVDB voxel remesh → watertight mesh (all platforms). | [Repair/Remesh](Repair-Remesh) | +| **Fix model** | Stock Netfabb repair (Windows 10+ only). | — | +| **Apply image fill...** | Project an image onto the object with allowed filaments. | [Image Fill](Image-Fill) | +| **Scale to build volume** | Fit to bed with gaps / centre options. | [Scale to build volume](Scale-to-build-volume) | +| **Split ▸ By painted colour** | MMU paint → solid parts per filament. | [Split by painted colour](Split-by-painted-colour) | + +### Part menu (one part / volume) + +Live builder is the BBL part menu (not the unused alternate part menu). + +| Item | What it does | Page | +|---|---|---| +| **Repair/Remesh** | Same voxel remesh. | [Repair/Remesh](Repair-Remesh) | +| **Visibility** | Normal / Ghost / Hidden for that part. | [Visibility](Visibility) | +| **Separate** | Extract this part into a new object; keep world pose. | [Assemble tool](Assemble-tool) | +| **Split ▸ By painted colour** | Same colour-split. | [Split by painted colour](Split-by-painted-colour) | +| **Support group** | Assign part(s) to a named group (None, existing, New, from set, Support groups…). | [Support sets and groups](Support-sets-and-groups) | + +**Apply image fill...** is on the **object** menu only in the live UI. A part inside a multi-part object has no Image Fill item. + +### Multi-selection + +**Several objects** + +| Item | What it does | Page | +|---|---|---| +| **Assemble** | Merge into one multi-part object (stock). | — | +| **Auto-Fit Assembly** | Largest fixed; others mate by faces/holes, then merge. | [Auto-Fit Assembly](Auto-Fit-Assembly) | +| **Repair/Remesh** | Same remesh. | [Repair/Remesh](Repair-Remesh) | +| **Visibility** | Same view modes. | [Visibility](Visibility) | + +**Several parts of one object** + +| Item | What it does | Page | +|---|---|---| +| **Assemble Separately** | Selected parts → new assembly; keep world pose. | [Assemble tool](Assemble-tool) | +| **Merge into Single Part** | Boolean-merge selected parts (keeps paint/seams intent of the Orca port). | [Assemble tool](Assemble-tool) | +| **Visibility** | Same. | [Visibility](Visibility) | +| **Support group** | Same assignment submenu. | [Support sets and groups](Support-sets-and-groups) | +| **Repair/Remesh** | Same. | [Repair/Remesh](Repair-Remesh) | +| **Split ▸ By painted colour** | Same. | [Split by painted colour](Split-by-painted-colour) | + +Assemble-view menus stay stock-like — they do **not** get Visibility, Support group, Auto-Fit, or colour-split. + +## Limits / notes + +| Situation | What happens | +|---|---| +| **Bake slice to mesh / Quad remesh / Round all edges / Edit cut** | On **`feat/ultra-preferences` (staging)** — see dedicated pages. Not on `main` yet. SVG/text gizmo **Bake** is still a different feature. | +| Hidden objects/parts | Hidden in the 3D view but **still slice/print**. | +| Clone | There is no Clone *submenu* — one **Clone** item opens a dialog; **Fill** inside that dialog is fill-bed. | + +## Related + +- [Fill bed with copies](Fill-bed-with-copies) +- [Scale to build volume](Scale-to-build-volume) +- [Repair/Remesh](Repair-Remesh) +- [Split by painted colour](Split-by-painted-colour) +- [Visibility](Visibility) +- [Home](Home) diff --git a/docs/wiki/Over-support-surfaces.md b/docs/wiki/Over-support-surfaces.md new file mode 100644 index 000000000000..2a21bc02d349 --- /dev/null +++ b/docs/wiki/Over-support-surfaces.md @@ -0,0 +1,50 @@ +# Over-support surfaces + +## What it is + +A bottom face resting on support is normally treated as a **bridge**, so it takes bridge flow and bridge speed and often looks different from the walls around it. + +**Over-support surfaces** (off by default) gives those faces — and the wall segments printed over support — their own surface type, extrusion role, and preview colours (*Bottom surface over support*, *Wall over support*). They print at **Over-support flow** and **Over-support speed**, so the underside can match the perimeters framing it. + +True bridges over air are unchanged. With the switch off, G-code stays byte-identical to the previous behaviour. + +## Where to find it + +- Process tab → **Support** +- **Over-support surfaces** (checkbox, off by default) +- **Over-support flow** and **Over-support speed** (when enabled) + +All three keys are **per part**, so one part in an object can use them while another does not. Works with both the classic and Arachne wall generators. + +## How to use it + +1. Enable supports for the object as usual. +2. On Process → Support, turn on **Over-support surfaces**. +3. Set **Over-support flow** as needed for the underside look. +4. Set **Over-support speed**. Use **`0`** to follow the outer wall speed so the underside matches the perimeters around it. +5. Slice and check the preview colours for *Bottom surface over support* and *Wall over support*. +6. If only some parts should use it, set the keys per part (object list / part overrides). + +## Limits / notes + +Because supports are generated **after** slicing, “is there support under this face?” is a **reconstruction** of what the support generator will do. It can **over-claim**. + +| Situation | What happens | +|---|---| +| Build-plate-only supports, small-overhang removal, sharp-tail heuristics | Not fully modelled — a fringe may print as bottom shell instead of a bridge. | +| Over-claim is wrong for you | Use a **support blocker** as the escape hatch. | +| Top Z distance is **0 mm** | Feature stands down entirely. | +| Supports off | Feature stands down. | +| Manual support types outside enforcers | Feature stands down. | +| Switch off | G-code is byte-identical to without the feature. | + +Other notes: + +- True bridges over open air are never reclassified. +- Per-part keys let you mix behaviour inside one object. + +## Related + +- [Support sets and groups](Support-sets-and-groups) — named support recipes and per-part interface groups +- [Support Filament Matching](Support-Filament-Matching) — colour-matched supports and brims +- [Home](Home) — EdgeSlicer wiki index diff --git a/docs/wiki/Preferences-Extras.md b/docs/wiki/Preferences-Extras.md new file mode 100644 index 000000000000..2716f7d6f1ca --- /dev/null +++ b/docs/wiki/Preferences-Extras.md @@ -0,0 +1,80 @@ +# Preferences → Extras + +## What it is + +EdgeSlicer’s own settings live on one **Extras** tab in Preferences, in six sections. Upstream Orca / Snapmaker Orca options stay on their usual tabs; fork-specific behaviour is collected here. + +## Where to find it + +- **Preferences** (or equivalent app settings) → **Extras** + +## How to use it + +Work through the sections that match what you need: + +### Project + +- **Auto-Save project** (with an interval) +- **Keep my printer when opening project files** +- **Skip Settings Mapping Warnings** +- **Drop imported models to the bed** +- **Bottom-referenced Z position** + +### Presets + +- **Prefer Last Used Print Profile** +- **Seamless System Filament Edits** +- **Import Bambu Studio user presets** (plus **Sync now**) + +### Bambu Network + +- Enable the network plug-in (UltraNet; bundled on Windows packages) +- **Stealth mode** (no Bambu cloud telemetry) +- Legacy plugin for old firmware + +Live view additionally needs Bambu’s own camera component (not redistributed here); the Device tab can offer to download it once. See [Bambu Lab in EdgeSlicer](Bambu-Lab). + +### Spool Manager + +- Enable [Spoolman](https://github.com/Donkie/Spoolman) +- Server URL +- Deduct filament usage when sending a print (desktop, phone, and Reprints) + +See [Spool Manager](Spool-Manager). + +### Phone access + +- **Start hidden** — serve the phone without a desktop window +- Remember Snapmaker printer certificates so the phone can connect them (**off by default**; keeps a private key at rest) + +See [Edge Hub](Edge-Hub) and [Phone access](Phone-access). + +### G-Code Archive + +- **Store G-Code Files** +- Storage folder (default `/gcode_archive`) +- **Maximum Retention** file count (default 100) + +See [Store G-Code Files](Store-G-Code-Files). + +## Limits / notes + +| Situation | What happens | +|---|---| +| Remember Snapmaker certificates | Off by default because it stores a private key at rest. | +| Store G-Code Files | Off by default; past retention, oldest records (and sidecars / previews) are deleted. | +| Bambu Network on Linux / macOS | Windows packages bundle the plug-in; Linux/macOS builds currently do not (standalone plug-in zip may be published beside releases). | + +Other notes: + +- Prefer putting new fork-only toggles on Extras rather than scattering them across upstream tabs. +- Screenshot of Auto-Save: `docs/images/options-autosave.png`. + +## Related + +- [Edge Hub](Edge-Hub) +- [Store G-Code Files](Store-G-Code-Files) +- [Spool Manager](Spool-Manager) +- [Bambu Lab in EdgeSlicer](Bambu-Lab) +- [Compare Slices](Compare-Slices) +- [Home](Home) diff --git a/docs/wiki/Process-settings.md b/docs/wiki/Process-settings.md new file mode 100644 index 000000000000..8d706c9da676 --- /dev/null +++ b/docs/wiki/Process-settings.md @@ -0,0 +1,88 @@ +# Process settings (Edge overview) + +## What it is + +EdgeSlicer keeps the usual Orca / Snapmaker Orca **process** (print) settings and adds or extends several options — especially under quality, support, and multimaterial. + +This page is the **Edge-focused map**: what we changed or added, where it lives, and when to use it. For stock settings that match upstream, use the [OrcaSlicer Wiki](https://www.orcaslicer.com/wiki/) (Quality, Strength, Speed, Support, Multimaterial, Others). + +Dedicated Edge pages (when they exist) go deeper than the short notes below. + +## Where to find it + +- Process / print preset tabs in the sidebar (Quality, Strength, Speed, Support, Multimaterial, Others) — same layout as Orca, with Edge rows mixed in +- Some multimaterial filament-for-feature options (outer wall filament, Support Filament Matching, brim nearest wall) +- Screenshot for several quality extras: `docs/images/print-quality.png` + +## How to use it (Edge highlights) + +### Quality + +| Setting | What it does | Notes | +|---|---|---| +| **[Offset layers](Offset-layers)** (experimental) | Odd-numbered walls shift by half a layer height so layers interlock (classic and Arachne). | Needs first layer height = layer height, matching top-surface and outer-wall line widths, spiral off. Slicer can offer to fix those when you enable it. | +| **[Z contouring](Z-contouring)** | Smooths staircasing on shallow tops by shaping each layer to the model. | Speed scaling keeps flow steady; works with layer cooling. Off by default; tune angle and minimum height per profile. | +| **[Locked Zag infill](Locked-Zag-infill)** | Skin and skeleton can each take their own infill pattern (as in Bambu Studio); *skin follows the surface* hugs sloped tops. | Existing profiles unchanged until you opt in; Bambu profiles that set these keys import as-is. | +| **[Fuzzy skin](Fuzzy-skin)** (Edge notes) | Overhanging wall segments can stay unfuzzed; a width floor tied to layer height avoids aborting Extrusion / Combined modes. | Prefer when fuzzy was pushing extrusion into open air or failing the slice. | +| **Seam position** | Adds **Left** and **Right** as well as Back. | Same seam UI; more compass options. | + +### Strength / walls / surfaces + +| Setting | What it does | Notes | +|---|---|---| +| **Print unsupported walls last** | Prints unsupported walls after supported ones. | Ported from Orca; useful when unsupported walls benefit from waiting. | +| **Undertop surface pattern** | Pattern control for the surface under the top shell. | Ported from Orca. | + +### Support (Edge) + +| Setting | What it does | Notes | +|---|---|---| +| **[Support sets and groups](Support-sets-and-groups)** | Named support recipes; per-part interface groups. | Edge-only. | +| **[Over-support surfaces](Over-support-surfaces)** | Bottoms/walls over support use wall-like flow/speed instead of bridge. | Off by default; per part. | +| **Z overrides X/Y** | Support option ported from Bambu Studio. | See Support advanced options. | +| **[Support Filament Matching](Support-Filament-Matching)** | Supports/interfaces/ironing/brims follow the colour they touch. | Opt-in; disabled for an object when a support group sets its own interface filament. | + +### Multimaterial / filaments + +| Setting | What it does | Notes | +|---|---|---| +| **Outer wall filament** | Separate filament for outer walls vs inner walls. | See [Outer wall filament](Outer-wall-filament). | +| **Brim filament → Nearest wall** | Each brim uses the filament of the wall it touches. | Covered under Support Filament Matching page. | +| **Paint depth** | Bound painted multi-material claims by wall count or distance. | See [Paint depth](Paint-depth). | +| **Per-filament Z offset** | Z offset per filament. | Ported from Orca. | +| **Create filament** dialog | Sorted and easier to scan. | UX only. | + +### Speed / estimates / determinism + +| Setting | What it does | Notes | +|---|---|---| +| **Machine prepare time** | Included in time estimates. | Ported from Orca. | +| **Deterministic slicing** | Slice lines sorted after the parallel pass — same project → same G-code at any thread count. | Internal bridges over Hilbert / Octagram; wipe tower footprint/placement/preview match what is printed (CLI too). | + +### Workflow tools that compare process changes + +| Tool | What it does | Notes | +|---|---|---| +| **[Compare Slices](Compare-Slices)** | Diff settings, time, filament, and per-layer toolpaths between two slices. | View menu. | + +## Limits / notes + +| Situation | What happens | +|---|---| +| Stock Orca setting, unchanged | Documented on the [OrcaSlicer Wiki](https://www.orcaslicer.com/wiki/) — this page does not duplicate it. | +| Offset layers prerequisites | Feature asks you to fix first-layer / line-width / spiral conflicts when enabled. | +| Locked Zag | Opt-in; old profiles keep prior behaviour until you change them. | +| Hardware validation | Some experimental quality features (for example Offset layers) should be checked on a first print. | +| Support base vs groups | Support *base* geometry is never per group — see Support sets and groups. | + +When in doubt: change one Edge toggle at a time and use **Compare Slices** before committing a profile. + +## Related + +- [Home](Home) — full Edge wiki index +- [Over-support surfaces](Over-support-surfaces) +- [Support sets and groups](Support-sets-and-groups) +- [Support Filament Matching](Support-Filament-Matching) +- [Compare Slices](Compare-Slices) +- [Preferences → Extras](Preferences-Extras) +- [OrcaSlicer Wiki](https://www.orcaslicer.com/wiki/) — upstream process settings diff --git a/docs/wiki/Quad-remesh.md b/docs/wiki/Quad-remesh.md new file mode 100644 index 000000000000..6ac534e189bb --- /dev/null +++ b/docs/wiki/Quad-remesh.md @@ -0,0 +1,42 @@ +# Quad remesh + +> Staging: available on `feat/ultra-preferences` (builds with QuadriFlow). Not on `main` yet. + +## What it is + +**Quad remesh...** rebuilds selected parts as an **even grid of quads** at a target face count. Needs a **closed** mesh. The part is stored as triangles (two per quad). Painted supports, seams, and colours are **cleared**. + +## Where to find it + +- Object / part / multi-selection menus → next to **Repair/Remesh** → **Quad remesh...** +- Hidden when QuadriFlow is not in the build (`quad_remesh_available()`) +- Also: **Sculpt** gizmo panel → **Quad remesh...** (same action) + +## How to use it + +1. Select a closed part (or object / multi-selection that includes remeshable parts). +2. Right-click → **Quad remesh...** (or use the Sculpt panel button). +3. In the **Quad remesh** dialog: + - **Target faces** + - **Preserve sharp features** +4. Confirm with **Remesh**. +5. Re-apply paint/seams if you still need them. + +Tooltip: *Rebuild the selected parts as an even grid of quads at a target face count (needs a closed mesh).* + +## Limits / notes + +| Situation | What happens | +|---|---| +| Open / non-manifold mesh | Refused with *This part cannot be quad remeshed:* + reason. | +| Paint / seams / colours | Cleared by remesh. | +| vs Repair/Remesh | Repair/Remesh = OpenVDB triangle voxel remesh. Quad remesh = QuadriFlow quad grid. | +| Build without QuadriFlow | Menu item hidden. | + +## Related + +- [Repair/Remesh](Repair-Remesh) +- [Round all edges](Round-all-edges) +- [Object menu](Object-menu) +- [Sculpt](Sculpt) +- [Home](Home) diff --git a/docs/wiki/README.md b/docs/wiki/README.md new file mode 100644 index 000000000000..f82c74113321 --- /dev/null +++ b/docs/wiki/README.md @@ -0,0 +1,3 @@ +# EdgeSlicer wiki + +Start at [Home.md](Home.md). diff --git a/docs/wiki/Repair-Remesh.md b/docs/wiki/Repair-Remesh.md new file mode 100644 index 000000000000..fe283bfba793 --- /dev/null +++ b/docs/wiki/Repair-Remesh.md @@ -0,0 +1,56 @@ +# Repair/Remesh + +## What it is + +**Repair/Remesh** rebuilds a part (or object) as a **watertight** mesh using an OpenVDB **voxel** remesh (triangle output). Fine detail may be lost depending on voxel size. + +It is Edge’s cross-platform repair path. Stock Snapmaker/Orca on Windows also keeps **Fix model** (Netfabb); Remesh is shown on all platforms. + +On **`feat/ultra-preferences` (staging)**, Remesh opens a **Repair by remeshing** dialog instead of running immediately (as on `main`). + +This is **not** [Quad remesh](Quad-remesh). + +## Where to find it + +- Object menu → **Repair/Remesh** +- Part menu → **Repair/Remesh** +- Multi-selection menus → **Repair/Remesh** + +On staging, the same helper also offers **[Round all edges...](Round-all-edges)** and **[Quad remesh...](Quad-remesh)** when those backends are available. + +Windows also shows **Fix model** (Netfabb) when available. + +## How to use it + +### Staging (`feat/ultra-preferences`) + +1. Select the broken or non-manifold object/part(s). +2. Right-click → **Repair/Remesh**. +3. In **Repair by remeshing** set: + - **Voxel size** + - **Keep the bottom flat** / **Bottom slab height** + - **Preserve sharp edges** / **Feature angle** +4. Confirm and inspect the result; re-apply paint/seams if needed. + +### `main` (until staging merges) + +1. Select the part(s). +2. Right-click → **Repair/Remesh** — remesh runs immediately (no dialog). + +Prefer **Simplify Model** (stock) when you only need decimation, not an SDF rebuild. + +## Limits / notes + +| Situation | What happens | +|---|---| +| Fine detail | Smaller features can disappear depending on voxel size. | +| Repair/Remesh vs Simplify Model | Remesh = SDF rebuild, watertight. Simplify = stock decimation. | +| Repair/Remesh vs Fix model | Remesh always available. Fix model = Windows Netfabb only. | +| vs Quad remesh | Quad remesh builds a quad grid (staging); Remesh is triangle voxels. | + +## Related + +- [Quad remesh](Quad-remesh) +- [Round all edges](Round-all-edges) +- [Object menu](Object-menu) +- [Home](Home) diff --git a/docs/wiki/Round-all-edges.md b/docs/wiki/Round-all-edges.md new file mode 100644 index 000000000000..5cac0c8f72f3 --- /dev/null +++ b/docs/wiki/Round-all-edges.md @@ -0,0 +1,41 @@ +# Round all edges + +> Staging: available on `feat/ultra-preferences` (OpenVDB). Not on `main` yet. + +## What it is + +**Round all edges...** fillets every edge of the selected parts by a radius. The part is **rebuilt**, so painted data is cleared. + +## Where to find it + +- Object / part / multi-selection menus → next to Repair/Remesh and Quad remesh → **Round all edges...** +- Hidden without OpenVDB (`voxel_ops_available()`) +- Also: Edit gizmo can expose a Round-all control (not only the context menu) + +## How to use it + +1. Select the part(s). +2. Right-click → **Round all edges...** +3. In the **Round all edges** dialog: + - **Radius** + - **Voxel size** + - **Round inside corners too** + - **Keep the bottom flat** / **Bottom slab height** +4. Confirm with **Round**. + +Tooltip: *Fillet every edge of the selected parts by a radius (the part is rebuilt, so painted data is cleared).* + +## Limits / notes + +| Situation | What happens | +|---|---| +| Paint / seams / colours | Cleared by the rebuild. | +| Keep the bottom flat | Preserves bed contact when you need a flat first layer. | +| vs Repair/Remesh | Remesh makes watertight; Round fillets edges. | + +## Related + +- [Repair/Remesh](Repair-Remesh) +- [Quad remesh](Quad-remesh) +- [Object menu](Object-menu) +- [Home](Home) diff --git a/docs/wiki/Scale-to-build-volume.md b/docs/wiki/Scale-to-build-volume.md new file mode 100644 index 000000000000..fbf28b34245d --- /dev/null +++ b/docs/wiki/Scale-to-build-volume.md @@ -0,0 +1,34 @@ +# Scale to build volume + +## What it is + +**Scale to build volume** fits the selection to the printer’s build volume with a dialog for uniform or per-axis scaling, edge gap, top gap, and auto-centre. + +Available on the object menu for every printer. Upstream had a label that never reached the BBL-style object menu; Edge wires it up with `ScaleToVolumeDialog`. + +## Where to find it + +- Object menu → **Scale to build volume** + +## How to use it + +1. Select the object to scale. +2. Object menu → **Scale to build volume**. +3. Choose **Scale mode**: Uniform or Non-uniform. +4. Set **Gap from bed edges** and **Gap below maximum height**. +5. Optionally **Centre on the bed**. +6. Confirm with **Scale**. + +## Limits / notes + +| Situation | What happens | +|---|---| +| Non-uniform scale of a **rotated** part | Warns before it would shear. | +| Already larger than volume | Scale down to fit with the chosen gaps. | + +## Related + +- [Fill bed with copies](Fill-bed-with-copies) +- [Object menu](Object-menu) +- [Preferences → Extras](Preferences-Extras) — drop-to-bed / bottom-referenced Z +- [Home](Home) diff --git a/docs/wiki/Split-by-painted-colour.md b/docs/wiki/Split-by-painted-colour.md new file mode 100644 index 000000000000..08d5dc7ecfce --- /dev/null +++ b/docs/wiki/Split-by-painted-colour.md @@ -0,0 +1,43 @@ +# Split by painted colour + +## What it is + +**Split ▸ By painted colour** turns a multi-material painted model into **separate parts**, one closed shell per painted filament region, placed back where they were. + +Opens the **Split by painted colour** dialog for depth and island options. + +## Where to find it + +- Object menu → **Split** → **By painted colour** +- Part menu → **Split** → **By painted colour** +- Multi-part selection → **Split** → **By painted colour** + +## How to use it + +1. Paint the model with the colour painting tool (MMU / multi-filament regions). +2. Right-click → **Split** → **By painted colour**. +3. In the dialog, set options as needed: + - **Depth override** (mm) or **Unlimited depth** + - **Cap flat tops/bottoms at solid shell depth** + - **Absorb enclosed islands** + - **Keep base-colour sparse infill** + - **Solid colour interfaces** (`interface_shells`) +4. Confirm the split and check that each region is its own part in the object list. +5. Assign filaments / print as separate parts or re-assemble as needed. + +Related: [Paint depth](Paint-depth) bounds how far a painted claim goes *before* you split. + +## Limits / notes + +| Situation | What happens | +|---|---| +| No paint | Nothing useful to split — paint first. | +| Stock Split | **To objects** / **To parts** remain; colour-split is Edge-only. | +| After split | Parts keep their place on the bed; treat them as independent volumes. | + +## Related + +- [Paint depth](Paint-depth) +- [Object menu](Object-menu) +- [Image Fill](Image-Fill) +- [Home](Home) diff --git a/docs/wiki/Stream-tab.md b/docs/wiki/Stream-tab.md new file mode 100644 index 000000000000..15effd7ac9cd --- /dev/null +++ b/docs/wiki/Stream-tab.md @@ -0,0 +1,40 @@ +# Stream tab + +## What it is + +The **Stream** tab is a live **camera wall** (up to **9×9**) for watching printers and IP cameras from the desktop. It bundles the open-source [go2rtc](https://github.com/AlexxIT/go2rtc) helper and can share the same phone link / QR concepts used by [Edge Hub](Edge-Hub). + +Supported sources include Snapmaker U1, Moonraker, Bambu Lab (LAN liveview), Flashforge cameras, and RTSP / ONVIF IP cameras (Reolink, Amcrest, Hikvision, Tapo, …; Wyze via RTSP firmware or wyze-bridge), with LAN discovery where applicable. + +## Where to find it + +- Main UI → **Stream** tab +- Screenshot: `docs/images/menu-stream.jpg` (example multi-camera wall) + +## How to use it + +1. Open the **Stream** tab. +2. Add or discover cameras / printer streams for your devices. +3. Arrange the wall (up to 9×9). **Drag names to reorder**. +4. Use the wall while printing to watch several machines at once. +5. For phone viewing of streams, use Edge Hub phone access (and Tailscale when away). See [Edge Hub](Edge-Hub) and [Phone access](Phone-access). + +## Limits / notes + +| Situation | What happens | +|---|---| +| Bambu live view | Needs Bambu’s own camera component (cannot be redistributed); Device tab may offer to download it once. Network plug-in is separate ([Preferences → Extras](Preferences-Extras) / [Bambu Lab](Bambu-Lab)). | +| Wyze | Needs RTSP firmware or wyze-bridge — not a stock Wyze cloud stream. | +| Layout persistence | On Windows, Stream layout can live with the embedded browser profile under the data directory migration path. | + +Other notes: + +- go2rtc is bundled unmodified under `resources/tools/go2rtc`. +- Phone MJPEG / MP4 playback behaviour differs by path (LAN vs remote / iOS); see phone and remote pages for details. + +## Related + +- [Edge Hub](Edge-Hub) +- [Phone access](Phone-access) +- [Bambu Lab in EdgeSlicer](Bambu-Lab) +- [Home](Home) diff --git a/docs/wiki/Support-Filament-Matching.md b/docs/wiki/Support-Filament-Matching.md new file mode 100644 index 000000000000..27048962d322 --- /dev/null +++ b/docs/wiki/Support-Filament-Matching.md @@ -0,0 +1,45 @@ +# Support Filament Matching + +## What it is + +**Support Filament Matching** (opt-in) prints supports, interfaces, ironing, and brims in the colour of the surface they touch, instead of a single shared support filament. + +A related setting, **Brim filament → Nearest wall**, does the same idea for brims alone: each brim uses the filament of the wall it sits against. + +Use this when a multicolour print should keep support and brim colours consistent with nearby surfaces, so leftover interface colour is less visible after removal. + +## Where to find it + +- **Support Filament Matching** — Process settings for multimaterial / support filament options (opt-in; off by default until you enable it). +- **Brim filament → Nearest wall** — Brim / multimaterial filament-for-features controls (brims only). + +Exact row labels sit with the other multimaterial filament-for-feature settings in the process tab. Screenshots: `docs/images/support-matching.png` and `docs/images/brim-match.png` in the repo. + +## How to use it + +1. Load the filaments you want on the project (including any colours that touch support or brim). +2. Turn on **Support Filament Matching**. +3. Slice and check the preview: supports, interfaces, ironing, and brims should follow the colour of the surface they touch. +4. For brims only (without full matching), set **Brim filament** to **Nearest wall**. + +No special painting is required for matching — it follows contact with the model surface. + +## Limits / notes + +| Situation | What happens | +|---|---| +| A **support group** sets its own interface filament | Support Filament Matching is turned **off for that object**. See [Support sets and groups](Support-sets-and-groups). | +| Single-filament prints | Matching has nothing to switch between; leave it off. | +| Soluble / dedicated interface workflows | Prefer an explicit interface filament (or a support set / group) instead of colour matching. | + +Other notes: + +- Matching is opt-in so existing profiles keep their previous support/brim filament behaviour until you enable it. +- Preview colours in the slice view are the best quick check before you print. +- For per-part interface recipes that conflict with matching, use support groups and accept that matching is disabled on that object. + +## Related + +- [Support sets and groups](Support-sets-and-groups) — per-part interface settings; disables matching when a group has its own interface filament +- [Outer wall filament](Outer-wall-filament) — separate filament for outer walls +- [Home](Home) — EdgeSlicer wiki index diff --git a/docs/wiki/Support-sets-and-groups.md b/docs/wiki/Support-sets-and-groups.md new file mode 100644 index 000000000000..b0afe8d1dd15 --- /dev/null +++ b/docs/wiki/Support-sets-and-groups.md @@ -0,0 +1,69 @@ +# Support sets and groups + +## What it is + +**Support sets** are named presets of the Support-category process settings. You save a support recipe once and apply it to any project. + +**Support groups** let different parts of the same object use different support-interface settings (filament, pattern, layers, ironing, and related values). Group values live on the parts themselves, so a project `.3mf` carries them. Stock OrcaSlicer ignores the unknown keys and still opens the file. + +Together they replace one-size-fits-all support settings when a multi-part object needs different interfaces (for example a soluble interface on one part and a matching-colour interface on another). + +## Where to find it + +- **Support set** — Process tab → Support. The **Support set** row sits at the top of that page (*Apply*, pop-out editor, save, delete, and **Groups**). +- **Support group (per part)** — Object list → right-click part(s) → **Support group** submenu (put parts in a named group, empty or from a support set). +- **Support groups window** — Object menu → **Support groups…**, or the **Groups** button on the Support set row. + +Grouped parts show a `[group]` badge in the object list. + +## How to use it + +### Save and apply a support set + +1. Tune the Support-category settings the way you want them for this recipe. +2. On the Support page, save them as a named **Support set**. +3. Later, choose that set and **Apply**. The values are copied into the process preset; the preset then shows as modified, the same way a hand edit would. + +A set stores its **interface filament as a type** (*Same as the part*, a loaded material, or a soluble type such as PVA / BVOH / HIPS / …), so the set can travel between printers instead of depending on a fixed filament slot. + +### Put parts in a support group + +1. Select one or more parts in the object list. +2. Right-click → **Support group** → put them in a named group: + - **Empty** — seeded from the object’s current settings, or + - **From a support set** — created straight from a set’s values. +3. Open **Support groups…** (or **Groups**) to rename, delete, re-apply a set, or select the parts in a group. + +### What you can set per group + +Per group you can control: + +- Interface filament +- Interface pattern +- Top / bottom interface layers and spacing +- Support ironing (pattern, flow, line spacing) + +Support style, threshold angle, and top Z distance are **stored** per group but remain **object-wide in effect**. The support **base** geometry is never per group — only the interface (and its ironing) follow the group. + +## Limits / notes + +Warnings appear in the Support groups window and during slicing when something will not follow a group: + +| Situation | What happens | +|---|---| +| Classic tree supports | Interface *layer count* is taken object-wide (organic trees and normal supports do not do this). | +| Group asks for a soluble interface | Forces **0 mm** top Z distance on the whole object. | +| Group has its own interface filament | Turns **Support Filament Matching** off for that object. | +| Interface filament on a different nozzle, or not loaded | Called out in the UI / slice warnings. | + +Other limits: + +- Support **base** geometry is always object-wide, never per group. +- Applying a support set is a value copy, not a live link: after Apply, editing the process settings does not rewrite the saved set until you save again. +- Projects with groups remain openable in upstream OrcaSlicer; group keys are simply ignored there. + +## Related + +- [Over-support surfaces](Over-support-surfaces) — bottoms and walls over support printed like walls, not bridges +- [Support Filament Matching](Support-Filament-Matching) — colour-matched supports (disabled for an object when a group sets its own interface filament) +- [Home](Home) — EdgeSlicer wiki index diff --git a/docs/wiki/Visibility.md b/docs/wiki/Visibility.md new file mode 100644 index 000000000000..843c600c138e --- /dev/null +++ b/docs/wiki/Visibility.md @@ -0,0 +1,42 @@ +# Visibility (Normal / Ghost / Hidden) + +## What it is + +**Visibility** controls how each **object** or **part** appears in the Prepare view: + +- **Normal** — fully shown +- **Ghost (X-ray)** — see-through; clicks pass through so you can work on what is behind +- **Hidden** — not drawn in the 3D view (**still slices and prints**) +- **Show all objects** — reset every object to Normal (object menu) + +An **eye** column in the object list cycles Normal → Ghost → Hidden without opening the menu. + +## Where to find it + +- Object list → **eye** column +- Object / part / multi-selection context menu → **Visibility** submenu + +Assemble-view menus do **not** include Visibility. + +## How to use it + +1. Select an object or part (or use the eye column on that row). +2. Choose **Normal**, **Ghost (X-ray)**, or **Hidden**. +3. Use **Show all objects** when many items were hidden and you want a full reset. +4. Ghost a shell while editing an insert; hide helpers you do not need on screen — remember Hidden parts still go to the printer unless you remove or disable them another way. + +## Limits / notes + +| Situation | What happens | +|---|---| +| Hidden | Cleared from the view only — **still included in slice/print**. | +| Ghost | Display aid; geometry remains. | +| Per object vs per part | Set on a whole object or on individual parts. | +| Cut tool | Cut halves can also be Visible / Ghost / Hidden while placing a curved cut — see [Flexi joints](Flexi-joints). | + +## Related + +- [Object menu](Object-menu) +- [Assemble tool](Assemble-tool) +- [Flexi joints](Flexi-joints) +- [Home](Home)