From 6201da0a6d16334674c3fdeb867a9b92c1c59ea9 Mon Sep 17 00:00:00 2001 From: "qing.zhang" Date: Tue, 22 Oct 2024 15:48:50 +0800 Subject: [PATCH] ENH: protect for accuracy issue Jira: none Signed-off-by: qing.zhang Change-Id: Ief104b8ea449e1292db5bd3847ecea779bccff39 --- src/libslic3r/ExtrusionEntity.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/ExtrusionEntity.cpp b/src/libslic3r/ExtrusionEntity.cpp index be9d28004..084e8c397 100644 --- a/src/libslic3r/ExtrusionEntity.cpp +++ b/src/libslic3r/ExtrusionEntity.cpp @@ -551,7 +551,8 @@ ExtrusionLoopSloped::ExtrusionLoopSloped( ExtrusionPaths &original_paths, paths.emplace_back(std::move(flat_path), *path); remaining_length = 0; } else { - remaining_length -= path_len; + // BBS: protection for accuracy issues + remaining_length = remaining_length - path_len < EPSILON ? 0 : remaining_length - path_len; const double end_ratio = lerp(1.0, start_slope_ratio, remaining_length / slope_min_length); add_slop(*path, path->polyline, start_ratio, end_ratio); start_ratio = end_ratio;