From 4b7ad201596f4cc28d240b2e9ec66c8dd1f773b0 Mon Sep 17 00:00:00 2001 From: Arthur Date: Thu, 3 Nov 2022 14:21:05 +0800 Subject: [PATCH] FIX: tree support may crash for faulty models Root cause: overhang offset may be empty Jira: STUDIO-1197 Change-Id: If472be8ed6d209366f118f1f0e5e14b41ce26b3c (cherry picked from commit 663e7f29f01395bf335b6bccc91f192b64be69ae) --- src/libslic3r/TreeSupport.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/TreeSupport.cpp b/src/libslic3r/TreeSupport.cpp index c55a0e8cd..01374902e 100644 --- a/src/libslic3r/TreeSupport.cpp +++ b/src/libslic3r/TreeSupport.cpp @@ -2055,7 +2055,9 @@ void TreeSupport::draw_circles(const std::vector>& contact_no ExPolygon area; // 如果是混合支撑里的普通部分,或没有启用顶部接触层,则直接从overhang多边形生成 if (node.type == ePolygon || (top_interface_layers>0 &&node.support_roof_layers_below > 0)) { - area = offset_ex({ *node.overhang }, scale_(m_ts_data->m_xy_distance))[0]; + auto tmp = offset_ex({ *node.overhang }, scale_(m_ts_data->m_xy_distance)); + if(!tmp.empty()) // 对于有缺陷的模型,overhang膨胀以后可能是空的! + area = tmp[0]; } else { Polygon circle;