mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-27 10:51:22 +00:00
validator: detect ambiguous (duplicate) filament subtypes per printer (#14459)
* validator: detect duplicate filament subtype per printer (opt-in) A filament is matched from the AMS by (filament_id + printer compatibility); if two compatible filament presets for one printer share a filament_id, the match is ambiguous and the runtime silently picks whichever loads first. Add PresetBundle::check_duplicate_filament_subtypes(), gated behind a new has_errors(check_duplicate_filament_subtypes) parameter and the validator's -f/--check_filament_subtypes flag (off by default). For each system printer it groups its vendor's compatible filament presets by filament_id and errors on any group of 2+, reporting each preset as a clickable file:// URI with a single "how to fix" hint. CI runs it for BBL only (-v BBL -f) until the other vendors' profiles are cleaned up. * profiles: fix ambiguous BBL filament matches Resolve the duplicate-filament-subtype errors flagged by the validator: - align compatible_printers with Bambu Studio where Orca over-claimed a nozzle that already has a dedicated preset (Bambu PLA Basic/Matte/ABS @BBL H2DP; Bambu ASA/PETG HF @BBL H2DP 0.6 nozzle; Fiberon PETG-ESD @BBL X1) - fix a copy-pasted printer name in Overture Matte PLA @BBL A1M 0.2 nozzle - fix a wrong inherits in Panchroma PLA Silk @BBL X1C 0.2 nozzle (was inheriting Panchroma PLA @base, giving it filament_id GFPM001 instead of GFPM004) Bump BBL profile version. * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
co-authored by
Copilot Autofix powered by AI
parent
a0846ec215
commit
c2e91cb86c
@@ -480,10 +480,14 @@ public:
|
||||
return { Preset::TYPE_PRINTER, Preset::TYPE_SLA_PRINT, Preset::TYPE_SLA_MATERIAL };
|
||||
}
|
||||
|
||||
// Orca: for validation only
|
||||
bool has_errors() const;
|
||||
// Orca: for validation only. The duplicate filament subtype check is opt-in for now
|
||||
bool has_errors(bool check_duplicate_filament_subtypes = false) const;
|
||||
|
||||
private:
|
||||
// Orca: validation only - flag any printer with two or more compatible
|
||||
// filament presets sharing one filament_id (ambiguous AMS subtype match).
|
||||
bool check_duplicate_filament_subtypes() const;
|
||||
|
||||
//std::pair<PresetsConfigSubstitutions, std::string> load_system_presets(ForwardCompatibilitySubstitutionRule compatibility_rule);
|
||||
//BBS: add json related logic
|
||||
std::pair<PresetsConfigSubstitutions, std::string> load_system_presets_from_json(ForwardCompatibilitySubstitutionRule compatibility_rule);
|
||||
|
||||
Reference in New Issue
Block a user