#661 fix support overhangs

This commit is contained in:
supermerill 2020-11-15 15:02:04 +01:00
parent 70edbbfca1
commit 60b8d2059e

View File

@ -904,13 +904,19 @@ namespace SupportMaterialInternal {
polyline.extend_start(fw); polyline.extend_start(fw);
polyline.extend_end(fw); polyline.extend_end(fw);
// Is the straight perimeter segment supported at both sides? // Is the straight perimeter segment supported at both sides?
for (size_t i = 0; i < lower_layer.lslices.size(); ++ i) bool first_point_supported = false;
if (lower_layer.lslices_bboxes[i].contains(polyline.first_point()) && lower_layer.lslices_bboxes[i].contains(polyline.last_point()) && for (size_t i = 0; i < lower_layer.lslices.size(); ++ i)
lower_layer.lslices[i].contains(polyline.first_point()) && lower_layer.lslices[i].contains(polyline.last_point())) { if (lower_layer.lslices_bboxes[i].contains(polyline.first_point()) &&lower_layer.lslices[i].contains(polyline.first_point()) ) {
// Offset a polyline into a thick line. first_point_supported = true;
polygons_append(bridges, offset(polyline, 0.5f * w + 10.f)); break;
break; }
} if(first_point_supported)
for (size_t i = 0; i < lower_layer.lslices.size(); ++i)
if (lower_layer.lslices_bboxes[i].contains(polyline.last_point()) && lower_layer.lslices[i].contains(polyline.last_point())) {
// Offset a polyline into a thick line.
polygons_append(bridges, offset(polyline, 0.5f * w + 10.f));
break;
}
} }
bridges = union_(bridges); bridges = union_(bridges);
} }