chiark / gitweb /
Merge tag '15.01-RC4' into upstream
[cura.git] / Cura / util / sliceEngine.py
index f16c033b49443530b7fe094e85604ac24a7faf01..1989d692d4fb2344db46f3bb24153746c4fbeb91 100644 (file)
@@ -143,7 +143,7 @@ class EngineResult(object):
                        time.sleep(0.1)
                return self._gcodeLoadCallback(self, progress)
 
-       def submitInfoOnline(self):
+       '''def submitInfoOnline(self):
                if profile.getPreference('submit_slice_information') != 'True':
                        return
                if version.isDevVersion():
@@ -165,7 +165,7 @@ class EngineResult(object):
                        f.close()
                except:
                        import traceback
-                       traceback.print_exc()
+                       traceback.print_exc()'''
 
 class Engine(object):
        """
@@ -285,11 +285,11 @@ class Engine(object):
        def runEngine(self, scene, overrides = None):
                if len(scene.objects()) < 1:
                        return
-               self._thread = threading.Thread(target=self._runEngine, args=(scene, overrides, self._thread))
+               self._thread = threading.Thread(target=self._runEngine, args=(scene, overrides, self._thread, pluginInfo.getPostProcessPluginConfig()))
                self._thread.daemon = True
                self._thread.start()
 
-       def _runEngine(self, scene, overrides, old_thread):
+       def _runEngine(self, scene, overrides, old_thread, pluginConfig):
                if old_thread is not None:
                        if self._process is not None:
                                self._process.terminate()
@@ -403,21 +403,26 @@ class Engine(object):
 
                        returnCode = self._process.wait()
                        logThread.join()
+                       self._result.addLog("Slicer process returned : %d" % returnCode)
                        if returnCode == 0:
-                               self._result.setFinished(True)
-                               plugin_error = pluginInfo.runPostProcessingPlugins(self._result)
+                               plugin_error = pluginInfo.runPostProcessingPlugins(self._result, pluginConfig)
                                if plugin_error is not None:
-                                       print plugin_error
                                        self._result.addLog(plugin_error)
+                               self._result.setFinished(True)
                                self._callback(1.0)
                        else:
-                               for line in self._result.getLog():
-                                       print line
                                self._callback(-1.0)
                        self._process = None
                except MemoryError:
                        self._result.addLog("MemoryError")
                        self._callback(-1.0)
+               finally:
+                       try:
+                               with open(os.path.join(profile.getBasePath(), 'engine.log'), "w") as f:
+                                       for line in self._result.getLog():
+                                               f.write(line + "\n")
+                       except:
+                               pass
 
        def _watchStderr(self, stderr):
                objectNr = 0
@@ -508,6 +513,7 @@ class Engine(object):
                        'extruderOffset[2].Y': int(profile.getMachineSettingFloat('extruder_offset_y2') * 1000),
                        'extruderOffset[3].X': int(profile.getMachineSettingFloat('extruder_offset_x3') * 1000),
                        'extruderOffset[3].Y': int(profile.getMachineSettingFloat('extruder_offset_y3') * 1000),
+                       'zOffset': int(profile.getMachineSettingFloat('extruder_z_offset') * 1000),
                        'fixHorrible': 0,
                }
                fanFullHeight = int(profile.getProfileSettingFloat('fan_full_height') * 1000)