self.cancelButton.Enable(self.machineCom != None and (self.machineCom.isPrinting() or self.machineCom.isPaused()))\r
self.temperatureSelect.Enable(self.machineCom != None and self.machineCom.isOperational())\r
self.bedTemperatureSelect.Enable(self.machineCom != None and self.machineCom.isOperational())\r
- self.directControlPanel.Enable(self.machineCom != None and self.machineCom.isOperational())\r
+ self.directControlPanel.Enable(self.machineCom != None and self.machineCom.isOperational() and not self.machineCom.isPrinting())\r
self.machineLogButton.Show(self.machineCom != None and self.machineCom.isError())\r
\r
def UpdateProgress(self):\r
printTime = self.machineCom.getPrintTime() / 60\r
printTimeTotal = printTime * len(self.gcodeList) / self.machineCom.getPrintPos()\r
printTimeLeft = printTimeTotal - printTime\r
- status += 'Line: %d/%d\n' % (self.machineCom.getPrintPos(), len(self.gcodeList))\r
- status += 'Height: %f\n' % (self.currentZ)\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
status += 'Print time left: %02d:%02d\n' % (int(printTimeLeft / 60), int(printTimeLeft % 60))\r
self.progress.SetValue(self.machineCom.getPrintPos())\r
dc.SelectObject(self.backBuffer)\r
dc.Clear()\r
w, h = self.GetSizeTuple()\r
- x0 = 0\r
- t0 = 0\r
- bt0 = 0\r
- tSP0 = 0\r
- btSP0 = 0\r
bgLinePen = wx.Pen('#A0A0A0')\r
tempPen = wx.Pen('#FF4040')\r
tempSPPen = wx.Pen('#FFA0A0')\r
bedTempPen = wx.Pen('#4040FF')\r
bedTempSPPen = wx.Pen('#A0A0FF')\r
bedTempPenBG = wx.Pen('#D0D0FF')\r
+\r
+ x0 = 0\r
+ t0 = 0\r
+ bt0 = 0\r
+ tSP0 = 0\r
+ btSP0 = 0\r
+ for temp, tempSP, bedTemp, bedTempSP, t in self.points:\r
+ x1 = int(w - (now - t))\r
+ for x in xrange(x0, x1 + 1):\r
+ t = float(x - x0) / float(x1 - x0 + 1) * (temp - t0) + t0\r
+ bt = float(x - x0) / float(x1 - x0 + 1) * (bedTemp - bt0) + bt0\r
+ dc.SetPen(tempPenBG)\r
+ dc.DrawLine(x, h, x, h - (t * h / 300))\r
+ dc.SetPen(bedTempPenBG)\r
+ dc.DrawLine(x, h, x, h - (bt * h / 300))\r
+ t0 = temp\r
+ bt0 = bedTemp\r
+ tSP0 = tempSP\r
+ btSP0 = bedTempSP\r
+ x0 = x1 + 1\r
+\r
+ #Draw the grid\r
for x in xrange(w, 0, -30):\r
dc.SetPen(bgLinePen)\r
dc.DrawLine(x, 0, x, h)\r
dc.DrawLine(0, 0, w, 0)\r
dc.DrawLine(0, 0, 0, h)\r
\r
+ x0 = 0\r
+ t0 = 0\r
+ bt0 = 0\r
+ tSP0 = 0\r
+ btSP0 = 0\r
for temp, tempSP, bedTemp, bedTempSP, t in self.points:\r
x1 = int(w - (now - t))\r
for x in xrange(x0, x1 + 1):\r
bt = float(x - x0) / float(x1 - x0 + 1) * (bedTemp - bt0) + bt0\r
tSP = float(x - x0) / float(x1 - x0 + 1) * (tempSP - tSP0) + tSP0\r
btSP = float(x - x0) / float(x1 - x0 + 1) * (bedTempSP - btSP0) + btSP0\r
- dc.SetPen(tempPenBG)\r
- dc.DrawLine(x, h, x, h - (t * h / 300))\r
- dc.SetPen(bedTempPenBG)\r
- dc.DrawLine(x, h, x, h - (bt * h / 300))\r
dc.SetPen(tempSPPen)\r
dc.DrawPoint(x, h - (tSP * h / 300))\r
dc.SetPen(bedTempSPPen)\r