Skip to content

Commit

Permalink
Organic: Fix support blocker (#2595)
Browse files Browse the repository at this point in the history
Expand blockers a little bit to compensate the error in facet projection
  • Loading branch information
Noisyfox authored Nov 3, 2023
1 parent f1345d2 commit 528fb63
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions src/libslic3r/Support/TreeSupport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -249,8 +249,12 @@ static std::vector<std::pair<TreeSupportSettings, std::vector<size_t>>> group_me
raw_overhangs = overhangs;
raw_overhangs_calculated = true;
}
if (! (enforced_layer || blockers_layers.empty() || blockers_layers[layer_id].empty()))
overhangs = diff(overhangs, blockers_layers[layer_id], ApplySafetyOffset::Yes);
if (! (enforced_layer || blockers_layers.empty() || blockers_layers[layer_id].empty())) {
Polygons &blocker = blockers_layers[layer_id];
// Arthur: union_ is a must because after mirroring, the blocker polygons are in left-hand coordinates, ie clockwise,
// which are not valid polygons, and will be removed by offset. union_ can make these polygons right.
overhangs = diff(overhangs, offset(union_(blocker), scale_(g_config_tree_support_collision_resolution)), ApplySafetyOffset::Yes);
}
if (config.bridge_no_support) {
for (const LayerRegion *layerm : current_layer.regions())
remove_bridges_from_contacts(print_config, lower_layer, *layerm,
Expand Down

0 comments on commit 528fb63

Please sign in to comment.