chiark / gitweb /
Update how the printing time remaining estimate is calculated. This gives better...
authordaid303 <daid303@gmail.com>
Thu, 4 Oct 2012 13:01:54 +0000 (15:01 +0200)
committerdaid303 <daid303@gmail.com>
Thu, 4 Oct 2012 13:01:54 +0000 (15:01 +0200)
Cura/gui/printWindow.py
Cura/gui/simpleMode.py
Cura/util/machineCom.py

index a648dccc89c459f8b78a50d0299fc307b2555453..b95b200481f5a509675139b5fdb4d684cdbf6b8f 100644 (file)
@@ -352,13 +352,12 @@ class printWindow(wx.Frame):
                                status += 'Line: -/%d\n' % (len(self.gcodeList))\r
                else:\r
                        printTime = self.machineCom.getPrintTime() / 60\r
-                       printTimeTotal = printTime * len(self.gcodeList) / self.machineCom.getPrintPos()\r
-                       printTimeLeft = printTimeTotal - printTime\r
+                       printTimeLeft = self.machineCom.getPrintTimeRemainingEstimate()\r
                        status += 'Line: %d/%d %d%%\n' % (self.machineCom.getPrintPos(), len(self.gcodeList), self.machineCom.getPrintPos() * 100 / len(self.gcodeList))\r
                        if self.currentZ > 0:\r
                                status += 'Height: %0.1f\n' % (self.currentZ)\r
                        status += 'Print time: %02d:%02d\n' % (int(printTime / 60), int(printTime % 60))\r
-                       if printTime < 1:\r
+                       if printTimeLeft == None:\r
                                status += 'Print time left: Unknown\n'\r
                        else:\r
                                status += 'Print time left: %02d:%02d\n' % (int(printTimeLeft / 60), int(printTimeLeft % 60))\r
index 71eace9ec11abc1e1dd99e404220e6c0beceaf6b..3e77ada10f62b8b470be681089ae3704505476d0 100644 (file)
@@ -180,9 +180,9 @@ class simpleModeWindow(configBase.configWindowBase):
                put('support', 'None')
                #put('machine_center_x', '100')
                #put('machine_center_y', '100')
-               put('retraction_enable', 'True')
+               put('retraction_enable', 'False')
                put('retraction_min_travel', '5.0')
-               put('retraction_speed', '13.5')
+               put('retraction_speed', '40.0')
                put('retraction_amount', '4.5')
                put('retraction_extra', '0.0')
                put('travel_speed', '150')
index 1c0e60ee74456f89002bb72ab2e5418a006ce9f1..c32e39c37a93489266ec8c2963e2521c21533fff 100644 (file)
@@ -161,6 +161,7 @@ class MachineCom(object):
                self._currentZ = -1
                self._heatupWaitStartTime = 0
                self._heatupWaitTimeLost = 0.0
+               self._printStartTime100 = None
                
                self.thread = threading.Thread(target=self._monitor)
                self.thread.daemon = True
@@ -226,7 +227,15 @@ class MachineCom(object):
                return self._gcodePos
        
        def getPrintTime(self):
-               return time.time() - self._printStartTime - self._heatupWaitTimeLost
+               return time.time() - self._printStartTime
+
+       def getPrintTimeRemainingEstimate(self):
+               if self._printStartTime100 == None or self.getPrintPos() < 200:
+                       return None
+               printTime = (time.time() - self._printStartTime100) / 60
+               printTimeTotal = printTime * (len(self._gcodeList) - 100) / (self.getPrintPos() - 100)
+               printTimeLeft = printTimeTotal - printTime
+               return printTimeLeft
        
        def getTemp(self):
                return self._temp
@@ -464,6 +473,8 @@ class MachineCom(object):
                if self._gcodePos >= len(self._gcodeList):
                        self._changeState(self.STATE_OPERATIONAL)
                        return
+               if self._gcodePos == 100:
+                       self._printStartTime100 = time.time()
                line = self._gcodeList[self._gcodePos]
                if type(line) is tuple:
                        self._printSection = line[1]
@@ -498,6 +509,7 @@ class MachineCom(object):
                        return
                self._gcodeList = gcodeList
                self._gcodePos = 0
+               self._printStartTime100 = None
                self._printSection = 'CUSTOM'
                self._changeState(self.STATE_PRINTING)
                self._printStartTime = time.time()