Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbubnikv <bubnikv@gmail.com>2018-10-03 17:12:24 +0300
committerbubnikv <bubnikv@gmail.com>2018-10-03 17:12:24 +0300
commit38f8ed62a015c49ed9002fde7fd796c77afb3315 (patch)
tree32f3e47d708df2fd98a1556253a956c3ddf65101 /xs/src/libslic3r
parentf8eb215937e0b338a75e54968f6232e474e63a88 (diff)
Fix of SPE-513: unblockable supports
There was a bug in the "don't support bridges" feature, where there were supports added to the end of non-supported bridges without taking into account the overhang angle or the support blockers.
Diffstat (limited to 'xs/src/libslic3r')
-rw-r--r--xs/src/libslic3r/SupportMaterial.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/xs/src/libslic3r/SupportMaterial.cpp b/xs/src/libslic3r/SupportMaterial.cpp
index cc689eaaa..2f0fbbfd6 100644
--- a/xs/src/libslic3r/SupportMaterial.cpp
+++ b/xs/src/libslic3r/SupportMaterial.cpp
@@ -783,14 +783,13 @@ namespace SupportMaterialInternal {
if (surface.surface_type == stBottomBridge && surface.bridge_angle != -1)
polygons_append(bridges, surface.expolygon);
//FIXME add the gap filled areas. Extrude the gaps with a bridge flow?
- contact_polygons = diff(contact_polygons, bridges, true);
- // Add the bridge anchors into the region.
+ // Remove the unsupported ends of the bridges from the bridged areas.
//FIXME add supports at regular intervals to support long bridges!
- polygons_append(contact_polygons,
- intersection(
+ bridges = diff(bridges,
// Offset unsupported edges into polygons.
- offset(layerm->unsupported_bridge_edges.polylines, scale_(SUPPORT_MATERIAL_MARGIN), SUPPORT_SURFACES_OFFSET_PARAMETERS),
- bridges));
+ offset(layerm->unsupported_bridge_edges.polylines, scale_(SUPPORT_MATERIAL_MARGIN), SUPPORT_SURFACES_OFFSET_PARAMETERS));
+ // Remove bridged areas from the supported areas.
+ contact_polygons = diff(contact_polygons, bridges, true);
}
}