Skip to content

ENH: Add plate visibility toggle#10369

Open
jomixlaf wants to merge 2 commits intobambulab:masterfrom
jomixlaf:feature/plate-visibility
Open

ENH: Add plate visibility toggle#10369
jomixlaf wants to merge 2 commits intobambulab:masterfrom
jomixlaf:feature/plate-visibility

Conversation

@jomixlaf
Copy link
Copy Markdown
Contributor

@jomixlaf jomixlaf commented Apr 24, 2026

Summary

This PR adds the ability to show and hide individual plates in the 3D workspace, without deleting them. It is a non-destructive workflow tool for users who want to focus on one plate at a time while keeping their full project intact.

Features

  • Eye icon on each plate — appears on hover; click to toggle visibility. Hidden when the plate is the only one, or would be the last visible plate (minimum one plate always visible).
image
  • Toolbar button — eye icon in the top toolbar (visible only when 2+ plates exist) opens a popup with:
    • Show All Plates
    • Hide Other Plates (hides all except the currently selected plate)
    • Per-plate checkmarks to toggle individually
SCR-20260424-la1
  • View menu — View > Show/Hide Plates submenu with the same Show All / Hide Other Plates options plus per-plate toggles, rebuilt dynamically on open.
  • Right-click object list — Show All Plates and Hide Other Plates also available when right-clicking a plate name in the object list.
  • Visual feedback — hidden plates render as faded/ghosted in the 3D view; their objects are invisible and not pickable (except the eye icon slot to re-enable).
  • [hidden] label — shown next to the plate name in the object list panel.
SCR-20260424-lbg
  • Slice/print blocked — hidden plates cannot be sliced or sent to print; toolbar buttons are disabled. Auto-reslice on switching to Preview is suppressed for hidden plates.

Files Changed

File Change
src/slic3r/GUI/PartPlate.hpp / .cpp m_visible flag, eye icon rendering, picking, slice/print guards, get_visible_plate_count()
src/slic3r/GUI/Plater.cpp Toggle action on eye icon click, slice guard, auto-reslice guard
src/slic3r/GUI/GLCanvas3D.cpp update_plate_volumes_visibility(), toolbar button + popup menu
src/slic3r/GUI/MainFrame.cpp View > Show/Hide Plates submenu
src/slic3r/GUI/GUI_Factories.cpp Right-click object list menu items
src/slic3r/GUI/ObjectDataViewModel.cpp [hidden] label in plate list
resources/images/ Eye icon SVGs (light/dark, normal/hover, visible/hidden states) + toolbar icon

Notes

  • Visibility state is intentionally not persisted to the 3MF file in this PR to keep the change minimal and avoid format compatibility concerns. It can be added in a follow-up.
  • The minimum-one-visible-plate constraint is enforced across all three toggle surfaces (plate icon, toolbar menu, right-click menu).

Screenshots

SCR-20260424-l1o

I believe there is still work to do, but at least if it's here, we can discuss it :)

jomixlaf and others added 2 commits April 24, 2026 18:56
Adds the ability to show/hide individual plates in the 3D workspace.

- Eye icon on each plate: click to toggle visibility (hidden when only one plate exists or it would hide the last visible plate)
- Toolbar button (eye icon) with popup menu: Show All Plates / Hide Other Plates / per-plate checkmarks
- View menu > Show/Hide Plates submenu with the same options, rebuilt dynamically on open
- Right-click plate name in object list also exposes Show All / Hide Other Plates
- Hidden plates render as faded/ghosted; their 3D objects are invisible and not clickable
- Hidden plates cannot be sliced or printed; slice/print buttons are disabled for them
- Auto-reslice on preview switch is suppressed for hidden plates
- [hidden] label shown next to plate name in the object list
- Minimum one plate always remains visible (hide action blocked on last visible plate)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Wipe tower volumes are keyed by plate via composite_id.object_id - 1000,
not by (object_id, instance_id), so they were skipped by the previous
visibility update. Resolve their plate directly and toggle is_active
accordingly. Re-apply visibility at the end of reload_scene since wipe
towers are recreated after slicing and would otherwise re-appear.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant