From fee5b5b9f7c673621e65432759d3427e8a6404df Mon Sep 17 00:00:00 2001 From: Paul Telford Date: Thu, 3 May 2012 13:55:41 -0700 Subject: [PATCH] Adds support for running an executable when print is finished. --- pronsole.py | 2 ++ pronterface.py | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/pronsole.py b/pronsole.py index 3179e56..301e1c7 100755 --- a/pronsole.py +++ b/pronsole.py @@ -201,6 +201,7 @@ class Settings: self.e_feedrate = 300 self.slicecommand="python skeinforge/skeinforge_application/skeinforge_utilities/skeinforge_craft.py $s" self.sliceoptscommand="python skeinforge/skeinforge_application/skeinforge.py" + self.final_command = "" def _set(self,key,value): try: @@ -274,6 +275,7 @@ class pronsole(cmd.Cmd): 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["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$' def set_temp_preset(self,key,value): diff --git a/pronterface.py b/pronterface.py index 08e5510..9f10ed1 100755 --- a/pronterface.py +++ b/pronterface.py @@ -165,6 +165,10 @@ class PronterWindow(wx.Frame,pronsole.pronsole): wx.CallAfter(self.pausebtn.Disable) 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): print _("Printer is now online.")