diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index b88a4a33d2..8ce3110a93 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -256,10 +256,7 @@ class StartSliceJob(Job): self._buildGlobalInheritsStackMessage(stack) # Build messages for extruder stacks - # Send the extruder settings in the order of extruder positions. Somehow, if you send e.g. extruder 3 first, - # then CuraEngine can slice with the wrong settings. This I think should be fixed in CuraEngine as well. - extruder_stack_list = sorted(list(global_stack.extruders.items()), key = lambda item: int(item[0])) - for _, extruder_stack in extruder_stack_list: + for extruder_stack in global_stack.extruderList: self._buildExtruderMessage(extruder_stack) for group in filtered_object_groups: diff --git a/plugins/UFPReader/__init__.py b/plugins/UFPReader/__init__.py index 8f405d4f66..cfea4b9882 100644 --- a/plugins/UFPReader/__init__.py +++ b/plugins/UFPReader/__init__.py @@ -1,10 +1,15 @@ #Copyright (c) 2019 Ultimaker B.V. #Cura is released under the terms of the LGPLv3 or higher. +import sys + +from UM.Logger import Logger +try: + from . import UFPReader +except ImportError: + Logger.log("w", "Could not import UFPReader; libCharon may be missing") + from UM.i18n import i18nCatalog - -from . import UFPReader - i18n_catalog = i18nCatalog("cura") @@ -21,6 +26,9 @@ def getMetaData(): def register(app): + if "UFPReader.UFPReader" not in sys.modules: + return {} + app.addNonSliceableExtension(".ufp") return {"mesh_reader": UFPReader.UFPReader()}