diff --git a/src/slic3r/Utils/MoonrakerPrinterAgent.cpp b/src/slic3r/Utils/MoonrakerPrinterAgent.cpp index 4386f4517d..6ff593a16e 100644 --- a/src/slic3r/Utils/MoonrakerPrinterAgent.cpp +++ b/src/slic3r/Utils/MoonrakerPrinterAgent.cpp @@ -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