chiark / gitweb /
re-use old slice in project planner, if we are slicing the same object again with...
authordaid <daid303@gmail.com>
Wed, 16 May 2012 11:48:15 +0000 (13:48 +0200)
committerdaid <daid303@gmail.com>
Wed, 16 May 2012 11:48:15 +0000 (13:48 +0200)
Cura/gui/projectPlanner.py

index ae7b1dc3732f1c2f09b906577283651fe64b61f0..d579ee429acf9d9c193f92932d58f08a272cf063 100644 (file)
@@ -1,7 +1,7 @@
 from __future__ import absolute_import\r
 import __init__\r
 \r
-import wx, os, platform, types, webbrowser, math, subprocess, threading, time\r
+import wx, os, platform, types, webbrowser, math, subprocess, threading, time, re\r
 import ConfigParser\r
 \r
 from wx import glcanvas\r
@@ -920,9 +920,16 @@ class ProjectSliceProgressWindow(wx.Frame):
                                        resultFile.write(data)\r
                                        data = f.read(4096)\r
                                f.close()\r
+                               savedCenterX = action.centerX\r
+                               savedCenterY = action.centerY\r
                        else:\r
                                f = open(action.filename[: action.filename.rfind('.')] + "_export.project_tmp", "r")\r
                                for line in f:\r
+                                       if line[0] != ';':\r
+                                               if 'X' in line:\r
+                                                       line = self._adjustNumberInLine(line, 'X', action.centerX - savedCenterX)\r
+                                               if 'Y' in line:\r
+                                                       line = self._adjustNumberInLine(line, 'Y', action.centerY - savedCenterY)\r
                                        resultFile.write(line)\r
                                f.close()\r
 \r
@@ -952,6 +959,10 @@ class ProjectSliceProgressWindow(wx.Frame):
                wx.CallAfter(self.statusText.SetLabel, status)\r
                wx.CallAfter(self.OnSliceDone)\r
        \r
+       def _adjustNumberInLine(self, line, tag, f):\r
+               m = re.search('^(.*'+tag+')([0-9\.]*)(.*)$', line)\r
+               return m.group(1) + str(float(m.group(2)) + f) + m.group(3) + '\n'\r
+       \r
        def OnSliceDone(self):\r
                self.abortButton.Destroy()\r
                self.closeButton = wx.Button(self, -1, "Close")\r