c = retractColor\r
else:\r
c = moveColor\r
+ zOffset = 0.01\r
if path.type == 'extrude':\r
if path.pathType == 'FILL':\r
c = fillColorCycle[fillCycle]\r
fillCycle = (fillCycle + 1) % len(fillColorCycle)\r
elif path.pathType == 'WALL-INNER':\r
c = innerWallColor\r
+ zOffset = 0.02\r
elif path.pathType == 'SUPPORT':\r
c = supportColor\r
elif path.pathType == 'SKIRT':\r
\r
glBegin(GL_QUADS)\r
glColor3fv(c)\r
- glVertex3f(vv0.x, vv0.y, vv0.z - 0.01)\r
- glVertex3f(vv1.x, vv1.y, vv1.z - 0.01)\r
- glVertex3f(vv3.x, vv3.y, vv3.z - 0.01)\r
- glVertex3f(vv2.x, vv2.y, vv2.z - 0.01)\r
+ glVertex3f(vv0.x, vv0.y, vv0.z - zOffset)\r
+ glVertex3f(vv1.x, vv1.y, vv1.z - zOffset)\r
+ glVertex3f(vv3.x, vv3.y, vv3.z - zOffset)\r
+ glVertex3f(vv2.x, vv2.y, vv2.z - zOffset)\r
glEnd()\r
if prevNormal != None:\r
n = (normal + prevNormal)\r
vv5 = v0 - n * lineWidth\r
glBegin(GL_QUADS)\r
glColor3fv(c)\r
- glVertex3f(vv2.x, vv2.y, vv2.z)\r
- glVertex3f(vv4.x, vv4.y, vv4.z)\r
- glVertex3f(prevVv3.x, prevVv3.y, prevVv3.z)\r
- glVertex3f(v0.x, v0.y, v0.z)\r
+ glVertex3f(vv2.x, vv2.y, vv2.z - zOffset)\r
+ glVertex3f(vv4.x, vv4.y, vv4.z - zOffset)\r
+ glVertex3f(prevVv3.x, prevVv3.y, prevVv3.z - zOffset)\r
+ glVertex3f(v0.x, v0.y, v0.z - zOffset)\r
\r
- glVertex3f(vv0.x, vv0.y, vv0.z)\r
- glVertex3f(vv5.x, vv5.y, vv5.z)\r
- glVertex3f(prevVv1.x, prevVv1.y, prevVv1.z)\r
- glVertex3f(v0.x, v0.y, v0.z)\r
+ glVertex3f(vv0.x, vv0.y, vv0.z - zOffset)\r
+ glVertex3f(vv5.x, vv5.y, vv5.z - zOffset)\r
+ glVertex3f(prevVv1.x, prevVv1.y, prevVv1.z - zOffset)\r
+ glVertex3f(v0.x, v0.y, v0.z - zOffset)\r
glEnd()\r
\r
prevNormal = normal\r
\r
sb = wx.StaticBox(self.panel, label="Statistics")\r
boxsizer = wx.StaticBoxSizer(sb, wx.VERTICAL)\r
- self.statsText = wx.StaticText(self.panel, -1, "Filament: ####.##m #.##g\nPrint time: #####:##\nMachine state:\nDetecting baudrateXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")\r
+ self.statsText = wx.StaticText(self.panel, -1, "Filament: ####.##m #.##g\nEstimated print time: #####:##\nMachine state:\nDetecting baudrateXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")\r
boxsizer.Add(self.statsText, flag=wx.LEFT, border=5)\r
\r
self.sizer.Add(boxsizer, pos=(0,0), span=(6,1), flag=wx.EXPAND)\r
sizer = wx.GridBagSizer(2, 2)\r
self.camPage.SetSizer(sizer)\r
\r
- self.timelapsEnable = wx.CheckBox(self.camPage, -1, 'Enable timelaps')\r
+ self.timelapsEnable = wx.CheckBox(self.camPage, -1, 'Enable timelaps movie recording')\r
sizer.Add(self.timelapsEnable, pos=(0,0), span=(1,2), flag=wx.EXPAND)\r
\r
pages = self.cam.propertyPages()\r
cost = self.gcode.calculateCost()\r
if cost != False:\r
status += "Filament cost: %s\n" % (cost)\r
- status += "Print time: %02d:%02d\n" % (int(self.gcode.totalMoveTimeMinute / 60), int(self.gcode.totalMoveTimeMinute % 60))\r
+ status += "Estimated print time: %02d:%02d\n" % (int(self.gcode.totalMoveTimeMinute / 60), int(self.gcode.totalMoveTimeMinute % 60))\r
if self.machineCom == None or not self.machineCom.isPrinting():\r
self.progress.SetValue(0)\r
if self.gcodeList != None:\r
self.UpdateButtonStates()\r
\r
def OnCancel(self, e):\r
- if self.cam != None:\r
- self.cam.endTimelaps()\r
self.pauseButton.SetLabel('Pause')\r
self.machineCom.cancelPrint()\r
self.machineCom.sendCommand("M84")\r
self.temperatureGraph.addPoint(temp, self.temperatureSelect.GetValue(), bedTemp, self.bedTemperatureSelect.GetValue())\r
\r
def mcStateChange(self, state):\r
+ if self.machineCom != None and state == self.machineCom.STATE_OPERATIONAL and self.cam != None:\r
+ self.cam.endTimelaps()\r
wx.CallAfter(self.UpdateButtonStates)\r
wx.CallAfter(self.UpdateProgress)\r
\r
wx.CallAfter(self.UpdateProgress)\r
\r
def mcZChange(self, newZ):\r
+ self.currentZ = newZ\r
if self.cam != None:\r
wx.CallAfter(self.cam.takeNewImage)\r
wx.CallAfter(self.camPreview.Refresh)\r
self._timelapsFilename = filename\r
self._snapshotCount = 0\r
self._doTimelaps = True\r
+ print "startTimelaps"\r
\r
def endTimelaps(self):\r
if self._doTimelaps:\r
return ''
if self.readList == None:
return ''
- time.sleep(0.01)
+ time.sleep(0.001)
#print "Recv: %s" % (self.readList[0].rstrip())
return self.readList.pop(0)
def _monitor(self):
timeout = time.time() + 5
+ tempRequestTimeout = timeout
while True:
line = self._readline()
if line == None:
if ret == '':
#self._log("Recv: TIMEOUT")
return ''
- self._log("Recv: %s" % (unicode(ret, 'ascii', 'replace').encode('ascii', 'replace').rstrip()))
+ if ret != 'ok\n':
+ self._log("Recv: %s" % (unicode(ret, 'ascii', 'replace').encode('ascii', 'replace').rstrip()))
return ret
def close(self, isError = False):
def _sendCommand(self, cmd):
if self._serial == None:
return
- self._log('Send: %s' % (cmd))
+ if not cmd.startswith('N'):
+ self._log('Send: %s' % (cmd))
try:
#TODO: This can throw a write timeout exception, but we do not want timeout on writes. Find a fix for this.
# Oddly enough, the write timeout is not even set and thus we should not get a write timeout.
7z x ffmpeg-20120927-git-13f0cd6-win32-static.7z ffmpeg-20120927-git-13f0cd6-win32-static/bin/ffmpeg.exe
mkdir -p ${TARGET_DIR}/python
+ mkdir -p ${TARGET_DIR}/Cura/
mv \$_OUTDIR/App/* ${TARGET_DIR}/python
mv \$_OUTDIR/Lib/site-packages/wx* ${TARGET_DIR}/python/Lib/site-packages/
mv PURELIB/serial ${TARGET_DIR}/python/Lib
mv PURELIB/OpenGL ${TARGET_DIR}/python/Lib
mv PLATLIB/numpy ${TARGET_DIR}/python/Lib
mv VideoCapture-0.9-5/Python27/DLLs/vidcap.pyd ${TARGET_DIR}/python/DLLs
- mv ffmpeg-20120927-git-13f0cd6-win32-static/bin/ffmpeg.exe ${TARGET_DIR}/Cura
+ mv ffmpeg-20120927-git-13f0cd6-win32-static/bin/ffmpeg.exe ${TARGET_DIR}/Cura/
rm -rf \$_OUTDIR
rm -rf PURELIB
rm -rf PLATLIB