Commit fdfd7738 authored by Jeremy Hammett's avatar Jeremy Hammett

Merge branch 'experimental' of https://github.com/kliment/Printrun into experimental

parents df5764c6 556ba0fb
...@@ -201,6 +201,7 @@ class Settings: ...@@ -201,6 +201,7 @@ class Settings:
self.e_feedrate = 300 self.e_feedrate = 300
self.slicecommand="python skeinforge/skeinforge_application/skeinforge_utilities/skeinforge_craft.py $s" self.slicecommand="python skeinforge/skeinforge_application/skeinforge_utilities/skeinforge_craft.py $s"
self.sliceoptscommand="python skeinforge/skeinforge_application/skeinforge.py" self.sliceoptscommand="python skeinforge/skeinforge_application/skeinforge.py"
self.final_command = ""
def _set(self,key,value): def _set(self,key,value):
try: try:
...@@ -274,6 +275,7 @@ class pronsole(cmd.Cmd): ...@@ -274,6 +275,7 @@ class pronsole(cmd.Cmd):
self.helpdict["temperature_pla"] = _("Extruder temp for PLA (default: 185 deg C)") self.helpdict["temperature_pla"] = _("Extruder temp for PLA (default: 185 deg C)")
self.helpdict["xy_feedrate"] = _("Feedrate for Control Panel Moves in X and Y (default: 3000mm/min)") self.helpdict["xy_feedrate"] = _("Feedrate for Control Panel Moves in X and Y (default: 3000mm/min)")
self.helpdict["z_feedrate"] = _("Feedrate for Control Panel Moves in Z (default: 200mm/min)") self.helpdict["z_feedrate"] = _("Feedrate for Control Panel Moves in Z (default: 200mm/min)")
self.helpdict["final_command"] = _("Executable to run when the print is finished")
self.commandprefixes='MGT$' self.commandprefixes='MGT$'
def set_temp_preset(self,key,value): def set_temp_preset(self,key,value):
......
...@@ -166,6 +166,10 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -166,6 +166,10 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
wx.CallAfter(self.pausebtn.Disable) wx.CallAfter(self.pausebtn.Disable)
wx.CallAfter(self.printbtn.SetLabel,_("Print")) wx.CallAfter(self.printbtn.SetLabel,_("Print"))
import shlex
param = self.settings.final_command
pararray=[i.replace("$s",str(self.filename)).replace("$t", str(time.strftime('%H:%M:%S', time.gmtime(int(time.time()-self.starttime+self.extra_print_time))))).encode() for i in shlex.split(param.replace("\\","\\\\").encode())]
self.finalp=subprocess.Popen(pararray,stderr=subprocess.STDOUT,stdout=subprocess.PIPE)
def online(self): def online(self):
print _("Printer is now online.") print _("Printer is now online.")
...@@ -204,8 +208,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -204,8 +208,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if("S" in line): if("S" in line):
try: try:
temp=float(line.split("S")[1].split("*")[0]) temp=float(line.split("S")[1].split("*")[0])
self.hottgauge.SetTarget(temp) #self.hottgauge.SetTarget(temp)
self.graph.SetExtruder0TargetTemperature(temp) wx.CallAfter(self.graph.SetExtruder0TargetTemperature,temp)
except: except:
pass pass
try: try:
...@@ -216,8 +220,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -216,8 +220,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if("S" in line): if("S" in line):
try: try:
temp=float(line.split("S")[1].split("*")[0]) temp=float(line.split("S")[1].split("*")[0])
self.bedtgauge.SetTarget(temp) #self.bedtgauge.SetTarget(temp)
self.graph.SetBedTargetTemperature(temp) wx.CallAfter(self.graph.SetBedTargetTemperature,temp)
except: except:
pass pass
try: try:
...@@ -254,8 +258,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -254,8 +258,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
self.p.send_now("M104 S"+l) self.p.send_now("M104 S"+l)
print _("Setting hotend temperature to %f degrees Celsius.") % f print _("Setting hotend temperature to %f degrees Celsius.") % f
self.hsetpoint=f self.hsetpoint=f
self.hottgauge.SetTarget(int(f)) #self.hottgauge.SetTarget(int(f))
self.graph.SetExtruder0TargetTemperature(int(f)) wx.CallAfter(self.graph.SetExtruder0TargetTemperature,int(f))
if f>0: if f>0:
wx.CallAfter(self.htemp.SetValue,l) wx.CallAfter(self.htemp.SetValue,l)
self.set("last_temperature",str(f)) self.set("last_temperature",str(f))
...@@ -291,8 +295,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -291,8 +295,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
self.p.send_now("M140 S"+l) self.p.send_now("M140 S"+l)
print _("Setting bed temperature to %f degrees Celsius.") % f print _("Setting bed temperature to %f degrees Celsius.") % f
self.bsetpoint=f self.bsetpoint=f
self.bedtgauge.SetTarget(int(f)) #self.bedtgauge.SetTarget(int(f))
self.graph.SetBedTargetTemperature(int(f)) wx.CallAfter(self.graph.SetBedTargetTemperature,int(f))
if f>0: if f>0:
wx.CallAfter(self.btemp.SetValue,l) wx.CallAfter(self.btemp.SetValue,l)
self.set("last_bed_temperature",str(f)) self.set("last_bed_temperature",str(f))
...@@ -1193,9 +1197,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -1193,9 +1197,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
def setmonitor(self,e): def setmonitor(self,e):
self.monitor=self.monitorbox.GetValue() self.monitor=self.monitorbox.GetValue()
if self.monitor: if self.monitor:
self.graph.StartPlotting(1000) wx.CallAfter(self.graph.StartPlotting,1000)
else: else:
self.graph.StopPlotting() wx.CallAfter(self.graph.StopPlotting)
...@@ -1223,10 +1227,10 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -1223,10 +1227,10 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
string+=(self.tempreport.replace("\r","").replace("T:",_("Hotend") + ":").replace("B:",_("Bed") + ":").replace("\n","").replace("ok ",""))+" " string+=(self.tempreport.replace("\r","").replace("T:",_("Hotend") + ":").replace("B:",_("Bed") + ":").replace("\n","").replace("ok ",""))+" "
wx.CallAfter(self.tempdisp.SetLabel,self.tempreport.strip().replace("ok ","")) wx.CallAfter(self.tempdisp.SetLabel,self.tempreport.strip().replace("ok ",""))
try: try:
self.hottgauge.SetValue(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) #self.hottgauge.SetValue(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1]))
self.graph.SetExtruder0Temperature(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) wx.CallAfter(self.graph.SetExtruder0Temperature,float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1]))
self.bedtgauge.SetValue(float(filter(lambda x:x.startswith("B:"),self.tempreport.split())[0].split(":")[1])) #self.bedtgauge.SetValue(float(filter(lambda x:x.startswith("B:"),self.tempreport.split())[0].split(":")[1]))
self.graph.SetBedTemperature(float(filter(lambda x:x.startswith("B:"),self.tempreport.split())[0].split(":")[1])) wx.CallAfter(self.graph.SetBedTemperature,float(filter(lambda x:x.startswith("B:"),self.tempreport.split())[0].split(":")[1]))
except: except:
pass pass
fractioncomplete = 0.0 fractioncomplete = 0.0
...@@ -1288,8 +1292,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -1288,8 +1292,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
wx.CallAfter(self.tempdisp.SetLabel,self.tempreport.strip().replace("ok ","")) wx.CallAfter(self.tempdisp.SetLabel,self.tempreport.strip().replace("ok ",""))
try: try:
#self.hottgauge.SetValue(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) #self.hottgauge.SetValue(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1]))
self.graph.SetExtruder0Temperature(float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1])) wx.CallAfter(self.graph.SetExtruder0Temperature,float(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1]))
self.graph.SetBedTemperature(float(filter(lambda x:x.startswith("B:"),self.tempreport.split())[0].split(":")[1])) wx.CallAfter(self.graph.SetBedTemperature,float(filter(lambda x:x.startswith("B:"),self.tempreport.split())[0].split(":")[1]))
except: except:
pass pass
tstring=l.rstrip() tstring=l.rstrip()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment