From: daid303 Date: Thu, 4 Oct 2012 13:01:54 +0000 (+0200) Subject: Update how the printing time remaining estimate is calculated. This gives better... X-Git-Tag: 13.03~279 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=6ebaa3551837b5680d78706f65bb6b143bcf2c10;p=cura.git Update how the printing time remaining estimate is calculated. This gives better accurate results as the first part of the print is not added in the estimate, removing the heating and startup-code from the equasion. --- diff --git a/Cura/gui/printWindow.py b/Cura/gui/printWindow.py index a648dccc..b95b2004 100644 --- a/Cura/gui/printWindow.py +++ b/Cura/gui/printWindow.py @@ -352,13 +352,12 @@ class printWindow(wx.Frame): status += 'Line: -/%d\n' % (len(self.gcodeList)) else: printTime = self.machineCom.getPrintTime() / 60 - printTimeTotal = printTime * len(self.gcodeList) / self.machineCom.getPrintPos() - printTimeLeft = printTimeTotal - printTime + printTimeLeft = self.machineCom.getPrintTimeRemainingEstimate() status += 'Line: %d/%d %d%%\n' % (self.machineCom.getPrintPos(), len(self.gcodeList), self.machineCom.getPrintPos() * 100 / len(self.gcodeList)) if self.currentZ > 0: status += 'Height: %0.1f\n' % (self.currentZ) status += 'Print time: %02d:%02d\n' % (int(printTime / 60), int(printTime % 60)) - if printTime < 1: + if printTimeLeft == None: status += 'Print time left: Unknown\n' else: status += 'Print time left: %02d:%02d\n' % (int(printTimeLeft / 60), int(printTimeLeft % 60)) diff --git a/Cura/gui/simpleMode.py b/Cura/gui/simpleMode.py index 71eace9e..3e77ada1 100644 --- a/Cura/gui/simpleMode.py +++ b/Cura/gui/simpleMode.py @@ -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') diff --git a/Cura/util/machineCom.py b/Cura/util/machineCom.py index 1c0e60ee..c32e39c3 100644 --- a/Cura/util/machineCom.py +++ b/Cura/util/machineCom.py @@ -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()