More Controlled 3MF Import: Printer Preset Handling & Filament Mapping For Color Zones #988

Open
opened 2026-04-05 16:40:03 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @Clonephaze on 1/23/2026

Multi-color FDM projects can be frustrating to import because original printer and filament presets often overwrite a user’s setup, causing color zones to be lost. This PR adds flexible import modes and filament color mapping so users can preserve their workspace while retaining multi-color designs. Optional dialog checkboxes and preference settings give control over which project settings are applied, improving usability for shared 3MF files and complex multi-color prints.

Main Points

Flexible Import Modes

  • Open as Project: Import geometry, printer, and filament settings (original behavior)
  • Import Geometry Only: Load models without touching any presets
  • Selective Preset Import: Skip printer settings, filament settings, or both via dialog checkboxes
  • Print settings automatically skip when printer is skipped to maintain preset compatibility

Filament Color Mapping

  • Visual mapping interface displays project colors alongside user's compatible filament presets
  • Dropdowns filtered by visibility and compatibility (matches sidebar behavior)
  • Grouped by vendor with split headers for better organization
  • Hex color validation and robust fallback handling

Preferences Integration

  • New checkboxes under Preferences → Project to skip printer/filament presets when "Load All" is selected
  • Dialog respects preference defaults while remaining fully interactive
  • Per-import overrides available for workflow flexibility

More details

Modified Files

  • Import3mfDialog.hpp / .cpp: New import dialog with radio options, checkboxes, and filament mapping UI
  • Plater.cpp: Skip logic, preset save/restore, validation gating, bed recentering
  • PresetBundle.cpp: Config loading with skip flags; embedded preset filtering
  • bbs_3mf.cpp: Pre-parse project info (filament colors, preset names)
  • Preferences.cpp: Added skip checkboxes in Project section
  • WebViewDialog.cpp: Deferred file loading to avoid modal reentrancy

LoadStrategy Flags

  • SkipPrinterConfig (256): Skip printer and print presets
  • SkipFilamentConfig (512): Skip filament presets; enables color mapping

Testing

  • Manual testing across all import modes and preference combinations
  • Verified filament mapping with multi-color projects
  • Confirmed preset save/restore and validation suppression
  • Tested WebView-driven imports (no reentrancy warnings)

Screenshots/Videos

image image image

3mfImportOverhaul.webm

*Originally created by @Clonephaze on 1/23/2026* Multi-color FDM projects can be frustrating to import because original printer and filament presets often overwrite a user’s setup, causing color zones to be lost. This PR adds flexible import modes and filament color mapping so users can preserve their workspace while retaining multi-color designs. Optional dialog checkboxes and preference settings give control over which project settings are applied, improving usability for shared 3MF files and complex multi-color prints. ### Main Points **Flexible Import Modes** - **Open as Project**: Import geometry, printer, and filament settings (original behavior) - **Import Geometry Only**: Load models without touching any presets - **Selective Preset Import**: Skip printer settings, filament settings, or both via dialog checkboxes - Print settings automatically skip when printer is skipped to maintain preset compatibility **Filament Color Mapping** - Visual mapping interface displays project colors alongside user's compatible filament presets - Dropdowns filtered by visibility and compatibility (matches sidebar behavior) - Grouped by vendor with split headers for better organization - Hex color validation and robust fallback handling **Preferences Integration** - New checkboxes under Preferences → Project to skip printer/filament presets when "Load All" is selected - Dialog respects preference defaults while remaining fully interactive - Per-import overrides available for workflow flexibility ### More details **Modified Files** - Import3mfDialog.hpp / .cpp: New import dialog with radio options, checkboxes, and filament mapping UI - Plater.cpp: Skip logic, preset save/restore, validation gating, bed recentering - PresetBundle.cpp: Config loading with skip flags; embedded preset filtering - bbs_3mf.cpp: Pre-parse project info (filament colors, preset names) - Preferences.cpp: Added skip checkboxes in Project section - WebViewDialog.cpp: Deferred file loading to avoid modal reentrancy **LoadStrategy Flags** - `SkipPrinterConfig` (256): Skip printer and print presets - `SkipFilamentConfig` (512): Skip filament presets; enables color mapping **Testing** - Manual testing across all import modes and preference combinations - Verified filament mapping with multi-color projects - Confirmed preset save/restore and validation suppression - Tested WebView-driven imports (no reentrancy warnings) **Screenshots/Videos** <!-- Add screenshots of the dialog (main options, mapping interface, dark mode), preferences section, and sample workflow --> <img width="379" height="318" alt="image" src="https://github.com/user-attachments/assets/6185eb9c-3836-4419-8fc9-6f7c78df8729" /> <img width="718" height="599" alt="image" src="https://github.com/user-attachments/assets/5b57b9eb-e67d-4ff4-909a-4c4393cbdab4" /> <img width="479" height="137" alt="image" src="https://github.com/user-attachments/assets/22105025-3fa2-439f-8b9d-423c459201c1" /> [3mfImportOverhaul.webm](https://github.com/user-attachments/assets/818b05fc-72f5-4f18-9693-811360295158)
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#988