From d2664ea29549ea34c18c606e38e662555e8b4543 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Thu, 6 Jan 2022 11:11:54 +0100 Subject: [PATCH] Fixed crashes with specific configuration of draft shield: the crashing cases were: - skirts=0 + dsEnabled - skirt_height=0 + dsLimited Also, when ooze_prevention is enabled with multiple extruders and skirt is disabled, 2.4.0 does not generate infinite skirt. Version 2.3.3 does, ooze prevention overrides the disabled skirt. This commit reinstates the old behaviour. The issues were introduced in b466f18. --- src/libslic3r/Print.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index d82a1a093b..e8078931b8 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -349,7 +349,9 @@ bool Print::has_infinite_skirt() const bool Print::has_skirt() const { - return (m_config.skirt_height > 0 && m_config.skirts > 0) || m_config.draft_shield != dsDisabled; + return (m_config.skirt_height > 0 && m_config.skirts > 0) || has_infinite_skirt(); + // case dsLimited should only be taken into account when skirt_height and skirts are positive, + // so it is covered by the first condition. } bool Print::has_brim() const