FIX: lightning infill may fail for some cases

Change-Id: Ibc6e4e4262ef9fc0b36a936acc52a3b60dca2cb4
(cherry picked from commit e3b7c5c3404aa200c4b852b3963a7a0aae8837d2)
This commit is contained in:
Arthur 2022-12-07 10:54:43 +08:00 committed by Lane.Wei
parent 8375c73ac9
commit 6a644c271c
9 changed files with 34 additions and 36 deletions

View file

@ -1954,7 +1954,8 @@ ExPolygons avoid_object_remove_extra_small_parts(ExPolygons &expolys, const ExPo
void TreeSupport::draw_circles(const std::vector<std::vector<Node*>>& contact_nodes)
{
const PrintObjectConfig &config = m_object->config();
bool has_brim = m_object->print()->has_brim();
const Print* print = m_object->print();
bool has_brim = print->has_brim();
bool has_infill = config.support_base_pattern.value != smpNone && config.support_base_pattern != smpDefault;
int bottom_gap_layers = round(m_slicing_params.gap_object_support / m_slicing_params.layer_height);
const coordf_t branch_radius = config.tree_support_branch_diameter.value / 2;
@ -1979,7 +1980,6 @@ void TreeSupport::draw_circles(const std::vector<std::vector<Node*>>& contact_no
// Performance optimization. Only generate lslices for brim and skirt.
size_t brim_skirt_layers = has_brim ? 1 : 0;
const Print* print = m_object->print();
const PrintConfig& print_config = print->config();
for (const PrintObject* object : print->objects())
{
@ -2256,7 +2256,7 @@ void TreeSupport::draw_circles(const std::vector<std::vector<Node*>>& contact_no
#endif
}
generator = std::make_unique<FillLightning::Generator>(m_object, contours, overhangs, support_density);
generator = std::make_unique<FillLightning::Generator>(m_object, contours, overhangs, []() {}, support_density);
}
else if (!has_infill) {