mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-10 10:47:16 +00:00
Fix organic support being printed into object top surfaces (#15539)
This commit is contained in:
@@ -1654,6 +1654,9 @@ void generate_support_toolpaths(
|
|||||||
if (top_contact_layer.could_merge(interface_layer) && ! raft_layer)
|
if (top_contact_layer.could_merge(interface_layer) && ! raft_layer)
|
||||||
top_contact_layer.merge(std::move(interface_layer));
|
top_contact_layer.merge(std::move(interface_layer));
|
||||||
}
|
}
|
||||||
|
// Orca: Organic bottom contacts are projection seeds, not same-layer toolpaths.
|
||||||
|
// Do not merge them into another same-layer support region.
|
||||||
|
if (!organic_tree) {
|
||||||
if (!bottom_interfaces && support_params.can_merge_support_regions) {
|
if (!bottom_interfaces && support_params.can_merge_support_regions) {
|
||||||
if (base_layer.could_merge(bottom_contact_layer))
|
if (base_layer.could_merge(bottom_contact_layer))
|
||||||
base_layer.merge(std::move(bottom_contact_layer));
|
base_layer.merge(std::move(bottom_contact_layer));
|
||||||
@@ -1669,7 +1672,7 @@ void generate_support_toolpaths(
|
|||||||
bottom_contact_layer.set_polygons_to_extrude(
|
bottom_contact_layer.set_polygons_to_extrude(
|
||||||
diff(bottom_contact_layer.polygons_to_extrude(), top_contact_layer.polygons_to_extrude()));
|
diff(bottom_contact_layer.polygons_to_extrude(), top_contact_layer.polygons_to_extrude()));
|
||||||
}
|
}
|
||||||
} else if (bottom_contact_layer.could_merge(interface_layer) && ! organic_tree) {
|
} else if (bottom_contact_layer.could_merge(interface_layer)) {
|
||||||
const bool interface_layer_is_bottom = interface_layer.layer->layer_type == SupporLayerType::BottomInterface;
|
const bool interface_layer_is_bottom = interface_layer.layer->layer_type == SupporLayerType::BottomInterface;
|
||||||
if (bottom_interfaces && interface_layer_is_bottom) {
|
if (bottom_interfaces && interface_layer_is_bottom) {
|
||||||
bottom_contact_layer.merge(std::move(interface_layer));
|
bottom_contact_layer.merge(std::move(interface_layer));
|
||||||
@@ -1678,6 +1681,7 @@ void generate_support_toolpaths(
|
|||||||
diff(bottom_contact_layer.polygons_to_extrude(), interface_layer.polygons_to_extrude()));
|
diff(bottom_contact_layer.polygons_to_extrude(), interface_layer.polygons_to_extrude()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Orca: For organic trees the support-material regions are generated from
|
// Orca: For organic trees the support-material regions are generated from
|
||||||
// expanded wall polygons. With zero top Z gap and separate interface material,
|
// expanded wall polygons. With zero top Z gap and separate interface material,
|
||||||
|
|||||||
Reference in New Issue
Block a user