Show current filaments at top of AMS filament dropdown #1687

Open
opened 2026-04-05 19:11:14 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @ansonl on 11/7/2025

Description

Show the user's currently selected filaments for slicing at the top of the AMS Material Settings filament dropdown if those filaments are available.

When the user is opening the AMS filament selection dropdown, the user likely wants to change the filament to match their selected filament in the sliced model to print with.

We can move these active filaments to the top of the list so that the user does not need to scroll down and hunt for the exact match. This is convenient, saves time, and helps the user select the correct filament in the AMS even if they have a custom filament name.

I got the active filament preset names with wxGetApp().preset_bundle->filament_presets and found the matching actual Preset() from all Presets in wxGetApp().preset_bundle->filaments. Bambu has hardcoded preferred filament names to sort first into sorted_names.
I add the preset's base filament alias based on following inherits matched to other filament's name to the top of sorted_names

Name: Generic PETG - Alias: Generic PETG - Inherits: - no inherits
Name: Bambu PLA-CF @BBL X1C - Alias: Bambu PLA-CF - Inherits: - no inherits
Name: PETG Kingroon - Alias: - Inherits: Generic PETG - no alias
Name Bambu PLA Silk - Bronze - Name: Bambu PLA Silk - Bronze - Alias: - Inherits: Bambu PLA Silk @BBL X1C - no alias, nested inherit

I think a base filament has no inherits and has an alias and renamed filament based off the base filament has inherits but no alias so the inheritance back to the parent filament can be traced back by inherits (name of the inherited filament) > name > alias (alias of the inherited filament).

If there is a way to get the active filament presets as Preset() objects directly, we could use that method instead.

Screenshots/Recordings/Graphs

Example user selected filaments for slicing. (PETG Kingroon inherits Generic PETG with a custom name)

image

Shows the following selected filaments at the top of the AMS filament dropdown.

image

Tests

I have tried setting my active filaments in OrcaSlicer and opening the AMS Material Selection. The top entries reflect my active filament selection.

*Originally created by @ansonl on 11/7/2025* # Description Show the user's currently selected filaments for slicing at the top of the AMS Material Settings filament dropdown if those filaments are available. When the user is opening the AMS filament selection dropdown, the user likely wants to change the filament to match their selected filament in the sliced model to print with. We can move these active filaments to the top of the list so that the user does not need to scroll down and hunt for the exact match. This is convenient, saves time, and helps the user select the correct filament in the AMS even if they have a custom filament name. I got the active filament preset names with `wxGetApp().preset_bundle->filament_presets` and found the matching actual `Preset()` from all `Preset`s in `wxGetApp().preset_bundle->filaments`. Bambu has hardcoded preferred filament names to sort first into `sorted_names`. I add the preset's base filament `alias` based on following `inherits` matched to other filament's `name` to the top of `sorted_names` `Name: Generic PETG - Alias: Generic PETG - Inherits:` - no inherits `Name: Bambu PLA-CF @BBL X1C - Alias: Bambu PLA-CF - Inherits: ` - no inherits `Name: PETG Kingroon - Alias: - Inherits: Generic PETG` - no alias `Name Bambu PLA Silk - Bronze - Name: Bambu PLA Silk - Bronze - Alias: - Inherits: Bambu PLA Silk @BBL X1C` - no alias, nested inherit I think a base filament has no `inherits` and has an `alias` and renamed filament based off the base filament has `inherits` but no `alias` so the inheritance back to the parent filament can be traced back by `inherits (name of the inherited filament)` > `name` > `alias (alias of the inherited filament)`. If there is a way to get the active filament presets as `Preset()` objects directly, we could use that method instead. # Screenshots/Recordings/Graphs Example user selected filaments for slicing. **(PETG Kingroon inherits Generic PETG with a custom name)** <img width="924" height="268" alt="image" src="https://github.com/user-attachments/assets/5a981f2f-2106-4d26-98b3-63250454f39a" /> Shows the following selected filaments at the top of the AMS filament dropdown. <img width="752" height="417" alt="image" src="https://github.com/user-attachments/assets/a6eabc30-acba-49df-a804-b8d3b546a3ce" /> ## Tests I have tried setting my active filaments in OrcaSlicer and opening the AMS Material Selection. The top entries reflect my active filament selection.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#1687