From 94b6e7b78b34e2f225ef7361d3a9251d05da6de2 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Tue, 29 Apr 2025 15:58:39 +0800 Subject: [PATCH] FIX: Add protection to prevent inf use_m jira: none Change-Id: I37b4a032c0504200b4b97c3d63744ea7e5962b66 --- src/libslic3r/Format/bbs_3mf.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/Format/bbs_3mf.cpp b/src/libslic3r/Format/bbs_3mf.cpp index 7dea34b7d..ad82add0c 100644 --- a/src/libslic3r/Format/bbs_3mf.cpp +++ b/src/libslic3r/Format/bbs_3mf.cpp @@ -602,7 +602,8 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) std::vector m_filament_densities = result->filament_densities; auto get_used_filament_from_volume = [m_filament_diameters, m_filament_densities](double volume, int extruder_id) { double koef = 0.001; - std::pair ret = {koef * volume / (PI * sqr(0.5 * m_filament_diameters[extruder_id])), volume * m_filament_densities[extruder_id] * 0.001}; + double section_area = PI * sqr(0.5 * m_filament_diameters[extruder_id]); + std::pair ret = {section_area < EPSILON ? 0 : (koef * volume / section_area), volume * m_filament_densities[extruder_id] * 0.001}; return ret; };