fix(moonraker): Pass 3 — auch unsichtbare Presets durchsuchen für uninstallierte Drucker-Hersteller

This commit is contained in:
viewit
2026-06-02 20:09:37 +02:00
parent be7d3512bf
commit 4fb6bb475c

View File

@@ -188,10 +188,13 @@ std::string filament_id_by_name(const Slic3r::PresetCollection& filaments,
// Two-pass search: Pass 1 = compatible presets only (ideal), Pass 2 = all visible presets
// (fallback for vendors like eSUN/Eryone that have no printer-specific Kobra X profile).
for (int pass = 1; pass <= 2; ++pass) {
for (int pass = 1; pass <= 3; ++pass) {
for (size_t i = 0; i < filaments.size(); ++i) {
const auto& preset = filaments.preset(i);
if (!preset.is_visible) {
// Pass 1: compatible + visible only
// Pass 2: visible but not necessarily compatible (vendors without printer-specific profile)
// Pass 3: any preset including invisible (vendors not installed as printer)
if (pass <= 2 && !preset.is_visible) {
continue;
}
// User presets (created via "Save As") may have no filament_id yet.
@@ -230,6 +233,9 @@ std::string filament_id_by_name(const Slic3r::PresetCollection& filaments,
if (pass == 1) {
BOOST_LOG_TRIVIAL(info) << "MoonrakerPrinterAgent: filament matcher pass 1 (compatible) found no match for '"
<< filament_name << "', trying pass 2 (all visible)";
} else if (pass == 2) {
BOOST_LOG_TRIVIAL(info) << "MoonrakerPrinterAgent: filament matcher pass 2 (all visible) found no match for '"
<< filament_name << "', trying pass 3 (all presets incl. invisible)";
}
}
BOOST_LOG_TRIVIAL(info) << "MoonrakerPrinterAgent: filament matcher found no match for requested='" << filament_name