From 9b0d208f2410a6108b239126c803b1b15e1777e5 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 17 Sep 2026 18:12:26 +0000 Subject: [PATCH 01/11] docs(wiki): add EdgeSlicer wiki Home and index Add the Edge-only wiki home page under docs/wiki/ as the index for feature documentation that will follow. Linked titles are placeholders. Co-authored-by: aceRage --- docs/wiki/Home.md | 110 ++++++++++++++++++++++++++++++++++++++++++++ docs/wiki/README.md | 3 ++ 2 files changed, 113 insertions(+) create mode 100644 docs/wiki/Home.md create mode 100644 docs/wiki/README.md diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md new file mode 100644 index 000000000000..d4ec9d3a51d2 --- /dev/null +++ b/docs/wiki/Home.md @@ -0,0 +1,110 @@ +# 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. + +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 | + +### Print quality + +| Page | What it covers | +|---|---| +| [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/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). From 8139519816e25017dbcf3ac4712bf06098810683 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 17 Sep 2026 18:23:19 +0000 Subject: [PATCH 02/11] docs(wiki): add Support sets and groups page First Edge-only feature wiki page. Related Over-support surfaces and Support Filament Matching titles remain stubs for later PRs. Co-authored-by: aceRage --- docs/wiki/Support-sets-and-groups.md | 69 ++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs/wiki/Support-sets-and-groups.md 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 From c34a1c5c6f683e59546db70f377b276f959816fb Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 17 Sep 2026 18:25:43 +0000 Subject: [PATCH 03/11] docs(wiki): add Support Filament Matching page Documents opt-in colour-matched supports, interfaces, ironing, and brims. Outer wall filament remains a Home stub for a later PR. Co-authored-by: aceRage --- docs/wiki/Support-Filament-Matching.md | 45 ++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs/wiki/Support-Filament-Matching.md 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 From 8642126e99ef2eac427a6ed46d708ea354958f50 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 17 Sep 2026 18:28:29 +0000 Subject: [PATCH 04/11] docs(wiki): add Over-support surfaces page Documents the opt-in over-support surface type, flow, and speed for faces and walls printed over support rather than as bridges. Co-authored-by: aceRage --- docs/wiki/Over-support-surfaces.md | 50 ++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 docs/wiki/Over-support-surfaces.md 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 From 0f63fd053821b3d6d202184df88b295a2ea2b84c Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 17 Sep 2026 18:30:14 +0000 Subject: [PATCH 05/11] docs(wiki): add Flexi joints and Cut tool page Documents print-in-place Flexi joints, curved cut, and cut thickness in the Cut tool. Assemble-tool and Auto-Fit Assembly remain stubs. Co-authored-by: aceRage --- docs/wiki/Flexi-joints.md | 62 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 docs/wiki/Flexi-joints.md 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 From 20ec48705d34b9ca7d48450e0ea3a6fbc3fb9e5b Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 17 Sep 2026 18:31:39 +0000 Subject: [PATCH 06/11] docs(wiki): add Compare Slices page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Documents the View menu slice diff for settings, time, filament, and per-layer toolpaths. Preferences → Extras remains a Home stub. Co-authored-by: aceRage --- docs/wiki/Compare-Slices.md | 42 +++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs/wiki/Compare-Slices.md 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 From 11acdbb9ff3ae848efdb9be450b7c06d8a57cec5 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 17 Sep 2026 18:34:08 +0000 Subject: [PATCH 07/11] docs(wiki): add Hub, Extras, Assemble, Stream, and Auto-Fit pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds Edge Hub, Preferences → Extras, Assemble tool, Stream tab, and the short Auto-Fit Assembly companion. Phone access, Tailscale, and Bambu Lab remain Home stubs. Co-authored-by: aceRage --- docs/wiki/Assemble-tool.md | 58 ++++++++++++++++++++++++ docs/wiki/Auto-Fit-Assembly.md | 30 +++++++++++++ docs/wiki/Edge-Hub.md | 40 +++++++++++++++++ docs/wiki/Preferences-Extras.md | 80 +++++++++++++++++++++++++++++++++ docs/wiki/Stream-tab.md | 40 +++++++++++++++++ 5 files changed, 248 insertions(+) create mode 100644 docs/wiki/Assemble-tool.md create mode 100644 docs/wiki/Auto-Fit-Assembly.md create mode 100644 docs/wiki/Edge-Hub.md create mode 100644 docs/wiki/Preferences-Extras.md create mode 100644 docs/wiki/Stream-tab.md 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/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/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/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) From b3522a68b33c066a96e3523e290cbc87c3f6e514 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 17 Sep 2026 18:37:12 +0000 Subject: [PATCH 08/11] docs(wiki): add Visibility page and index row Documents Normal / Ghost / Hidden in the object-list eye column and adds Visibility under Assembly and modeling on the wiki Home index. Co-authored-by: aceRage --- docs/wiki/Home.md | 1 + docs/wiki/Visibility.md | 55 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 docs/wiki/Visibility.md diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md index d4ec9d3a51d2..1951929e80ae 100644 --- a/docs/wiki/Home.md +++ b/docs/wiki/Home.md @@ -51,6 +51,7 @@ These areas are custom to EdgeSlicer (or heavily extended here). Each page follo | [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; X-ray Ghost and Hidden per object or part | ### Print quality diff --git a/docs/wiki/Visibility.md b/docs/wiki/Visibility.md new file mode 100644 index 000000000000..c881668a0471 --- /dev/null +++ b/docs/wiki/Visibility.md @@ -0,0 +1,55 @@ +# 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, so you can work around or inside assemblies without losing context +- **Hidden** — not drawn (still in the project) + +An **eye** column in the object list shows and changes visibility without hunting through menus. + +Use Ghost when aligning or inspecting nested / overlapping parts; use Hidden to clear clutter while you edit something else. + +## Where to find it + +- Object list → **eye** column (per object or part) +- Object / part context menus that set visibility to Normal, Ghost, or Hidden (Prepare view) + +Visibility is a Prepare-view / modeling aid. It does not by itself change which geometry is sliced unless you leave parts hidden in a way your workflow treats as excluded — treat Hidden as “out of the way for editing,” and confirm selection / slice scope before you print. + +## How to use it + +1. Open the object list so objects and parts are visible. +2. Click the **eye** (or use the visibility menu) on an object or part. +3. Choose: + - **Normal** — restore full display + - **Ghost** — X-ray so neighbours stay visible underneath + - **Hidden** — remove it from the view temporarily +4. Combine with multi-part assemblies: Ghost the shell while you edit an insert; Hidden for plates or helpers you do not need on screen. +5. Switch back to **Normal** before final layout checks if you want the true on-bed appearance. + +Related Prepare helpers that often go with visibility: + +- Move panel **align & distribute** +- **Bottom-referenced Z** / **keep imported Z** (drop-to-bed toggle) +- Double-click to select a part + +See also [Preferences → Extras](Preferences-Extras) for drop-to-bed and bottom-referenced Z toggles. + +## Limits / notes + +| Situation | What happens | +|---|---| +| Ghost | Display only (X-ray) — geometry is still there for editing and, when selected appropriately, for slicing. | +| Hidden | Cleared from the view; confirm you still intend that part in the slice / export. | +| Per object vs per part | You can set visibility on a whole object or on individual parts inside it. | +| Cut tool halves | The Cut tool can also set halves to Visible / Ghost / Hidden while placing a curved cut — see [Flexi joints](Flexi-joints). | + +## Related + +- [Assemble tool and Auto-fit](Assemble-tool) +- [Flexi joints and Cut tool](Flexi-joints) +- [Preferences → Extras](Preferences-Extras) +- [Home](Home) From 6e6c5ded77d0dc7738c793a7870446576a94b10f Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 17 Sep 2026 18:40:25 +0000 Subject: [PATCH 09/11] docs(wiki): add Process settings Edge overview Maps Edge process tweaks versus upstream Orca and adds a Print quality index row. Offset layers, Z contouring, Locked Zag, and Fuzzy skin stay stubs. Co-authored-by: aceRage --- docs/wiki/Home.md | 1 + docs/wiki/Process-settings.md | 88 +++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 docs/wiki/Process-settings.md diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md index 1951929e80ae..a7fe59e7861f 100644 --- a/docs/wiki/Home.md +++ b/docs/wiki/Home.md @@ -57,6 +57,7 @@ These areas are custom to EdgeSlicer (or heavily extended here). Each page follo | 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 | 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 From 0f97f483e2e52b30a3dd23e81ed573008c1c7e23 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 17 Sep 2026 18:45:01 +0000 Subject: [PATCH 10/11] docs(wiki): add Prepare context-menu pages Adds the Edge right-click map plus Fill bed, Scale to volume, Repair/Remesh, and Split by painted colour. Corrects Visibility so Hidden still slices, Show all resets, and Ghost clicks pass through. Home gains an Object/part context menu section. Bake-to-mesh and Quad remesh stay undocumented as they are not on Prepare menus. Co-authored-by: aceRage --- docs/wiki/Fill-bed-with-copies.md | 42 ++++++++++++++ docs/wiki/Home.md | 13 ++++- docs/wiki/Object-menu.md | 87 ++++++++++++++++++++++++++++ docs/wiki/Repair-Remesh.md | 40 +++++++++++++ docs/wiki/Scale-to-build-volume.md | 34 +++++++++++ docs/wiki/Split-by-painted-colour.md | 43 ++++++++++++++ docs/wiki/Visibility.md | 49 ++++++---------- 7 files changed, 276 insertions(+), 32 deletions(-) create mode 100644 docs/wiki/Fill-bed-with-copies.md create mode 100644 docs/wiki/Object-menu.md create mode 100644 docs/wiki/Repair-Remesh.md create mode 100644 docs/wiki/Scale-to-build-volume.md create mode 100644 docs/wiki/Split-by-painted-colour.md diff --git a/docs/wiki/Fill-bed-with-copies.md b/docs/wiki/Fill-bed-with-copies.md new file mode 100644 index 000000000000..54a61ffb3024 --- /dev/null +++ b/docs/wiki/Fill-bed-with-copies.md @@ -0,0 +1,42 @@ +# 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) +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. | +| 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/Home.md b/docs/wiki/Home.md index a7fe59e7861f..da80e8e389d5 100644 --- a/docs/wiki/Home.md +++ b/docs/wiki/Home.md @@ -51,7 +51,18 @@ These areas are custom to EdgeSlicer (or heavily extended here). Each page follo | [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; X-ray Ghost and Hidden per object or part | +| [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 (not quad remesh) | +| [Split by painted colour](Split-by-painted-colour) | Paint regions → separate parts | ### Print quality diff --git a/docs/wiki/Object-menu.md b/docs/wiki/Object-menu.md new file mode 100644 index 000000000000..e19c6031c99e --- /dev/null +++ b/docs/wiki/Object-menu.md @@ -0,0 +1,87 @@ +# 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 to mesh / slice bake to mesh** | **Not** on Prepare object/part menus on current `main`. SVG/text gizmo still has stock **Bake** (“Bake into model as uneditable part”) — that is not a slice→mesh bake. | +| **Quad remesh** | **Not** present. Closest is **Repair/Remesh** (triangle voxel remesh). SoftFever Orca’s Smooth Mesh subdivision is not in Edge. | +| 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/Repair-Remesh.md b/docs/wiki/Repair-Remesh.md new file mode 100644 index 000000000000..f768419512e6 --- /dev/null +++ b/docs/wiki/Repair-Remesh.md @@ -0,0 +1,40 @@ +# 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 below about **0.1 mm** may be lost. + +It is Edge’s cross-platform repair path. Stock Snapmaker/Orca on Windows also keeps **Fix model** (Netfabb); Remesh is shown on all platforms. + +This is **not** “quad remesh” — there is no quad-remesh command on current `main`. SoftFever Orca’s Smooth Mesh subdivision is not in Edge. + +## Where to find it + +- Object menu → **Repair/Remesh** +- Part menu → **Repair/Remesh** +- Multi-selection menus (several objects or several parts) → **Repair/Remesh** + +Windows also shows **Fix model** (Netfabb) below Remesh when available. + +## How to use it + +1. Select the broken or non-manifold object/part(s). +2. Right-click → **Repair/Remesh**. +3. Wait for the remesh to finish. +4. Inspect the result; re-apply paint/seams if detail was lost. +5. Prefer **Simplify Model** (stock) when you only need decimation, not a full SDF rebuild. + +## Limits / notes + +| Situation | What happens | +|---|---| +| Fine detail | Features smaller than ~0.1 mm may disappear. | +| 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. | +| Quad remesh | Not implemented on current `main`. | + +## Related + +- [Object menu](Object-menu) +- [Mesh boolean](https://www.orcaslicer.com/wiki/) (stock; Manifold backend in Edge) +- [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/Visibility.md b/docs/wiki/Visibility.md index c881668a0471..843c600c138e 100644 --- a/docs/wiki/Visibility.md +++ b/docs/wiki/Visibility.md @@ -5,51 +5,38 @@ **Visibility** controls how each **object** or **part** appears in the Prepare view: - **Normal** — fully shown -- **Ghost** — X-ray / see-through, so you can work around or inside assemblies without losing context -- **Hidden** — not drawn (still in the project) +- **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 shows and changes visibility without hunting through menus. - -Use Ghost when aligning or inspecting nested / overlapping parts; use Hidden to clear clutter while you edit something else. +An **eye** column in the object list cycles Normal → Ghost → Hidden without opening the menu. ## Where to find it -- Object list → **eye** column (per object or part) -- Object / part context menus that set visibility to Normal, Ghost, or Hidden (Prepare view) +- Object list → **eye** column +- Object / part / multi-selection context menu → **Visibility** submenu -Visibility is a Prepare-view / modeling aid. It does not by itself change which geometry is sliced unless you leave parts hidden in a way your workflow treats as excluded — treat Hidden as “out of the way for editing,” and confirm selection / slice scope before you print. +Assemble-view menus do **not** include Visibility. ## How to use it -1. Open the object list so objects and parts are visible. -2. Click the **eye** (or use the visibility menu) on an object or part. -3. Choose: - - **Normal** — restore full display - - **Ghost** — X-ray so neighbours stay visible underneath - - **Hidden** — remove it from the view temporarily -4. Combine with multi-part assemblies: Ghost the shell while you edit an insert; Hidden for plates or helpers you do not need on screen. -5. Switch back to **Normal** before final layout checks if you want the true on-bed appearance. - -Related Prepare helpers that often go with visibility: - -- Move panel **align & distribute** -- **Bottom-referenced Z** / **keep imported Z** (drop-to-bed toggle) -- Double-click to select a part - -See also [Preferences → Extras](Preferences-Extras) for drop-to-bed and bottom-referenced Z toggles. +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 | |---|---| -| Ghost | Display only (X-ray) — geometry is still there for editing and, when selected appropriately, for slicing. | -| Hidden | Cleared from the view; confirm you still intend that part in the slice / export. | -| Per object vs per part | You can set visibility on a whole object or on individual parts inside it. | -| Cut tool halves | The Cut tool can also set halves to Visible / Ghost / Hidden while placing a curved cut — see [Flexi joints](Flexi-joints). | +| 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 -- [Assemble tool and Auto-fit](Assemble-tool) -- [Flexi joints and Cut tool](Flexi-joints) -- [Preferences → Extras](Preferences-Extras) +- [Object menu](Object-menu) +- [Assemble tool](Assemble-tool) +- [Flexi joints](Flexi-joints) - [Home](Home) From 8f2fd1f4388cd70d369ef33feed999151852a82a Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 17 Sep 2026 18:51:12 +0000 Subject: [PATCH 11/11] docs(wiki): document staging Prepare menu features Adds Bake slice to mesh, Quad remesh, Round all edges, and Edit/Copy cut from feat/ultra-preferences. Repair/Remesh now covers the staging dialog versus immediate remesh on main. Fill bed notes Ignore support clearance. Home indexes the staging pages and notes they may not be on main yet. Co-authored-by: aceRage --- docs/wiki/Bake-slice-to-mesh.md | 47 +++++++++++++++++++++++++++++ docs/wiki/Edit-cut.md | 50 +++++++++++++++++++++++++++++++ docs/wiki/Fill-bed-with-copies.md | 2 ++ docs/wiki/Home.md | 8 ++++- docs/wiki/Object-menu.md | 3 +- docs/wiki/Quad-remesh.md | 42 ++++++++++++++++++++++++++ docs/wiki/Repair-Remesh.md | 36 +++++++++++++++------- docs/wiki/Round-all-edges.md | 41 +++++++++++++++++++++++++ 8 files changed, 216 insertions(+), 13 deletions(-) create mode 100644 docs/wiki/Bake-slice-to-mesh.md create mode 100644 docs/wiki/Edit-cut.md create mode 100644 docs/wiki/Quad-remesh.md create mode 100644 docs/wiki/Round-all-edges.md 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/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 index 54a61ffb3024..4d2d89bf021d 100644 --- a/docs/wiki/Fill-bed-with-copies.md +++ b/docs/wiki/Fill-bed-with-copies.md @@ -23,6 +23,7 @@ Entry also sits under Clone in the object menu family described in [Object menu] - **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. @@ -32,6 +33,7 @@ Entry also sits under Clone in the object menu family described in [Object menu] |---|---| | 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. | diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md index da80e8e389d5..af5d5c9f9477 100644 --- a/docs/wiki/Home.md +++ b/docs/wiki/Home.md @@ -2,6 +2,8 @@ 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) @@ -61,7 +63,11 @@ These areas are custom to EdgeSlicer (or heavily extended here). Each page follo | [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 (not quad remesh) | +| [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 diff --git a/docs/wiki/Object-menu.md b/docs/wiki/Object-menu.md index e19c6031c99e..bc4f0b9865e0 100644 --- a/docs/wiki/Object-menu.md +++ b/docs/wiki/Object-menu.md @@ -72,8 +72,7 @@ Assemble-view menus stay stock-like — they do **not** get Visibility, Support | Situation | What happens | |---|---| -| **Bake to mesh / slice bake to mesh** | **Not** on Prepare object/part menus on current `main`. SVG/text gizmo still has stock **Bake** (“Bake into model as uneditable part”) — that is not a slice→mesh bake. | -| **Quad remesh** | **Not** present. Closest is **Repair/Remesh** (triangle voxel remesh). SoftFever Orca’s Smooth Mesh subdivision is not in Edge. | +| **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. | 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/Repair-Remesh.md b/docs/wiki/Repair-Remesh.md index f768419512e6..fe283bfba793 100644 --- a/docs/wiki/Repair-Remesh.md +++ b/docs/wiki/Repair-Remesh.md @@ -2,39 +2,55 @@ ## What it is -**Repair/Remesh** rebuilds a part (or object) as a **watertight** mesh using an OpenVDB **voxel** remesh (triangle output). Fine detail below about **0.1 mm** may be lost. +**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. -This is **not** “quad remesh” — there is no quad-remesh command on current `main`. SoftFever Orca’s Smooth Mesh subdivision is not in Edge. +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 (several objects or several parts) → **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) below Remesh when 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. Wait for the remesh to finish. -4. Inspect the result; re-apply paint/seams if detail was lost. -5. Prefer **Simplify Model** (stock) when you only need decimation, not a full SDF rebuild. +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 | Features smaller than ~0.1 mm may disappear. | +| 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. | -| Quad remesh | Not implemented on current `main`. | +| 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) -- [Mesh boolean](https://www.orcaslicer.com/wiki/) (stock; Manifold backend in Edge) - [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)