FIX: hybrid tree support may crash due to empty extrusion entities
jira: none Change-Id: I521e27e7a4d12189efc77768d10d264d0d6db111
This commit is contained in:
parent
9c799cc986
commit
64ab78298b
|
@ -607,7 +607,7 @@ TreeSupport::TreeSupport(PrintObject& object, const SlicingParameters &slicing_p
|
|||
|
||||
if(support_pattern == smpLightning)
|
||||
m_support_params.base_fill_pattern = ipLightning;
|
||||
|
||||
diameter_angle_scale_factor = std::clamp<double>(m_object_config->tree_support_branch_diameter_angle * M_PI / 180., 0., 0.5 * M_PI - EPSILON);
|
||||
is_slim = is_tree_slim(support_type, m_support_params.support_style);
|
||||
is_strong = is_tree(support_type) && m_support_params.support_style == smsTreeStrong;
|
||||
base_radius = std::max(MIN_BRANCH_RADIUS, m_object_config->tree_support_branch_diameter.value / 2);
|
||||
|
@ -1291,6 +1291,7 @@ static void make_perimeter_and_infill(ExtrusionEntitiesPtr& dst, const ExPolygon
|
|||
dst = std::move(loops_entities);
|
||||
}
|
||||
}
|
||||
dst.erase(std::remove_if(dst.begin(), dst.end(), [](ExtrusionEntity *entity) { return static_cast<ExtrusionEntityCollection *>(entity)->empty(); }), dst.end());
|
||||
if (infill_first) {
|
||||
// sort regions to reduce travel
|
||||
Points ordering_points;
|
||||
|
|
|
@ -440,8 +440,7 @@ private:
|
|||
const coordf_t MIN_BRANCH_RADIUS = 0.4;
|
||||
const coordf_t MAX_BRANCH_RADIUS_FIRST_LAYER = 12.0;
|
||||
const coordf_t MIN_BRANCH_RADIUS_FIRST_LAYER = 2.0;
|
||||
const double tree_support_branch_diameter_angle = 5.0;
|
||||
const double diameter_angle_scale_factor = tan(tree_support_branch_diameter_angle*M_PI/180.0);
|
||||
double diameter_angle_scale_factor = tan(5.0*M_PI/180.0);
|
||||
// minimum roof area (1 mm^2), area smaller than this value will not have interface
|
||||
const double minimum_roof_area{SQ(scaled<double>(1.))};
|
||||
float top_z_distance = 0.0;
|
||||
|
|
Loading…
Reference in New Issue