def OnTermKey(self, e):
if len(self.termHistory) > 0:
if e.GetKeyCode() == wx.WXK_UP:
- self.termHistoryIdx = self.termHistoryIdx - 1
+ self.termHistoryIdx -= 1
if self.termHistoryIdx < 0:
self.termHistoryIdx = len(self.termHistory) - 1
self.termInput.SetValue(self.termHistory[self.termHistoryIdx])
if e.GetKeyCode() == wx.WXK_DOWN:
- self.termHistoryIdx = self.termHistoryIdx - 1
+ self.termHistoryIdx -= 1
if self.termHistoryIdx >= len(self.termHistory):
self.termHistoryIdx = 0
self.termInput.SetValue(self.termHistory[self.termHistoryIdx])
from OpenGL.GLU import *
from OpenGL.GL import *
+from Cura.gui import printWindow
from Cura.util import profile
from Cura.util import meshLoader
from Cura.util import objectScene
from Cura.util import resources
from Cura.util import sliceEngine
+from Cura.util import machineCom
from Cura.gui.util import opengl
from Cura.gui.util import openglGui
self._platformMesh = meshLoader.loadMeshes(resources.getPathForMesh('ultimaker_platform.stl'))[0]
self._platformMesh._drawOffset = numpy.array([0,0,0.5], numpy.float32)
self._isSimpleMode = True
- self._slicer = sliceEngine.Slicer(self._updateSliceProgress)
- self._sceneUpdateTimer = wx.Timer(self)
- self.Bind(wx.EVT_TIMER, lambda e : self._slicer.runSlicer(self._scene), self._sceneUpdateTimer)
self.openFileButton = openglGui.glButton(self, 4, 'Load', (0,0), self.ShowLoadModel)
self.printButton = openglGui.glButton(self, 6, 'Print', (1,0), self.ShowPrintWindow)
self.printButton.setDisabled(True)
+ self._slicer = sliceEngine.Slicer(self._updateSliceProgress)
+ self._sceneUpdateTimer = wx.Timer(self)
+ self.Bind(wx.EVT_TIMER, lambda e : self._slicer.runSlicer(self._scene), self._sceneUpdateTimer)
+
self.updateProfileToControls()
wx.EVT_IDLE(self, self.OnIdle)
self.loadScene([filename])
def ShowPrintWindow(self):
- pass
+ if machineCom.machineIsConnected():
+ printWindow.printFile(self._slicer.getGCodeFilename())
def OnIdle(self, e):
if self._animView is not None or self._animZoom is not None:
self.Refresh()
def OnMouseUp(self, e):
+ if e.LeftIsDown() or e.MiddleIsDown() or e.RightIsDown():
+ return
if self._mouseState == 'dragOrClick':
if e.Button == 1:
if self._focusObj is not None:
else:
self._selectedObj = None
self.Refresh()
+ if e.Button == 3 and self._selectedObj == self._focusObj:
+ #menu = wx.Menu()
+ #menu.Append(-1, 'Test')
+ #self.PopupMenu(menu)
+ #menu.Destroy()
+ pass
if self._mouseState == 'dragObject' and self._selectedObj is not None:
self._scene.pushFree()
self.sceneUpdated()
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT)
def OnPaint(self,e):
+ self.printButton._imageID = 6 if machineCom.machineIsConnected() else 2
+
if self._animView is not None:
self._viewTarget = self._animView.getPosition()
if self._animView.isDone():
import re
import traceback
import threading
+import platform
import Queue as queue
import serial
def serialList(forAutoDetect=False):
baselist=[]
- if os.name=="nt":
+ if platform.system() == "Windows":
try:
key=_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,"HARDWARE\\DEVICEMAP\\SERIALCOMM")
i=0
while True:
values = _winreg.EnumValue(key, i)
if not forAutoDetect or 'USBSER' in values[0]:
- baselist+=[_winreg.EnumValue(key,i)[1]]
+ baselist+=[values[1]]
i+=1
except:
pass
if prev in baselist:
baselist.remove(prev)
baselist.insert(0, prev)
- if version.isDevVersion():
+ if version.isDevVersion() and not forAutoDetect:
baselist.append('VIRTUAL')
return baselist
+def machineIsConnected():
+ port = profile.getPreference('serial_port')
+ if port == 'AUTO':
+ return len(serialList(True)) > 0
+ if platform.system() == "Windows":
+ return port in serialList(True)
+ return os.path.isfile(port)
+
def baudrateList():
ret = [250000, 230400, 115200, 57600, 38400, 19200, 9600]
if profile.getPreference('serial_baud_auto') != '':
STATE_CLOSED_WITH_ERROR = 10
def __init__(self, port = None, baudrate = None, callbackObject = None):
- if port == None:
+ if port is None:
port = profile.getPreference('serial_port')
- if baudrate == None:
+ if baudrate is None:
if profile.getPreference('serial_baud') == 'AUTO':
baudrate = 0
else:
baudrate = int(profile.getPreference('serial_baud'))
- if callbackObject == None:
+ if callbackObject is None:
callbackObject = MachineComPrintCallback()
self._port = port
self._printSection = 'CUSTOM'
self._changeState(self.STATE_PRINTING)
self._printStartTime = time.time()
- for i in xrange(0, 6):
+ for i in xrange(0, 4):
self._sendNext()
def cancelPrint(self):