diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index d00a28c2bb..aa6b7fb63c 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -129,8 +129,8 @@ class BuildVolume(SceneNode): def _onSceneChanged(self, source): if self._global_container_stack: - # Just ignore the camera scene updates. The build volume won't change because of it! - if not isinstance(source, Camera): + # Ignore anything that is not something we can slice in the first place! + if source.callDecoration("isSliceable"): self._scene_change_timer.start() def _onSceneChangeTimerFinished(self): diff --git a/cura/PlatformPhysics.py b/cura/PlatformPhysics.py index 8ddcdbfb2f..8fffac4501 100755 --- a/cura/PlatformPhysics.py +++ b/cura/PlatformPhysics.py @@ -17,7 +17,6 @@ from cura.Scene import ZOffsetDecorator import random # used for list shuffling - class PlatformPhysics: def __init__(self, controller, volume): super().__init__() @@ -40,8 +39,9 @@ class PlatformPhysics: Application.getInstance().getPreferences().addPreference("physics/automatic_drop_down", True) def _onSceneChanged(self, source): - if not source.getMeshData(): + if not source.callDecoration("isSliceable"): return + self._change_timer.start() def _onChangeTimerFinished(self): diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index aac79f6c28..ceba5f3006 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -477,7 +477,7 @@ class CuraEngineBackend(QObject, Backend): # # \param source The scene node that was changed. def _onSceneChanged(self, source: SceneNode) -> None: - if not isinstance(source, SceneNode) or isinstance(source, Camera): + if not source.callDecoration("isSliceable"): return # This case checks if the source node is a node that contains GCode. In this case the