|
@@ -198,23 +198,24 @@ class CuraEngineBackend(QObject, Backend):
|
|
|
self._slice_start_time = time()
|
|
|
if not self._build_plates_to_be_sliced:
|
|
|
self.processingProgress.emit(1.0)
|
|
|
- self.backendStateChange.emit(BackendState.Done)
|
|
|
Logger.log("w", "Slice unnecessary, nothing has changed that needs reslicing.")
|
|
|
return
|
|
|
|
|
|
if self._process_layers_job:
|
|
|
Logger.log("d", " ## Process layers job still busy, trying later")
|
|
|
- self._invokeSlice()
|
|
|
return
|
|
|
|
|
|
+ if not hasattr(self._scene, "gcode_list"):
|
|
|
+ self._scene.gcode_list = {}
|
|
|
+
|
|
|
# see if we really have to slice
|
|
|
active_build_plate = Application.getInstance().getBuildPlateModel().activeBuildPlate
|
|
|
build_plate_to_be_sliced = self._build_plates_to_be_sliced.pop(0)
|
|
|
Logger.log("d", "Going to slice build plate [%s]!" % build_plate_to_be_sliced)
|
|
|
num_objects = self._numObjects()
|
|
|
if build_plate_to_be_sliced not in num_objects or num_objects[build_plate_to_be_sliced] == 0:
|
|
|
+ self._scene.gcode_list[build_plate_to_be_sliced] = []
|
|
|
Logger.log("d", "Build plate %s has 0 objects to be sliced, skipping", build_plate_to_be_sliced)
|
|
|
- self._invokeSlice()
|
|
|
return
|
|
|
|
|
|
self._stored_layer_data = []
|
|
@@ -231,8 +232,6 @@ class CuraEngineBackend(QObject, Backend):
|
|
|
self.processingProgress.emit(0.0)
|
|
|
self.backendStateChange.emit(BackendState.NotStarted)
|
|
|
|
|
|
- if not hasattr(self._scene, "gcode_list"):
|
|
|
- self._scene.gcode_list = {}
|
|
|
self._scene.gcode_list[build_plate_to_be_sliced] = [] #[] indexed by build plate number
|
|
|
self._slicing = True
|
|
|
self.slicingStarted.emit()
|
|
@@ -357,6 +356,18 @@ class CuraEngineBackend(QObject, Backend):
|
|
|
else:
|
|
|
self.backendStateChange.emit(BackendState.NotStarted)
|
|
|
|
|
|
+ if job.getResult() == StartSliceJob.StartJobResult.NothingToSlice:
|
|
|
+ if Application.getInstance().platformActivity:
|
|
|
+ self._error_message = Message(catalog.i18nc("@info:status", "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit."),
|
|
|
+ title = catalog.i18nc("@info:title", "Unable to slice"))
|
|
|
+ self._error_message.show()
|
|
|
+ self.backendStateChange.emit(BackendState.Error)
|
|
|
+ else:
|
|
|
+ self.backendStateChange.emit(BackendState.NotStarted)
|
|
|
+ pass
|
|
|
+ self._invokeSlice()
|
|
|
+ return
|
|
|
+
|
|
|
# Preparation completed, send it to the backend.
|
|
|
self._socket.sendMessage(job.getSliceMessage())
|
|
|
|