diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index f19185f9ec..7d31f6bf19 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -714,8 +714,21 @@ namespace DoExport { if (region->config().get_abs_value("infill_speed") == 0 || region->config().get_abs_value("solid_infill_speed") == 0 || region->config().get_abs_value("top_solid_infill_speed") == 0 || - region->config().get_abs_value("bridge_speed") == 0) - mm3_per_mm.push_back(layerm->fills.min_mm3_per_mm()); + region->config().get_abs_value("bridge_speed") == 0) + { + // Minimal volumetric flow should not be calculated over ironing extrusions. + // Use following lambda instead of the built-it method. + // https://github.com/prusa3d/PrusaSlicer/issues/5082 + auto min_mm3_per_mm_no_ironing = [](const ExtrusionEntityCollection& eec) -> double { + double min = std::numeric_limits::max(); + for (const ExtrusionEntity* ee : eec.entities) + if (ee->role() != erIroning) + min = std::min(min, ee->min_mm3_per_mm()); + return min; + }; + + mm3_per_mm.push_back(min_mm3_per_mm_no_ironing(layerm->fills)); + } } } if (object->config().get_abs_value("support_material_speed") == 0 ||