diff --git a/cura/Scene/ConvexHullDecorator.py b/cura/Scene/ConvexHullDecorator.py index 1aae97942a..2d8224eecc 100644 --- a/cura/Scene/ConvexHullDecorator.py +++ b/cura/Scene/ConvexHullDecorator.py @@ -66,6 +66,10 @@ class ConvexHullDecorator(SceneNodeDecorator): node.boundingBoxChanged.connect(self._onChanged) + per_object_stack = node.callDecoration("getStack") + if per_object_stack: + per_object_stack.propertyChanged.connect(self._onSettingValueChanged) + self._onChanged() ## Force that a new (empty) object is created upon copy. @@ -76,7 +80,8 @@ class ConvexHullDecorator(SceneNodeDecorator): def getConvexHull(self) -> Optional[Polygon]: if self._node is None: return None - + if self._node.callDecoration("isNonPrintingMesh"): + return None hull = self._compute2DConvexHull() if self._global_stack and self._node is not None and hull is not None: @@ -106,7 +111,8 @@ class ConvexHullDecorator(SceneNodeDecorator): def getConvexHullHead(self) -> Optional[Polygon]: if self._node is None: return None - + if self._node.callDecoration("isNonPrintingMesh"): + return None if self._global_stack: if self._global_stack.getProperty("print_sequence", "value") == "one_at_a_time" and not self.hasGroupAsParent(self._node): head_with_fans = self._compute2DConvexHeadMin() @@ -122,6 +128,9 @@ class ConvexHullDecorator(SceneNodeDecorator): def getConvexHullBoundary(self) -> Optional[Polygon]: if self._node is None: return None + + if self._node.callDecoration("isNonPrintingMesh"): + return None if self._global_stack: if self._global_stack.getProperty("print_sequence", "value") == "one_at_a_time" and not self.hasGroupAsParent(self._node): @@ -398,4 +407,4 @@ class ConvexHullDecorator(SceneNodeDecorator): ## Settings that change the convex hull. # # If these settings change, the convex hull should be recalculated. - _influencing_settings = {"xy_offset", "xy_offset_layer_0", "mold_enabled", "mold_width"} + _influencing_settings = {"xy_offset", "xy_offset_layer_0", "mold_enabled", "mold_width", "anti_overhang_mesh", "infill_mesh", "cutting_mesh"}