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()