From de78ee1d6408a77b3e8cf7eadc29e031864e950a Mon Sep 17 00:00:00 2001 From: daid303 Date: Tue, 2 Oct 2012 16:06:47 +0200 Subject: [PATCH] Large update to the config wizard, new style machine check (unfinished) --- Cura/example/Attribution.txt | 20 ++- Cura/example/UltimakerHandle.stl | Bin 0 -> 449484 bytes Cura/gui/configWizard.py | 249 +++++++++++++------------------ Cura/gui/preview3d.py | 1 + Cura/gui/printWindow.py | 5 +- Cura/gui/projectPlanner.py | 2 +- Cura/images/checkmark.png | Bin 0 -> 510 bytes Cura/images/cross.png | Bin 0 -> 394 bytes Cura/images/question.png | Bin 0 -> 596 bytes Cura/util/machineCom.py | 10 +- 10 files changed, 129 insertions(+), 158 deletions(-) create mode 100644 Cura/example/UltimakerHandle.stl create mode 100644 Cura/images/checkmark.png create mode 100644 Cura/images/cross.png create mode 100644 Cura/images/question.png diff --git a/Cura/example/Attribution.txt b/Cura/example/Attribution.txt index 09c83d60..1ff46805 100644 --- a/Cura/example/Attribution.txt +++ b/Cura/example/Attribution.txt @@ -1,8 +1,12 @@ -All the models in this example directory can be found on Thingiverse (www.thingiverse.com), a site for sharing digital designs for physical objects. Sharing is fun! - -The below models are shared under the CC BY-NC 3.0 license (http://creativecommons.org/licenses/by-nc/3.0/), and can be shared and used freely for none-commercial purposes: - -* UltimakerRobotCourseMesh.stl: Ultimaker Robot Low Poly by polymaker - http://www.thingiverse.com/thing:14472 - Derivative of Ultimaker Robot by Martijn: http://www.thingiverse.com/thing:11551 - +All the models in this example directory can be found on Thingiverse (www.thingiverse.com), a site for sharing digital designs for physical objects. Sharing is fun! + +The below models are shared under the CC BY-NC 3.0 license (http://creativecommons.org/licenses/by-nc/3.0/), and can be shared and used freely for none-commercial purposes as long as attribution is added: + +* UltimakerRobotCourseMesh.stl: Ultimaker Robot Low Poly by polymaker + http://www.thingiverse.com/thing:14472 + Derivative of Ultimaker Robot by Martijn: http://www.thingiverse.com/thing:11551 + +The below models are shared under the CC BY-SA 3.0 license (http://creativecommons.org/licenses/by-sa/3.0/), and can be shared and used freely as long as attribution is added: + +* UltimakerHandle.stl: Ultimaker handle by Silvius + http://www.thingiverse.com/thing:22819 \ No newline at end of file diff --git a/Cura/example/UltimakerHandle.stl b/Cura/example/UltimakerHandle.stl new file mode 100644 index 0000000000000000000000000000000000000000..b8251cc9ea325dba1fa08ce47034fa73b82bedea GIT binary patch literal 449484 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

#R88tXTL$e}jQIGvS#t0lmS}6J8a8~EjOk+u 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

2W+30)`T?Ml};qL8);`qh<%&^AGZgs!RbKB((K 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 O^`AWSd2!vL!~X-ER~aq< literal 0 HcmV?d00001 diff --git a/Cura/gui/configWizard.py b/Cura/gui/configWizard.py index 21dd54c8..0d49af30 100644 --- a/Cura/gui/configWizard.py +++ b/Cura/gui/configWizard.py @@ -5,6 +5,7 @@ import wx, os, platform, types, webbrowser, threading, time, re import wx.wizard from gui import firmwareInstall +from gui import toolbarUtil from util import machineCom from util import profile @@ -87,6 +88,14 @@ class InfoPage(wx.wizard.WizardPageSimple): self.GetSizer().Add(button, pos=(self.rowNr, 1), span=(1,1), flag=wx.LEFT) self.rowNr += 1 return text, button + + def AddCheckmark(self, label, bitmap): + check = wx.StaticBitmap(self, -1, bitmap) + text = wx.StaticText(self, -1, label) + self.GetSizer().Add(text, pos=(self.rowNr, 0), span=(1,1), flag=wx.LEFT|wx.RIGHT) + self.GetSizer().Add(check, pos=(self.rowNr, 1), span=(1,2), flag=wx.ALL) + self.rowNr += 1 + return check def AllowNext(self): return True @@ -102,7 +111,8 @@ class FirstInfoPage(InfoPage): self.AddText('This wizard will help you with the following steps:') self.AddText('* Configure Cura for your machine') self.AddText('* Upgrade your firmware') - self.AddText('* Calibrate your machine') + self.AddText('* Check if your machine is working safely') + #self.AddText('* Calibrate your machine') #self.AddText('* Do your first print') class RepRapInfoPage(InfoPage): @@ -204,8 +214,24 @@ class UltimakerCheckupPage(InfoPage): b1.Bind(wx.EVT_BUTTON, self.OnCheckClick) b2.Bind(wx.EVT_BUTTON, self.OnSkipClick) self.AddSeperator() - self.checkPanel = None - + self.checkBitmap = toolbarUtil.getBitmapImage('checkmark.png') + self.crossBitmap = toolbarUtil.getBitmapImage('cross.png') + self.unknownBitmap = toolbarUtil.getBitmapImage('question.png') + self.commState = self.AddCheckmark('Communication:', self.unknownBitmap) + self.tempState = self.AddCheckmark('Temperature:', self.unknownBitmap) + self.stopState = self.AddCheckmark('Endstops:', self.unknownBitmap) + self.AddSeperator() + self.checkState = self.AddText('') + self.machineState = self.AddText('') + self.temperatureLabel = self.AddText('') + self.comm = None + self.xMinStop = False + self.xMaxStop = False + self.yMinStop = False + self.yMaxStop = False + self.zMinStop = False + self.zMaxStop = False + def AllowNext(self): return False @@ -213,152 +239,89 @@ class UltimakerCheckupPage(InfoPage): self.GetParent().FindWindowById(wx.ID_FORWARD).Enable() def OnCheckClick(self, e): - if self.checkPanel != None: - self.checkPanel.Destroy() - self.checkPanel = wx.Panel(self) - self.checkPanel.SetSizer(wx.BoxSizer(wx.VERTICAL)) - self.GetSizer().Add(self.checkPanel, 0, wx.LEFT|wx.RIGHT, 5) - threading.Thread(target=self.OnRun).start() - - def AddProgressText(self, info): - text = wx.StaticText(self.checkPanel, -1, info) - self.checkPanel.GetSizer().Add(text, 0) - self.checkPanel.Layout() - self.Layout() - - def OnRun(self): - wx.CallAfter(self.AddProgressText, "Connecting to machine...") - self.comm = machineCom.MachineCom() - - if not self.comm.isOpen(): - wx.CallAfter(self.AddProgressText, "Error: Failed to open serial port to machine") - wx.CallAfter(self.AddProgressText, "If this keeps happening, try disconnecting and reconnecting the USB cable") - return - - wx.CallAfter(self.AddProgressText, "Checking start message...") - if self.DoCommCommandWithTimeout(None, 'start') == False: - wx.CallAfter(self.AddProgressText, "Error: Missing start message.") + if self.comm != None: self.comm.close() - return - - #Wait 3 seconds for the SD card init to timeout if we have SD in our firmware but there is no SD card found. - time.sleep(3) - - wx.CallAfter(self.AddProgressText, "Disabling step motors...") - if self.DoCommCommandWithTimeout('M84') == False: - wx.CallAfter(self.AddProgressText, "Error: Missing reply to Deactivate steppers (M84).") - self.comm.close() - return + del self.comm + wx.CallAfter(self.checkState.SetLabel, 'Connecting to machine.') + self.commState.SetBitmap(self.unknownBitmap) + self.tempState.SetBitmap(self.unknownBitmap) + self.stopState.SetBitmap(self.unknownBitmap) + self.checkupState = 0 + self.comm = machineCom.MachineCom(callbackObject=self) - if self.DoCommCommandWithTimeout("M104 S0") == False: - wx.CallAfter(self.AddProgressText, "Failed to set temperature") - self.comm.close() - return - - wx.MessageBox('Please move the printer head to the center of the machine\nalso move the platform so it is not at the highest or lowest position,\nand make sure the machine is powered on.', 'Machine check', wx.OK | wx.ICON_INFORMATION) - - idleTemp = self.readTemp() - if idleTemp > 40: - wx.CallAfter(self.AddProgressText, "Waiting for head to cool down before temperature test...") - while idleTemp > 40: - idleTemp = self.readTemp() - time.sleep(1) - - wx.CallAfter(self.AddProgressText, "Checking heater and temperature sensor...") - wx.CallAfter(self.AddProgressText, "(This takes about 30 seconds)") - if self.DoCommCommandWithTimeout("M104 S100") == False: - wx.CallAfter(self.AddProgressText, "Failed to set temperature") - self.comm.close() - return - - time.sleep(25) - tempInc = self.readTemp() - idleTemp - - if self.DoCommCommandWithTimeout("M104 S0") == False: - wx.CallAfter(self.AddProgressText, "Failed to set temperature") - self.comm.close() - return - - if tempInc < 15: - wx.CallAfter(self.AddProgressText, "Your temperature sensor or heater is not working!") - self.comm.close() - return - wx.CallAfter(self.AddProgressText, "Heater and temperature sensor working\nWarning: head might still be hot!") + def mcLog(self, message): + print message - wx.CallAfter(self.AddProgressText, "Checking endstops") - if self.DoCommCommandWithTimeout('M119', 'x_min') != "x_min:L x_max:L y_min:L y_max:L z_min:L z_max:L": - wx.CallAfter(self.AddProgressText, "Error: There is a problem in your endstops!\nOne of them seems to be pressed while it shouldn't\ncheck the cable connections and the switches themselfs.") - self.comm.close() - return - wx.CallAfter(self.AddProgressText, "Please press the X end switch in the front left corner.") - if not self.DoCommCommandAndWaitForReply('M119', 'x_min', "x_min:H x_max:L y_min:L y_max:L z_min:L z_max:L"): - wx.CallAfter(self.AddProgressText, "Failed to check the x_min endstop!") - self.comm.close() - return - wx.CallAfter(self.AddProgressText, "Please press the X end switch in the front right corner.") - if not self.DoCommCommandAndWaitForReply('M119', 'x_min', "x_min:L x_max:H y_min:L y_max:L z_min:L z_max:L"): - wx.CallAfter(self.AddProgressText, "Failed to check the x_max endstop!") - self.comm.close() - return - wx.CallAfter(self.AddProgressText, "Please press the Y end switch in the front left corner.") - if not self.DoCommCommandAndWaitForReply('M119', 'x_min', "x_min:L x_max:L y_min:H y_max:L z_min:L z_max:L"): - wx.CallAfter(self.AddProgressText, "Failed to check the x_max endstop!") - self.comm.close() - return - wx.CallAfter(self.AddProgressText, "Please press the Y end switch in the back left corner.") - if not self.DoCommCommandAndWaitForReply('M119', 'x_min', "x_min:L x_max:L y_min:L y_max:H z_min:L z_max:L"): - wx.CallAfter(self.AddProgressText, "Failed to check the x_max endstop!") - self.comm.close() - return - wx.CallAfter(self.AddProgressText, "Please press the Z end switch in the top.") - if not self.DoCommCommandAndWaitForReply('M119', 'x_min', "x_min:L x_max:L y_min:L y_max:L z_min:H z_max:L"): - wx.CallAfter(self.AddProgressText, "Failed to check the x_max endstop!") - self.comm.close() - return - wx.CallAfter(self.AddProgressText, "Please press the Z end switch in the bottom.") - if not self.DoCommCommandAndWaitForReply('M119', 'x_min', "x_min:L x_max:L y_min:L y_max:L z_min:L z_max:H"): - wx.CallAfter(self.AddProgressText, "Failed to check the x_max endstop!") - self.comm.close() - return - wx.CallAfter(self.AddProgressText, "End stops are working.") + def mcTempUpdate(self, temp, bedTemp): + if self.checkupState == 0: + self.tempCheckTimeout = 20 + if temp > 70: + self.checkupState = 1 + wx.CallAfter(self.checkState.SetLabel, 'Cooldown before temperature check.') + self.comm.sendCommand('M104 S0') + self.comm.sendCommand('M104 S0') + else: + self.startTemp = temp + self.checkupState = 2 + wx.CallAfter(self.checkState.SetLabel, 'Checking the heater and temperature sensor.') + self.comm.sendCommand('M104 S200') + self.comm.sendCommand('M104 S200') + elif self.checkupState == 1: + if temp < 60: + self.startTemp = temp + self.checkupState = 2 + wx.CallAfter(self.checkState.SetLabel, 'Checking the heater and temperature sensor.') + self.comm.sendCommand('M104 S200') + self.comm.sendCommand('M104 S200') + elif self.checkupState == 2: + if temp > self.startTemp:# + 40: + self.checkupState = 3 + wx.CallAfter(self.checkState.SetLabel, 'Testing the endstops...') + self.comm.sendCommand('M104 S0') + self.comm.sendCommand('M104 S0') + self.comm.sendCommand('M119') + self.tempState.SetBitmap(self.checkBitmap) + else: + self.tempCheckTimeout -= 1 + if self.tempCheckTimeout < 1: + self.checkupState = -1 + self.tempState.SetBitmap(self.crossBitmap) + wx.CallAfter(self.checkState.SetLabel, 'Temperature measurement FAILED!') + self.comm.sendCommand('M104 S0') + self.comm.sendCommand('M104 S0') + wx.CallAfter(self.temperatureLabel.SetLabel, 'Head temperature: %d' % (temp)) - wx.CallAfter(self.AddProgressText, "Done!") - wx.CallAfter(self.GetParent().FindWindowById(wx.ID_FORWARD).Enable) - self.comm.close() - - def readTemp(self): - line = self.DoCommCommandWithTimeout("M105", "ok T:") - if line == False: - return -1 - return int(re.search('T:([0-9]*)', line).group(1)) - - def DoCommCommandAndWaitForReply(self, cmd, replyStart, reply): - while True: - ret = self.DoCommCommandWithTimeout(cmd, replyStart) - if ret == reply: - return True - if ret == False: - return False - time.sleep(1) + def mcStateChange(self, state): + if self.comm.isOperational(): + self.commState.SetBitmap(self.checkBitmap) + elif self.comm.isError(): + self.commState.SetBitmap(self.crossBitmap) + wx.CallAfter(self.machineState.SetLabel, 'Communication State: %s' % (self.comm.getStateString())) - def DoCommCommandWithTimeout(self, cmd = None, replyStart = 'ok'): - if cmd != None: - self.comm.sendCommand(cmd) - t = threading.Timer(5, self.OnSerialTimeout) - t.start() - while True: - line = self.comm.readline() - if line == '' or line == None: - self.comm.close() - return False - print line.rstrip() - if replyStart in line: - break - t.cancel() - return line.rstrip() + def mcMessage(self, message): + if self.checkupState >= 3 and 'x_min' in message: + for data in message.split(' '): + if ':' in data: + tag, value = data.split(':', 2) + if tag == 'x_min': + self.xMinStop = (value == 'H') + if tag == 'x_max': + self.xMaxStop = (value == 'H') + if tag == 'y_min': + self.yMinStop = (value == 'H') + if tag == 'y_max': + self.yMaxStop = (value == 'H') + if tag == 'z_min': + self.zMinStop = (value == 'H') + if tag == 'z_max': + self.zMaxStop = (value == 'H') + self.comm.sendCommand('M119') + + def mcProgress(self, lineNr): + pass - def OnSerialTimeout(self): - self.comm.close() + def mcZChange(self, newZ): + pass class UltimakerCalibrationPage(InfoPage): def __init__(self, parent): diff --git a/Cura/gui/preview3d.py b/Cura/gui/preview3d.py index ac7668c8..229c520b 100644 --- a/Cura/gui/preview3d.py +++ b/Cura/gui/preview3d.py @@ -428,6 +428,7 @@ class PreviewGLCanvas(glcanvas.GLCanvas): self.objColor[3] = profile.getPreferenceColour('model_colour3') def OnMouseMotion(self,e): + cursorXY = 100000 if self.parent.objectsMaxV != None: size = (self.parent.objectsMaxV - self.parent.objectsMinV) sizeXY = math.sqrt((size[0] * size[0]) + (size[1] * size[1])) diff --git a/Cura/gui/printWindow.py b/Cura/gui/printWindow.py index 2846d529..4eb91444 100644 --- a/Cura/gui/printWindow.py +++ b/Cura/gui/printWindow.py @@ -353,7 +353,10 @@ class printWindow(wx.Frame): if self.currentZ > 0: status += 'Height: %0.1f\n' % (self.currentZ) status += 'Print time: %02d:%02d\n' % (int(printTime / 60), int(printTime % 60)) - status += 'Print time left: %02d:%02d\n' % (int(printTimeLeft / 60), int(printTimeLeft % 60)) + if printTime < 1: + status += 'Print time left: Unknown\n' + else: + status += 'Print time left: %02d:%02d\n' % (int(printTimeLeft / 60), int(printTimeLeft % 60)) self.progress.SetValue(self.machineCom.getPrintPos()) if self.machineCom != None: if self.machineCom.getTemp() > 0: diff --git a/Cura/gui/projectPlanner.py b/Cura/gui/projectPlanner.py index b9652659..43ac4197 100644 --- a/Cura/gui/projectPlanner.py +++ b/Cura/gui/projectPlanner.py @@ -320,7 +320,7 @@ class projectPlanner(wx.Frame): def _saveCombinedSTL(self, filename): totalCount = 0 for item in self.list: - totalCount += item.vertexCount + totalCount += item.mesh.vertexCount output = mesh.mesh() output._prepareVertexCount(totalCount) for item in self.list: diff --git a/Cura/images/checkmark.png b/Cura/images/checkmark.png new file mode 100644 index 0000000000000000000000000000000000000000..87957b198d8849587bd5c0016c2ac301188e6695 GIT binary patch literal 510 zcmV|Z5X8aFL0cRIv4zGzDYUVbXgvo-YG~4UaMQi_ zj=Oi4BEtVf>Purb8kY?CDiaYMr@|eF&ATof^4TVrIw$uUbwEv7IBikxUPS1O%pN6k zZV2anm#ZLkB!F&(w=N6gLSYJhf9vZCq#4uI z*0aI`XO&bj>vjByXU&k70;xBhv)?X*c;cf4V{75Elv0mw7bM9y6A{r!DJA`GIwtpC znD-(grq^zjd+MZRr_>duk?S_N7(78+>{kd9!JDX z%TY0Gn~IA{GE~&9`00egT~#&15m9R;&=nDHEV^RSZ_sg@jVQd*&@j=C%pVt`9`}9l z&`V1aGCcQ1-K}4nJ zFir(wMjqcjkf3CVYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&K-KJ?E{-7< zy=yP;^<#1rX?v)iw=tn#NzB7ZK|s%CZI59U|CBqjqE(VoCjYhwXf&!ycBgXYa2$M~ za(RyBdvoLGHSQda9E?$d=QYwd{&CYxYB*=L%_`%#PnL?SUBNzXy-#7Poii8h?RtI0 zr&>q&knCrr_ZFuQo1b~sB6oTQXOt3K=p;);0W+62jfEi(Oq(~)k@7rpI_mGV%D5*} z66NBA-d*Ol3%pnLNN?h6nLh^>oeLk zeASP)Sk>Xa-EdL7;>@43C$5V~b6X`YQR*qi9#QG`Vv>l&;+d)@Ts^DVd4g42-7}u_ iUa={d^Ls`5#`q79iueT+RZW25#^CAd=d#Wzp$Py`^^<7; literal 0 HcmV?d00001 diff --git a/Cura/images/question.png b/Cura/images/question.png new file mode 100644 index 0000000000000000000000000000000000000000..a916d6b45e5e9a054acbba85bd9a18ff74b722f3 GIT binary patch literal 596 zcmV-a0;~OrP)k8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10ntfBK~y-6eUi^>6HySyKkw~swo88r@eqQc)DC$0ZTG#1y==E?BB&le}a+Y@cb9jROPo=6&b; zX1?>3hyb9JN(0Y5j~AZD0}-;uaLaWGfqJ9CC!i=IEv}ie1gVtzIyuRm;5ac*1a@{X`}=%vHYte6 zpQ{T&L>L*Nwz`T;P4OELr7(_zSy&({m5@>i+1*7(M~Q%EwocntjG?u+$B%lQ_drgB zRHwt-$qDB8IL2rV)6;Z;N4CzjLAx#Y8MI0es7kHIlll2Ladt)*_+|k*p{S>@Qm>5R z@#5kYTLr=p4>p5e%H>|?}0^esYpXcH1Y