diff --git a/cura/BackendPlugin.py b/cura/BackendPlugin.py index 935b376c63..e8a08cf0be 100644 --- a/cura/BackendPlugin.py +++ b/cura/BackendPlugin.py @@ -22,6 +22,10 @@ class BackendPlugin(AdditionalSettingDefinitionsAppender, PluginObject): self._process = None self._is_running = False self._supported_slots: List[int] = [] + self._use_plugin = True + + def usePlugin(self) -> bool: + return self._use_plugin def getSupportedSlots(self) -> List[int]: return self._supported_slots @@ -55,6 +59,8 @@ class BackendPlugin(AdditionalSettingDefinitionsAppender, PluginObject): :return: True if the plugin process started successfully, False otherwise. """ + if not self.usePlugin(): + return False try: # STDIN needs to be None because we provide no input, but communicate via a local socket instead. # The NUL device sometimes doesn't exist on some computers. diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 892e4dfca6..4d924ac337 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -303,6 +303,8 @@ class StartSliceJob(Job): self._buildExtruderMessage(extruder_stack) for plugin in CuraApplication.getInstance().getBackendPlugins(): + if not plugin.usePlugin(): + continue for slot in plugin.getSupportedSlots(): # Right now we just send the message for every slot that we support. A single plugin can support # multiple slots