import wx,time class window(wx.Frame): def __init__(self): wx.Frame.__init__(self,None,title="Slicetest",size=(200,200)) self.p=gviz(self,size=(200,200),bedsize=(200,200)) s=time.time() for i in open("/home/kliment/designs/spinner/gearend_export.gcode"): self.p.addgcode(i) print time.time()-s self.p.Bind(wx.EVT_KEY_DOWN,self.key) def key(self, event): x=event.GetKeyCode() #print x if x==wx.WXK_UP: self.p.layerup() if x==wx.WXK_DOWN: self.p.layerdown() #print p.lines.keys() class gviz(wx.Panel): def __init__(self,parent,size=(200,200),bedsize=(200,200)): wx.Panel.__init__(self,parent,-1,size=size) self.bedsize=bedsize self.lastpos=[0,0,0,0,0] self.Bind(wx.EVT_PAINT,self.paint) self.lines={} self.pens={} self.layers=[] self.layerindex=0 self.scale=[min(float(size[0])/bedsize[0],float(size[1])/bedsize[1])]*2 self.mainpen=wx.Pen(wx.Colour(0,0,0)) self.fades=[wx.Pen(wx.Colour(150+20*i,150+20*i,150+20*i)) for i in xrange(6)] self.showall=0 def clear(self): self.lastpos=[0,0,0,0,0] self.Bind(wx.EVT_PAINT,self.paint) self.lines={} self.pens={} self.layers=[] self.layerindex=0 self.showall=0 def layerup(self): if(self.layerindex+10): self.layerindex-=1 self.Refresh() def paint(self,event): dc=wx.PaintDC(self) dc.SetBackground(wx.Brush((250,250,200))) dc.Clear() if self.showall: l=[] for i in self.layers: dc.DrawLineList(l,self.fades[0]) l=map(lambda x:(self.scale[0]*x[0],self.scale[1]*x[1],self.scale[0]*x[2],self.scale[1]*x[3],) ,self.lines[i]) dc.DrawLineList(l,self.pens[i]) return if self.layerindex