Fixed "Too much support generated for buildplate only supports"
https://github.com/prusa3d/Slic3r/issues/359
This commit is contained in:
parent
774c69e3c6
commit
7c1350d007
1 changed files with 10 additions and 6 deletions
|
@ -730,6 +730,11 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::top_contact_
|
||||||
if (lower_layer_offset == 0.f) {
|
if (lower_layer_offset == 0.f) {
|
||||||
// Support everything.
|
// Support everything.
|
||||||
diff_polygons = diff(layerm_polygons, lower_layer_polygons);
|
diff_polygons = diff(layerm_polygons, lower_layer_polygons);
|
||||||
|
if (! buildplate_covered.empty()) {
|
||||||
|
// Don't support overhangs above the top surfaces.
|
||||||
|
// This step is done before the contact surface is calculated by growing the overhang region.
|
||||||
|
diff_polygons = diff(diff_polygons, buildplate_covered[layer_id]);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Get the regions needing a suport, collapse very tiny spots.
|
// Get the regions needing a suport, collapse very tiny spots.
|
||||||
//FIXME cache the lower layer offset if this layer has multiple regions.
|
//FIXME cache the lower layer offset if this layer has multiple regions.
|
||||||
|
@ -737,6 +742,11 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::top_contact_
|
||||||
diff(layerm_polygons,
|
diff(layerm_polygons,
|
||||||
offset(lower_layer_polygons, lower_layer_offset, SUPPORT_SURFACES_OFFSET_PARAMETERS)),
|
offset(lower_layer_polygons, lower_layer_offset, SUPPORT_SURFACES_OFFSET_PARAMETERS)),
|
||||||
-0.1f*fw, +0.1f*fw);
|
-0.1f*fw, +0.1f*fw);
|
||||||
|
if (! buildplate_covered.empty()) {
|
||||||
|
// Don't support overhangs above the top surfaces.
|
||||||
|
// This step is done before the contact surface is calculated by growing the overhang region.
|
||||||
|
diff_polygons = diff(diff_polygons, buildplate_covered[layer_id]);
|
||||||
|
}
|
||||||
if (diff_polygons.empty())
|
if (diff_polygons.empty())
|
||||||
continue;
|
continue;
|
||||||
// Offset the support regions back to a full overhang, restrict them to the full overhang.
|
// Offset the support regions back to a full overhang, restrict them to the full overhang.
|
||||||
|
@ -826,12 +836,6 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::top_contact_
|
||||||
}
|
}
|
||||||
} // if (m_objconfig->dont_support_bridges)
|
} // if (m_objconfig->dont_support_bridges)
|
||||||
|
|
||||||
if (! buildplate_covered.empty()) {
|
|
||||||
// Don't support overhangs above the top surfaces.
|
|
||||||
// This step is done before the contact surface is calculated by growing the overhang region.
|
|
||||||
diff_polygons = diff(diff_polygons, buildplate_covered[layer_id]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (diff_polygons.empty())
|
if (diff_polygons.empty())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue