From 4053291eee9788d1282a71c7b47e89843c1c2ab1 Mon Sep 17 00:00:00 2001 From: Travis Howse Date: Thu, 8 Sep 2011 21:33:36 +1000 Subject: [PATCH 1/7] Fixed dumbness --- plater.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plater.py b/plater.py index ddc3747..5e5dd27 100755 --- a/plater.py +++ b/plater.py @@ -89,7 +89,7 @@ class showstl(wx.Window): newrow = 0 max = [0,0] for i in self.models: - self.models[i].offsets[2]=-1.0*min(m.facetsminz)[0] + self.models[i].offsets[2]=-1.0*min(self.models[i].facetsminz)[0] x = abs(self.models[i].dims[0] - self.models[i].dims[1]) y = abs(self.models[i].dims[2] - self.models[i].dims[3]) centre = [x/2, y/2] From 0da65f14d0ba8c2ca2aa8f615d03d97783143e8b Mon Sep 17 00:00:00 2001 From: Keegi Date: Tue, 13 Sep 2011 14:41:05 +0300 Subject: [PATCH 2/7] Fix exception on removing the last custombutton when there are no other custombuttons --- pronterface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pronterface.py b/pronterface.py index ea4973d..6193729 100755 --- a/pronterface.py +++ b/pronterface.py @@ -727,7 +727,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): n = button.custombutton self.custombuttons[n]=None self.cbutton_save(n,None) - while self.custombuttons[-1] is None: + while len(self.custombuttons) and self.custombuttons[-1] is None: del self.custombuttons[-1] self.cbuttons_reload() From 21c0b9aaa8206cc90048ab6b0fde10e0e567faae Mon Sep 17 00:00:00 2001 From: Travis Howse Date: Fri, 16 Sep 2011 15:47:58 +1000 Subject: [PATCH 3/7] Only adds filename to list, not full path. --- plater.py | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/plater.py b/plater.py index a11ee30..a5abf31 100755 --- a/plater.py +++ b/plater.py @@ -1,6 +1,7 @@ #!/usr/bin/env python import wx,time,random,threading,os,math import stltool +import re class stlwrap: def __init__(self,obj,name=None): @@ -8,10 +9,10 @@ class stlwrap: self.name=name if name is None: self.name=obj.name - + def __repr__(self): return self.name - + class showstl(wx.Window): def __init__(self,parent,size,pos): @@ -80,7 +81,7 @@ class showstl(wx.Window): facets+=i.facets stltool.emitstl(name,facets,"plater_export") print "wrote ",name - + def autoplate(self,event): print "Autoplating" separation = 2 @@ -118,7 +119,7 @@ class showstl(wx.Window): self.models[i].offsets[0] += centreoffset[0] self.models[i].offsets[1] += centreoffset[1] self.Refresh() - + def right(self,event): dlg=wx.FileDialog(self,"Open file to print",self.basedir,style=wx.FD_OPEN|wx.FD_FILE_MUST_EXIST) dlg.SetWildcard("STL files (;*.stl;)") @@ -131,10 +132,11 @@ class showstl(wx.Window): t=time.time() #print name if name.lower().endswith(".stl"): - newname=name + #Filter out the path, just show the STL filename. + newname=re.match(r".*[/\\](.*?\.stl)", name.lower()).group(1) c=1 while newname in self.models: - newname=name+"(%d)"%c + newname=newname+"(%d)"%c c+=1 self.models[newname]=stltool.stl(name) self.models[newname].offsets=[0,0,0] @@ -177,17 +179,17 @@ class showstl(wx.Window): # break dc.SelectObject(wx.NullBitmap) m.bitmap.SetMask(wx.Mask(m.bitmap,wx.Colour(0,0,0,255))) - + #print time.time()-t self.l.Append(newname) i=self.l.GetSelection() if i==wx.NOT_FOUND: self.l.Select(0) - + self.l.Select(self.l.GetCount()-1) self.Refresh() #print time.time()-t - + def move(self,event): if event.ButtonUp(wx.MOUSE_BTN_LEFT): if(self.initpos is not None): @@ -212,12 +214,12 @@ class showstl(wx.Window): p=event.GetPositionTuple() dc.DrawLine(self.initpos[0],self.initpos[1],p[0],p[1]) #print math.sqrt((p[0]-self.initpos[0])**2+(p[1]-self.initpos[1])**2) - + del dc else: event.Skip() - - + + def rotateafter(self): if(self.i!=self.previ): i=self.l.GetSelection() @@ -231,7 +233,7 @@ class showstl(wx.Window): time.sleep(0.01) wx.CallAfter(self.rotateafter) self.triggered=0 - + def rot(self, event): z=event.GetWheelRotation() s=self.l.GetSelection() @@ -245,11 +247,11 @@ class showstl(wx.Window): if not self.triggered: self.triggered=1 threading.Thread(target=self.cr).start() - + def repaint(self,event): dc=wx.PaintDC(self) self.paint(dc=dc) - + def paint(self,coord1="x",coord2="y",dc=None): coords={"x":0,"y":1,"z":2} if dc is None: @@ -287,17 +289,16 @@ class showstl(wx.Window): del dc #print time.time()-t #s.export() - + class stlwin(wx.Frame): def __init__(self,size=(400,530)): wx.Frame.__init__(self,None,title="Right-click to add a file",size=size) self.SetIcon(wx.Icon("plater.ico",wx.BITMAP_TYPE_ICO)) self.SetClientSize(size) self.s=showstl(self,(400,530),(0,0)) - + if __name__ == '__main__': app = wx.App(False) main = stlwin() main.Show() - app.MainLoop() - + app.MainLoop() \ No newline at end of file From ad81fb6282a84804368ab0ef709b5c14bd5d658e Mon Sep 17 00:00:00 2001 From: Travis Howse Date: Fri, 16 Sep 2011 15:54:43 +1000 Subject: [PATCH 4/7] Fixed formatting for pull request --- plater.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/plater.py b/plater.py index a5abf31..bc0ae23 100755 --- a/plater.py +++ b/plater.py @@ -9,10 +9,10 @@ class stlwrap: self.name=name if name is None: self.name=obj.name - + def __repr__(self): return self.name - + class showstl(wx.Window): def __init__(self,parent,size,pos): @@ -81,7 +81,7 @@ class showstl(wx.Window): facets+=i.facets stltool.emitstl(name,facets,"plater_export") print "wrote ",name - + def autoplate(self,event): print "Autoplating" separation = 2 @@ -119,7 +119,7 @@ class showstl(wx.Window): self.models[i].offsets[0] += centreoffset[0] self.models[i].offsets[1] += centreoffset[1] self.Refresh() - + def right(self,event): dlg=wx.FileDialog(self,"Open file to print",self.basedir,style=wx.FD_OPEN|wx.FD_FILE_MUST_EXIST) dlg.SetWildcard("STL files (;*.stl;)") @@ -132,7 +132,7 @@ class showstl(wx.Window): t=time.time() #print name if name.lower().endswith(".stl"): - #Filter out the path, just show the STL filename. + #Filter out the path, just show the STL filename. newname=re.match(r".*[/\\](.*?\.stl)", name.lower()).group(1) c=1 while newname in self.models: @@ -179,17 +179,17 @@ class showstl(wx.Window): # break dc.SelectObject(wx.NullBitmap) m.bitmap.SetMask(wx.Mask(m.bitmap,wx.Colour(0,0,0,255))) - + #print time.time()-t self.l.Append(newname) i=self.l.GetSelection() if i==wx.NOT_FOUND: self.l.Select(0) - + self.l.Select(self.l.GetCount()-1) self.Refresh() #print time.time()-t - + def move(self,event): if event.ButtonUp(wx.MOUSE_BTN_LEFT): if(self.initpos is not None): @@ -214,12 +214,12 @@ class showstl(wx.Window): p=event.GetPositionTuple() dc.DrawLine(self.initpos[0],self.initpos[1],p[0],p[1]) #print math.sqrt((p[0]-self.initpos[0])**2+(p[1]-self.initpos[1])**2) - + del dc else: event.Skip() - - + + def rotateafter(self): if(self.i!=self.previ): i=self.l.GetSelection() @@ -233,7 +233,7 @@ class showstl(wx.Window): time.sleep(0.01) wx.CallAfter(self.rotateafter) self.triggered=0 - + def rot(self, event): z=event.GetWheelRotation() s=self.l.GetSelection() @@ -247,11 +247,11 @@ class showstl(wx.Window): if not self.triggered: self.triggered=1 threading.Thread(target=self.cr).start() - + def repaint(self,event): dc=wx.PaintDC(self) self.paint(dc=dc) - + def paint(self,coord1="x",coord2="y",dc=None): coords={"x":0,"y":1,"z":2} if dc is None: @@ -289,16 +289,17 @@ class showstl(wx.Window): del dc #print time.time()-t #s.export() - + class stlwin(wx.Frame): def __init__(self,size=(400,530)): wx.Frame.__init__(self,None,title="Right-click to add a file",size=size) self.SetIcon(wx.Icon("plater.ico",wx.BITMAP_TYPE_ICO)) self.SetClientSize(size) self.s=showstl(self,(400,530),(0,0)) - + if __name__ == '__main__': app = wx.App(False) main = stlwin() main.Show() - app.MainLoop() \ No newline at end of file + app.MainLoop() + From 547b2f2457c0e1746c2b5ef9a95d776a5eb50fe5 Mon Sep 17 00:00:00 2001 From: Travis Howse Date: Fri, 16 Sep 2011 16:11:23 +1000 Subject: [PATCH 5/7] Replaced re with os.path.split. Fixed duplicates. --- plater.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plater.py b/plater.py index bc0ae23..5f30cde 100755 --- a/plater.py +++ b/plater.py @@ -1,7 +1,6 @@ #!/usr/bin/env python import wx,time,random,threading,os,math import stltool -import re class stlwrap: def __init__(self,obj,name=None): @@ -132,11 +131,12 @@ class showstl(wx.Window): t=time.time() #print name if name.lower().endswith(".stl"): - #Filter out the path, just show the STL filename. - newname=re.match(r".*[/\\](.*?\.stl)", name.lower()).group(1) + #Filter out the path, just show the STL filename. + #newname=re.match(r".*[/\\](.*?\.stl)", name.lower()).group(1) + newname=os.path.split(name.lower())[1] c=1 while newname in self.models: - newname=newname+"(%d)"%c + newname=os.path.split(name.lower()+"(%d)"%c)[1] c+=1 self.models[newname]=stltool.stl(name) self.models[newname].offsets=[0,0,0] From bb32e6654e62ba9cabf924bf050245cdd02df1f3 Mon Sep 17 00:00:00 2001 From: Travis Howse Date: Fri, 16 Sep 2011 16:12:34 +1000 Subject: [PATCH 6/7] Remove comment. --- plater.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plater.py b/plater.py index 5f30cde..47b3e65 100755 --- a/plater.py +++ b/plater.py @@ -132,7 +132,6 @@ class showstl(wx.Window): #print name if name.lower().endswith(".stl"): #Filter out the path, just show the STL filename. - #newname=re.match(r".*[/\\](.*?\.stl)", name.lower()).group(1) newname=os.path.split(name.lower())[1] c=1 while newname in self.models: From 47229f631ff60d75f5958cea8483498f37ef2da9 Mon Sep 17 00:00:00 2001 From: Travis Howse Date: Fri, 16 Sep 2011 16:21:01 +1000 Subject: [PATCH 7/7] Separated split and duplicate enumeration append. --- plater.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plater.py b/plater.py index 47b3e65..95483c2 100755 --- a/plater.py +++ b/plater.py @@ -135,7 +135,8 @@ class showstl(wx.Window): newname=os.path.split(name.lower())[1] c=1 while newname in self.models: - newname=os.path.split(name.lower()+"(%d)"%c)[1] + newname=os.path.split(name.lower())[1] + newname=newname+"(%d)"%c c+=1 self.models[newname]=stltool.stl(name) self.models[newname].offsets=[0,0,0]