def __init__(self, parent, moveCallback = None, cornerCallback = None, spacebarCallback = None, bgcolor = "#FFFFFF", ID=-1, zcallback=None): self.bg_bmp = wx.Image(imagefile("control_xy.png"), wx.BITMAP_TYPE_PNG).ConvertToBitmap() self.keypad_bmp = wx.Image(imagefile("arrow_keys.png"), wx.BITMAP_TYPE_PNG).ConvertToBitmap() self.keypad_idx = -1 self.quadrant = None self.concentric = None self.corner = None self.moveCallback = moveCallback self.cornerCallback = cornerCallback self.spacebarCallback = spacebarCallback self.zCallback = zcallback self.enabled = False # Remember the last clicked buttons, so we can repeat when spacebar pressed self.lastMove = None self.lastCorner = None self.bgcolor = wx.Colour() self.bgcolor.SetFromName(bgcolor) self.bgcolormask = wx.Colour(self.bgcolor.Red(), self.bgcolor.Green(), self.bgcolor.Blue(), 128) BufferedCanvas.__init__(self, parent, ID, size=self.bg_bmp.GetSize()) # Set up mouse and keyboard event capture self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDown) self.Bind(wx.EVT_MOTION, self.OnMotion) self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow) self.Bind(wx.EVT_KEY_UP, self.OnKey) wx.GetTopLevelParent(self).Bind(wx.EVT_CHAR_HOOK, self.OnTopLevelKey)
def create_base_ui(self): self.CreateStatusBar(1) self.SetStatusText(_("Layer number and Z position show here when you scroll")) hpanel = wx.Panel(self, -1) hbox = wx.BoxSizer(wx.HORIZONTAL) panel = wx.Panel(hpanel, -1) vbox = wx.BoxSizer(wx.VERTICAL) vbox = wx.BoxSizer(wx.VERTICAL) self.toolbar = wx.ToolBar(panel, -1, style = wx.TB_HORIZONTAL | wx.NO_BORDER | wx.TB_HORZ_TEXT) self.toolbar.AddSimpleTool(1, wx.Image(imagefile('zoom_in.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Zoom In [+]"), '') self.toolbar.AddSimpleTool(2, wx.Image(imagefile('zoom_out.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Zoom Out [-]"), '') self.toolbar.AddSeparator() self.toolbar.AddSimpleTool(3, wx.Image(imagefile('arrow_up.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Move Up a Layer [U]"), '') self.toolbar.AddSimpleTool(4, wx.Image(imagefile('arrow_down.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Move Down a Layer [D]"), '') self.toolbar.AddLabelTool(5, " " + _("Reset view"), wx.Image(imagefile('reset.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), shortHelp = _("Reset view"), longHelp = '') vbox.Add(self.toolbar, 0, border = 5) panel.SetSizer(vbox) hbox.Add(panel, 1, flag = wx.EXPAND) self.layerslider = wx.Slider(hpanel, style = wx.SL_VERTICAL | wx.SL_AUTOTICKS | wx.SL_LEFT | wx.SL_INVERSE) self.layerslider.Bind(wx.EVT_SCROLL, self.process_slider) hbox.Add(self.layerslider, 0, border = 5, flag = wx.LEFT | wx.EXPAND) hpanel.SetSizer(hbox) return panel, vbox
def __init__(self, f, size = (600, 600), build_dimensions = [200, 200, 100, 0, 0, 0], grid = (10, 50), extrusion_width = 0.5): wx.Frame.__init__(self, None, title = "Gcode view, shift to move view, mousewheel to set layer", size = (size[0], size[1])) self.p = gviz(self, size = size, build_dimensions = build_dimensions, grid = grid, extrusion_width = extrusion_width) vbox = wx.BoxSizer(wx.VERTICAL) toolbar = wx.ToolBar(self, -1, style = wx.TB_HORIZONTAL | wx.NO_BORDER) toolbar.AddSimpleTool(1, wx.Image(imagefile('zoom_in.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Zoom In [+]', '') toolbar.AddSimpleTool(2, wx.Image(imagefile('zoom_out.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Zoom Out [-]', '') toolbar.AddSeparator() toolbar.AddSimpleTool(3, wx.Image(imagefile('arrow_up.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Move Up a Layer [U]', '') toolbar.AddSimpleTool(4, wx.Image(imagefile('arrow_down.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Move Down a Layer [D]', '') toolbar.AddSimpleTool(5, wx.EmptyBitmap(16, 16), 'Reset view', '') toolbar.AddSeparator() #toolbar.AddSimpleTool(5, wx.Image('./images/inject.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Insert Code at start of this layer', '') toolbar.Realize() vbox.Add(toolbar, 0, border = 5) self.SetSizer(vbox) self.Bind(wx.EVT_TOOL, lambda x:self.p.zoom(200, 200, 1.2), id = 1) self.Bind(wx.EVT_TOOL, lambda x:self.p.zoom(200, 200, 1/1.2), id = 2) self.Bind(wx.EVT_TOOL, lambda x:self.p.layerup(), id = 3) self.Bind(wx.EVT_TOOL, lambda x:self.p.layerdown(), id = 4) self.Bind(wx.EVT_TOOL, self.resetview, id = 5) #self.Bind(wx.EVT_TOOL, lambda x:self.p.inject(), id = 5) self.CreateStatusBar(1); self.SetStatusText("Layer number and Z position show here when you scroll"); #self.bu = wx.Button(self.p,-1, "U", pos = (0, 100), size = (40, 140)) #self.bd = wx.Button(self.p,-1, "D", pos = (0, 140), size = (40, 140)) #self.bi = wx.Button(self.p,-1, "+", pos = (40, 100), size = (40, 140)) #self.bo = wx.Button(self.p,-1, "-", pos = (40, 140), size = (40, 140)) #self.bs = wx.Button(self.p, -1, "Inject", pos = (85, 103), size = (50, 20)) #self.bu.SetToolTip(wx.ToolTip("Move up one layer")) #self.bd.SetToolTip(wx.ToolTip("Move down one layer")) #self.bi.SetToolTip(wx.ToolTip("Zoom view in")) #self.bo.SetToolTip(wx.ToolTip("Zoom view out")) #self.bs.SetToolTip(wx.ToolTip("Insert Code at start of this layer")) #self.bu.Bind(wx.EVT_BUTTON, lambda x:self.p.layerup()) #self.bd.Bind(wx.EVT_BUTTON, lambda x:self.p.layerdown()) #self.bi.Bind(wx.EVT_BUTTON, lambda x:self.p.zoom(200, 200, 1.2)) #self.bo.Bind(wx.EVT_BUTTON, lambda x:self.p.zoom(200, 200, 1/1.2)) #self.bs.Bind(wx.EVT_BUTTON, lambda x:self.p.inject()) s = time.time() #print time.time()-s self.initpos = [0, 0] self.p.Bind(wx.EVT_KEY_DOWN, self.key) #self.bu.Bind(wx.EVT_KEY_DOWN, self.key) #self.bd.Bind(wx.EVT_KEY_DOWN, self.key) #self.bi.Bind(wx.EVT_KEY_DOWN, self.key) #self.bo.Bind(wx.EVT_KEY_DOWN, self.key) self.Bind(wx.EVT_KEY_DOWN, self.key) self.p.Bind(wx.EVT_MOUSEWHEEL, self.zoom) self.Bind(wx.EVT_MOUSEWHEEL, self.zoom) self.p.Bind(wx.EVT_MOUSE_EVENTS, self.mouse) self.Bind(wx.EVT_MOUSE_EVENTS, self.mouse)
def create_base_ui(self): self.CreateStatusBar(1) self.SetStatusText( _("Layer number and Z position show here when you scroll")) hpanel = wx.Panel(self, -1) hbox = wx.BoxSizer(wx.HORIZONTAL) panel = wx.Panel(hpanel, -1) vbox = wx.BoxSizer(wx.VERTICAL) vbox = wx.BoxSizer(wx.VERTICAL) self.toolbar = wx.ToolBar(panel, -1, style=wx.TB_HORIZONTAL | wx.NO_BORDER | wx.TB_HORZ_TEXT) self.toolbar.AddSimpleTool( 1, wx.Image(imagefile('zoom_in.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Zoom In [+]"), '') self.toolbar.AddSimpleTool( 2, wx.Image(imagefile('zoom_out.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Zoom Out [-]"), '') self.toolbar.AddSeparator() self.toolbar.AddSimpleTool( 3, wx.Image(imagefile('arrow_up.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Move Up a Layer [U]"), '') self.toolbar.AddSimpleTool( 4, wx.Image(imagefile('arrow_down.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Move Down a Layer [D]"), '') self.toolbar.AddLabelTool( 5, " " + _("Reset view"), wx.Image(imagefile('reset.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), shortHelp=_("Reset view"), longHelp='') vbox.Add(self.toolbar, 0, border=5) panel.SetSizer(vbox) hbox.Add(panel, 1, flag=wx.EXPAND) self.layerslider = wx.Slider(hpanel, style=wx.SL_VERTICAL | wx.SL_AUTOTICKS | wx.SL_LEFT | wx.SL_INVERSE) self.layerslider.Bind(wx.EVT_SCROLL, self.process_slider) hbox.Add(self.layerslider, 0, border=5, flag=wx.LEFT | wx.EXPAND) hpanel.SetSizer(hbox) return panel, vbox
def __init__(self, parent, ID, title, build_dimensions, objects = None, pos = wx.DefaultPosition, size = wx.DefaultSize, style = wx.DEFAULT_FRAME_STYLE, root = None): super(GcodeViewFrame, self).__init__(parent, ID, title, pos, size, style) self.root = root panel, vbox = self.create_base_ui() self.refresh_timer = wx.CallLater(100, self.Refresh) self.p = self # Hack for backwards compatibility with gviz API self.clonefrom = objects self.platform = actors.Platform(build_dimensions) if objects: self.model = objects[1].model else: self.model = None self.objects = [GCObject(self.platform), GCObject(None)] fit_image = wx.Image(imagefile('fit.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap() self.toolbar.AddLabelTool(6, " " + _("Fit to plate"), fit_image, shortHelp = _("Fit to plate [F]"), longHelp = '') self.toolbar.Realize() self.glpanel = GcodeViewPanel(panel, build_dimensions = build_dimensions, realparent = self) vbox.Add(self.glpanel, 1, flag = wx.EXPAND) self.Bind(wx.EVT_TOOL, lambda x: self.glpanel.zoom_to_center(1.2), id = 1) self.Bind(wx.EVT_TOOL, lambda x: self.glpanel.zoom_to_center(1 / 1.2), id = 2) self.Bind(wx.EVT_TOOL, lambda x: self.glpanel.layerup(), id = 3) self.Bind(wx.EVT_TOOL, lambda x: self.glpanel.layerdown(), id = 4) self.Bind(wx.EVT_TOOL, lambda x: self.glpanel.resetview(), id = 5) self.Bind(wx.EVT_TOOL, lambda x: self.glpanel.fit(), id = 6)
def __init__(self, excluder, *args, **kwargs): super(ExcluderWindow, self).__init__(*args, **kwargs) self.SetTitle(_("Part excluder: draw rectangles where print instructions should be ignored")) self.toolbar.AddLabelTool(128, " " + _("Reset selection"), wx.Image(imagefile('reset.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), shortHelp = _("Reset selection"), longHelp = "") self.Bind(wx.EVT_TOOL, self.reset_selection, id = 128) self.parent = excluder self.p.paint_overlay = self.paint_selection self.p.layerup()
def __init__(self, f = None, size = (600, 600), build_dimensions = [200, 200, 100, 0, 0, 0], grid = (10, 50), extrusion_width = 0.5, bgcolor = "#000000"): wx.Frame.__init__(self, None, title = _("Gcode view, shift to move view, mousewheel to set layer"), size = size) self.CreateStatusBar(1); self.SetStatusText(_("Layer number and Z position show here when you scroll")) panel = wx.Panel(self, -1) self.p = Gviz(panel, size = size, build_dimensions = build_dimensions, grid = grid, extrusion_width = extrusion_width, bgcolor = bgcolor, realparent = self) vbox = wx.BoxSizer(wx.VERTICAL) toolbar = wx.ToolBar(panel, -1, style = wx.TB_HORIZONTAL | wx.NO_BORDER | wx.TB_HORZ_TEXT) toolbar.AddSimpleTool(1, wx.Image(imagefile('zoom_in.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Zoom In [+]"), '') toolbar.AddSimpleTool(2, wx.Image(imagefile('zoom_out.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Zoom Out [-]"), '') toolbar.AddSeparator() toolbar.AddSimpleTool(3, wx.Image(imagefile('arrow_up.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Move Up a Layer [U]"), '') toolbar.AddSimpleTool(4, wx.Image(imagefile('arrow_down.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Move Down a Layer [D]"), '') toolbar.AddLabelTool(5, " " + _("Reset view"), wx.Image(imagefile('reset.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), shortHelp = _("Reset view"), longHelp = '') toolbar.AddSeparator() #toolbar.AddSimpleTool(6, wx.Image(imagefile('inject.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Insert Code at start of this layer"), '') toolbar.Realize() self.toolbar = toolbar vbox.Add(toolbar, 0, border = 5) vbox.Add(self.p, 1, wx.EXPAND) panel.SetSizer(vbox) self.SetMinSize(self.ClientToWindowSize(vbox.GetMinSize())) self.Bind(wx.EVT_TOOL, lambda x:self.p.zoom(-1, -1, 1.2), id = 1) self.Bind(wx.EVT_TOOL, lambda x:self.p.zoom(-1, -1, 1/1.2), id = 2) self.Bind(wx.EVT_TOOL, lambda x:self.p.layerup(), id = 3) self.Bind(wx.EVT_TOOL, lambda x:self.p.layerdown(), id = 4) self.Bind(wx.EVT_TOOL, self.resetview, id = 5) #self.Bind(wx.EVT_TOOL, lambda x:self.p.inject(), id = 6) self.initpos = None self.p.Bind(wx.EVT_KEY_DOWN, self.key) self.Bind(wx.EVT_KEY_DOWN, self.key) self.p.Bind(wx.EVT_MOUSEWHEEL, self.zoom) self.Bind(wx.EVT_MOUSEWHEEL, self.zoom) self.p.Bind(wx.EVT_MOUSE_EVENTS, self.mouse) self.Bind(wx.EVT_MOUSE_EVENTS, self.mouse) if f: gcode = gcoder.GCode(f) self.p.addfile(gcode)
def __init__(self, f, size = (600, 600), build_dimensions = [200, 200, 100, 0, 0, 0], grid = (10, 50), extrusion_width = 0.5): wx.Frame.__init__(self, None, title = "Gcode view, shift to move view, mousewheel to set layer", size = size) self.CreateStatusBar(1); self.SetStatusText("Layer number and Z position show here when you scroll"); self.p = gviz(self, size = size, build_dimensions = build_dimensions, grid = grid, extrusion_width = extrusion_width) vbox = wx.BoxSizer(wx.VERTICAL) toolbar = wx.ToolBar(self, -1, style = wx.TB_HORIZONTAL | wx.NO_BORDER) toolbar.AddSimpleTool(1, wx.Image(imagefile('zoom_in.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Zoom In [+]', '') toolbar.AddSimpleTool(2, wx.Image(imagefile('zoom_out.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Zoom Out [-]', '') toolbar.AddSeparator() toolbar.AddSimpleTool(3, wx.Image(imagefile('arrow_up.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Move Up a Layer [U]', '') toolbar.AddSimpleTool(4, wx.Image(imagefile('arrow_down.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Move Down a Layer [D]', '') toolbar.AddSimpleTool(5, wx.EmptyBitmap(16, 16), 'Reset view', '') toolbar.AddSeparator() #toolbar.AddSimpleTool(6, wx.Image('./images/inject.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Insert Code at start of this layer', '') toolbar.Realize() vbox.Add(toolbar, 0, border = 5) vbox.Add(self.p, 1, wx.EXPAND) self.SetSizer(vbox) self.SetMinSize(self.ClientToWindowSize(vbox.GetMinSize())) self.Bind(wx.EVT_TOOL, lambda x:self.p.zoom(-1, -1, 1.2), id = 1) self.Bind(wx.EVT_TOOL, lambda x:self.p.zoom(-1, -1, 1/1.2), id = 2) self.Bind(wx.EVT_TOOL, lambda x:self.p.layerup(), id = 3) self.Bind(wx.EVT_TOOL, lambda x:self.p.layerdown(), id = 4) self.Bind(wx.EVT_TOOL, self.resetview, id = 5) #self.Bind(wx.EVT_TOOL, lambda x:self.p.inject(), id = 6) self.initpos = [0, 0] self.p.Bind(wx.EVT_KEY_DOWN, self.key) self.Bind(wx.EVT_KEY_DOWN, self.key) self.p.Bind(wx.EVT_MOUSEWHEEL, self.zoom) self.Bind(wx.EVT_MOUSEWHEEL, self.zoom) self.p.Bind(wx.EVT_MOUSE_EVENTS, self.mouse) self.Bind(wx.EVT_MOUSE_EVENTS, self.mouse) if f: gcode = gcoder.GCode(f) self.p.addfile(gcode)
def __init__(self, parent, moveCallback=None, cornerCallback=None, spacebarCallback=None, bgcolor="#FFFFFF", ID=-1, zcallback=None): self.bg_bmp = wx.Image(imagefile("control_xy.png"), wx.BITMAP_TYPE_PNG).ConvertToBitmap() self.keypad_bmp = wx.Image(imagefile("arrow_keys.png"), wx.BITMAP_TYPE_PNG).ConvertToBitmap() self.keypad_idx = -1 self.quadrant = None self.concentric = None self.corner = None self.moveCallback = moveCallback self.cornerCallback = cornerCallback self.spacebarCallback = spacebarCallback self.zCallback = zcallback self.enabled = False # Remember the last clicked buttons, so we can repeat when spacebar pressed self.lastMove = None self.lastCorner = None self.bgcolor = wx.Colour() self.bgcolor.SetFromName(bgcolor) self.bgcolormask = wx.Colour(self.bgcolor.Red(), self.bgcolor.Green(), self.bgcolor.Blue(), 128) BufferedCanvas.__init__(self, parent, ID, size=self.bg_bmp.GetSize()) # Set up mouse and keyboard event capture self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDown) self.Bind(wx.EVT_MOTION, self.OnMotion) self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow) self.Bind(wx.EVT_KEY_UP, self.OnKey) wx.GetTopLevelParent(self).Bind(wx.EVT_CHAR_HOOK, self.OnTopLevelKey)
def __init__(self, root): super(MainToolbar, self).__init__(wx.HORIZONTAL) imageFS = wx.Image(imagefile("fullscreen.png"), wx.BITMAP_TYPE_ANY).ConvertToBitmap() root.fullscreenbtn = wx.BitmapButton( root.panel, -1, bitmap=imageFS, size=(buttonSize[1], buttonSize[1]), style=wx.BU_EXACTFIT ) # size is square, it's not a typo root.fullscreenbtn.Bind(wx.EVT_BUTTON, root.fullscreen) root.fullscreenbtn.SetToolTip(wx.ToolTip("Toggle full screen")) self.Add(root.fullscreenbtn) root.rescanbtn = make_sized_button( root.panel, _("Port"), root.rescanports, _("Communication Settings\nClick to rescan ports") ) self.Add(root.rescanbtn, 0, wx.TOP | wx.LEFT, 0) root.serialport = wx.ComboBox(root.panel, -1, choices=root.scanserial(), style=wx.CB_DROPDOWN, size=(100, 25)) root.serialport.SetToolTip(wx.ToolTip("Select Port Printer is connected to")) root.rescanports() self.Add(root.serialport) self.Add(wx.StaticText(root.panel, -1, "@"), 0, wx.RIGHT | wx.ALIGN_CENTER, 0) root.baud = wx.ComboBox( root.panel, -1, choices=["2400", "9600", "19200", "38400", "57600", "115200", "250000"], style=wx.CB_DROPDOWN, size=(100, 25), ) root.baud.SetToolTip(wx.ToolTip("Select Baud rate for printer communication")) try: root.baud.SetValue("115200") root.baud.SetValue(str(root.settings.baudrate)) except: pass self.Add(root.baud) root.connectbtn = make_sized_button(root.panel, _("Connect"), root.connect, _("Connect to the printer"), self) root.resetbtn = make_autosize_button(root.panel, _("Reset"), root.reset, _("Reset the printer"), self) root.loadbtn = make_autosize_button(root.panel, _("Load file"), root.loadfile, _("Load a 3D model file"), self) # root.platebtn = make_autosize_button(root.panel, _("Compose"), root.plate, _("Simple Plater System"), self) # root.sdbtn = make_autosize_button(root.panel, _("SD"), root.sdmenu, _("SD Card Printing"), self) # root.printerControls.append(root.sdbtn) # self.Hide(root.sdbtn) # self.Hide(root.platebtn) root.printbtn = make_sized_button(root.panel, _("Print"), root.printfile, _("Start Printing Loaded File"), self) root.printbtn.Disable() root.pausebtn = make_autosize_button(root.panel, _("Pause"), root.pause, _("Pause Current Print"), self) root.recoverbtn = make_autosize_button( root.panel, _("Recover"), root.recover, _("Recover previous Print"), self )
def __init__(self, root): super(XYZControlsSizer, self).__init__() self.root = root root.xyb = XYButtons( root.panel, root.moveXY, root.homeButtonClicked, root.spacebarAction, root.settings.bgcolor ) root.zb = ZButtons(root.panel, root.moveZ, root.settings.bgcolor) imageStop = wx.Image(imagefile("stop_btn.png"), wx.BITMAP_TYPE_ANY).ConvertToBitmap() root.stopBtn = wx.BitmapButton(root.panel, -1, bitmap=imageStop, size=(248, 248), style=wx.BU_EXACTFIT) root.stopBtn.Bind(wx.EVT_BUTTON, root.do_reset) root.stopBtn.SetToolTip(wx.ToolTip("Stop!")) # root.stopBtn.Hide() self.addStop() self.addxyz() wx.CallAfter(root.xyb.SetFocus)
def __init__(self, root): super(XYZControlsSizer, self).__init__() self.root = root root.xyb = XYButtons(root.panel, root.moveXY, root.homeButtonClicked, root.spacebarAction, root.settings.bgcolor) root.zb = ZButtons(root.panel, root.moveZ, root.settings.bgcolor) imageStop = wx.Image(imagefile('stop_btn.png'), wx.BITMAP_TYPE_ANY).ConvertToBitmap() root.stopBtn = wx.BitmapButton(root.panel, -1, bitmap=imageStop, size=(248, 248), style=wx.BU_EXACTFIT) root.stopBtn.Bind(wx.EVT_BUTTON, root.do_reset) root.stopBtn.SetToolTip(wx.ToolTip("Stop!")) #root.stopBtn.Hide() self.addStop() self.addxyz() wx.CallAfter(root.xyb.SetFocus)
def __init__(self, parent, moveCallback = None, bgcolor = "#FFFFFF", ID=-1): self.bg_bmp = wx.Image(imagefile("control_z.png"), wx.BITMAP_TYPE_PNG).ConvertToBitmap() self.range = None self.direction = None self.orderOfMagnitudeIdx = 0 # 0 means '1', 1 means '10', 2 means '100', etc. self.moveCallback = moveCallback self.enabled = False # Remember the last clicked value, so we can repeat when spacebar pressed self.lastValue = None self.bgcolor = wx.Colour() self.bgcolor.SetFromName(bgcolor) self.bgcolormask = wx.Colour(self.bgcolor.Red(), self.bgcolor.Green(), self.bgcolor.Blue(), 128) BufferedCanvas.__init__(self, parent, ID, size=wx.Size(59, 244)) # Set up mouse and keyboard event capture self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDown) self.Bind(wx.EVT_MOTION, self.OnMotion) self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow)
def __init__(self, parent, moveCallback=None, bgcolor="#FFFFFF", ID=-1): self.bg_bmp = wx.Image(imagefile("control_z.png"), wx.BITMAP_TYPE_PNG).ConvertToBitmap() self.range = None self.direction = None self.orderOfMagnitudeIdx = 0 # 0 means '1', 1 means '10', 2 means '100', etc. self.moveCallback = moveCallback self.enabled = False # Remember the last clicked value, so we can repeat when spacebar pressed self.lastValue = None self.bgcolor = wx.Colour() self.bgcolor.SetFromName(bgcolor) self.bgcolormask = wx.Colour(self.bgcolor.Red(), self.bgcolor.Green(), self.bgcolor.Blue(), 128) BufferedCanvas.__init__(self, parent, ID, size=wx.Size(59, 244)) # Set up mouse and keyboard event capture self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDown) self.Bind(wx.EVT_MOTION, self.OnMotion) self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow)
def __init__(self, parent, ID, title, build_dimensions, objects = None, pos = wx.DefaultPosition, size = wx.DefaultSize, style = wx.DEFAULT_FRAME_STYLE): super(GcodeViewFrame, self).__init__(parent, ID, title, pos, size, style) self.refresh_timer = wx.CallLater(100, self.Refresh) self.p = self # Hack for backwards compatibility with gviz API self.clonefrom = objects self.platform = actors.Platform(build_dimensions) if objects: self.model = objects[1].model else: self.model = None self.objects = [GCObject(self.platform), GCObject(None)] panel = wx.Panel(self, -1) self.glpanel = GcodeViewPanel(panel, build_dimensions = build_dimensions, realparent = self) vbox = wx.BoxSizer(wx.VERTICAL) toolbar = wx.ToolBar(panel, -1, style = wx.TB_HORIZONTAL | wx.NO_BORDER | wx.TB_HORZ_TEXT) toolbar.AddSimpleTool(1, wx.Image(imagefile('zoom_in.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Zoom In [+]"), '') toolbar.AddSimpleTool(2, wx.Image(imagefile('zoom_out.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Zoom Out [-]"), '') toolbar.AddSeparator() toolbar.AddSimpleTool(3, wx.Image(imagefile('arrow_up.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Move Up a Layer [U]"), '') toolbar.AddSimpleTool(4, wx.Image(imagefile('arrow_down.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), _("Move Down a Layer [D]"), '') toolbar.AddLabelTool(5, " " + _("Reset view"), wx.Image(imagefile('reset.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), shortHelp = _("Reset view [R]"), longHelp = '') toolbar.AddLabelTool(6, " " + _("Fit to plate"), wx.Image(imagefile('fit.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), shortHelp = _("Fit to plate [F]"), longHelp = '') toolbar.Realize() self.toolbar = toolbar vbox.Add(toolbar, 0, border = 5) vbox.Add(self.glpanel, 1, wx.EXPAND) panel.SetSizer(vbox) self.Bind(wx.EVT_TOOL, lambda x: self.glpanel.zoom_to_center(1.2), id = 1) self.Bind(wx.EVT_TOOL, lambda x: self.glpanel.zoom_to_center(1/1.2), id = 2) self.Bind(wx.EVT_TOOL, lambda x: self.glpanel.layerup(), id = 3) self.Bind(wx.EVT_TOOL, lambda x: self.glpanel.layerdown(), id = 4) self.Bind(wx.EVT_TOOL, lambda x: self.glpanel.resetview(), id = 5) self.Bind(wx.EVT_TOOL, lambda x: self.glpanel.fit(), id = 6)
def __init__(self, root): super(MainToolbar, self).__init__(wx.HORIZONTAL) imageFS = wx.Image(imagefile('fullscreen.png'), wx.BITMAP_TYPE_ANY).ConvertToBitmap() root.fullscreenbtn = wx.BitmapButton( root.panel, -1, bitmap=imageFS, size=(buttonSize[1], buttonSize[1]), style=wx.BU_EXACTFIT) #size is square, it's not a typo root.fullscreenbtn.Bind(wx.EVT_BUTTON, root.fullscreen) root.fullscreenbtn.SetToolTip(wx.ToolTip("Toggle full screen")) self.Add(root.fullscreenbtn) root.rescanbtn = make_sized_button( root.panel, _("Port"), root.rescanports, _("Communication Settings\nClick to rescan ports")) self.Add(root.rescanbtn, 0, wx.TOP | wx.LEFT, 0) root.serialport = wx.ComboBox(root.panel, -1, choices=root.scanserial(), style=wx.CB_DROPDOWN, size=(100, 25)) root.serialport.SetToolTip( wx.ToolTip("Select Port Printer is connected to")) root.rescanports() self.Add(root.serialport) self.Add(wx.StaticText(root.panel, -1, "@"), 0, wx.RIGHT | wx.ALIGN_CENTER, 0) root.baud = wx.ComboBox(root.panel, -1, choices=[ "2400", "9600", "19200", "38400", "57600", "115200", "250000" ], style=wx.CB_DROPDOWN, size=(100, 25)) root.baud.SetToolTip( wx.ToolTip("Select Baud rate for printer communication")) try: root.baud.SetValue("115200") root.baud.SetValue(str(root.settings.baudrate)) except: pass self.Add(root.baud) root.connectbtn = make_sized_button(root.panel, _("Connect"), root.connect, _("Connect to the printer"), self) root.resetbtn = make_autosize_button(root.panel, _("Reset"), root.reset, _("Reset the printer"), self) root.loadbtn = make_autosize_button(root.panel, _("Load file"), root.loadfile, _("Load a 3D model file"), self) #root.platebtn = make_autosize_button(root.panel, _("Compose"), root.plate, _("Simple Plater System"), self) #root.sdbtn = make_autosize_button(root.panel, _("SD"), root.sdmenu, _("SD Card Printing"), self) #root.printerControls.append(root.sdbtn) #self.Hide(root.sdbtn) #self.Hide(root.platebtn) root.printbtn = make_sized_button(root.panel, _("Print"), root.printfile, _("Start Printing Loaded File"), self) root.printbtn.Disable() root.pausebtn = make_autosize_button(root.panel, _("Pause"), root.pause, _("Pause Current Print"), self) root.recoverbtn = make_autosize_button(root.panel, _("Recover"), root.recover, _("Recover previous Print"), self)
def __init__(self, f, size=(600, 600), build_dimensions=[200, 200, 100, 0, 0, 0], grid=(10, 50), extrusion_width=0.5): wx.Frame.__init__( self, None, title="Gcode view, shift to move view, mousewheel to set layer", size=(size[0], size[1])) self.p = gviz(self, size=size, build_dimensions=build_dimensions, grid=grid, extrusion_width=extrusion_width) vbox = wx.BoxSizer(wx.VERTICAL) toolbar = wx.ToolBar(self, -1, style=wx.TB_HORIZONTAL | wx.NO_BORDER) toolbar.AddSimpleTool( 1, wx.Image(imagefile('zoom_in.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Zoom In [+]', '') toolbar.AddSimpleTool( 2, wx.Image(imagefile('zoom_out.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Zoom Out [-]', '') toolbar.AddSeparator() toolbar.AddSimpleTool( 3, wx.Image(imagefile('arrow_up.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Move Up a Layer [U]', '') toolbar.AddSimpleTool( 4, wx.Image(imagefile('arrow_down.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Move Down a Layer [D]', '') toolbar.AddSimpleTool(5, wx.EmptyBitmap(16, 16), 'Reset view', '') toolbar.AddSimpleTool( 6, wx.Image(imagefile('arrow_right.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Move to next Segment [->]', '') toolbar.AddSimpleTool( 7, wx.Image(imagefile('arrow_left.png'), wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Move to previous Segment [<-]', '') toolbar.AddSeparator() #toolbar.AddSimpleTool(5, wx.Image('./images/inject.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'Insert Code at start of this layer', '') toolbar.Realize() vbox.Add(toolbar, 0, border=5) self.SetSizer(vbox) self.Bind(wx.EVT_TOOL, lambda x: self.p.zoom(200, 200, 1.2), id=1) self.Bind(wx.EVT_TOOL, lambda x: self.p.zoom(200, 200, 1 / 1.2), id=2) self.Bind(wx.EVT_TOOL, lambda x: self.p.layerup(), id=3) self.Bind(wx.EVT_TOOL, lambda x: self.p.layerdown(), id=4) self.Bind(wx.EVT_TOOL, self.resetview, id=5) self.Bind(wx.EVT_TOOL, lambda x: self.p.line_next(), id=6) self.Bind(wx.EVT_TOOL, lambda x: self.p.line_prev(), id=7) #self.Bind(wx.EVT_TOOL, lambda x:self.p.inject(), id = 5) self.CreateStatusBar(1) self.SetStatusText( "Layer number and Z position show here when you scroll") #self.bu = wx.Button(self.p,-1, "U", pos = (0, 100), size = (40, 140)) #self.bd = wx.Button(self.p,-1, "D", pos = (0, 140), size = (40, 140)) #self.bi = wx.Button(self.p,-1, "+", pos = (40, 100), size = (40, 140)) #self.bo = wx.Button(self.p,-1, "-", pos = (40, 140), size = (40, 140)) #self.bs = wx.Button(self.p, -1, "Inject", pos = (85, 103), size = (50, 20)) #self.bu.SetToolTip(wx.ToolTip("Move up one layer")) #self.bd.SetToolTip(wx.ToolTip("Move down one layer")) #self.bi.SetToolTip(wx.ToolTip("Zoom view in")) #self.bo.SetToolTip(wx.ToolTip("Zoom view out")) #self.bs.SetToolTip(wx.ToolTip("Insert Code at start of this layer")) #self.bu.Bind(wx.EVT_BUTTON, lambda x:self.p.layerup()) #self.bd.Bind(wx.EVT_BUTTON, lambda x:self.p.layerdown()) #self.bi.Bind(wx.EVT_BUTTON, lambda x:self.p.zoom(200, 200, 1.2)) #self.bo.Bind(wx.EVT_BUTTON, lambda x:self.p.zoom(200, 200, 1/1.2)) #self.bs.Bind(wx.EVT_BUTTON, lambda x:self.p.inject()) s = time.time() #print time.time()-s self.initpos = [0, 0] self.p.Bind(wx.EVT_KEY_DOWN, self.key) #self.bu.Bind(wx.EVT_KEY_DOWN, self.key) #self.bd.Bind(wx.EVT_KEY_DOWN, self.key) #self.bi.Bind(wx.EVT_KEY_DOWN, self.key) #self.bo.Bind(wx.EVT_KEY_DOWN, self.key) #self.Bind(wx.EVT_KEY_DOWN, self.key) self.Bind(wx.EVT_CHAR_HOOK, self.key) self.p.Bind(wx.EVT_MOUSEWHEEL, self.zoom) self.Bind(wx.EVT_MOUSEWHEEL, self.zoom) self.p.Bind(wx.EVT_MOUSE_EVENTS, self.mouse) self.Bind(wx.EVT_MOUSE_EVENTS, self.mouse)
def __init__(self, root): super(MainToolbar, self).__init__(wx.HORIZONTAL) imageFS = wx.Image(imagefile('fullscreen.png'), wx.BITMAP_TYPE_ANY).ConvertToBitmap() root.fullscreenbtn = wx.BitmapButton( root.panel, -1, bitmap=imageFS, size=(buttonSize[1], buttonSize[1]), style=wx.BU_EXACTFIT) #size is square, it's not a typo root.fullscreenbtn.Bind(wx.EVT_BUTTON, root.fullscreen) root.fullscreenbtn.SetToolTip( wx.ToolTip("Переключить в полноэкранный режим")) self.Add(root.fullscreenbtn) root.rescanbtn = make_autosize_button( root.panel, _("Порт"), root.rescanports, _("Communication Settings\nClick to rescan ports")) self.Add(root.rescanbtn, 0, wx.TOP | wx.LEFT, 0) root.serialport = wx.ComboBox(root.panel, -1, choices=root.scanserial(), style=wx.CB_DROPDOWN, size=(100, 25)) root.serialport.SetToolTip( wx.ToolTip("Выбрать порт для подключения принтера")) root.rescanports() self.Add(root.serialport) self.Add(wx.StaticText(root.panel, -1, "@"), 0, wx.RIGHT | wx.ALIGN_CENTER, 0) root.baud = wx.ComboBox(root.panel, -1, choices=[ "2400", "9600", "19200", "38400", "57600", "115200", "250000" ], style=wx.CB_DROPDOWN, size=(100, 25)) root.baud.SetToolTip( wx.ToolTip("Select Baud rate for printer communication")) try: root.baud.SetValue("115200") root.baud.SetValue(str(root.settings.baudrate)) except: pass self.Add(root.baud) root.connectbtn = make_autosize_button(root.panel, _("Подключение"), root.connect, _("Подключение к принтеру"), self) root.resetbtn = make_autosize_button(root.panel, _("Сброс"), root.reset, _("Перезагрузить принтер"), self) root.loadbtn = make_autosize_button(root.panel, _("Загрузить файл"), root.loadfile, _("Загрузить файл 3D-модели"), self) #root.platebtn = make_autosize_button(root.panel, _("Compose"), root.plate, _("Simple Plater System"), self) #root.sdbtn = make_autosize_button(root.panel, _("SD"), root.sdmenu, _("SD Card Printing"), self) #root.printerControls.append(root.sdbtn) #self.Hide(root.sdbtn) #self.Hide(root.platebtn) root.printbtn = make_autosize_button( root.panel, _("Печать"), root.printfile, _("Старт печати загруженного файла"), self) root.printbtn.Disable() root.pausebtn = make_autosize_button(root.panel, _("Пауза"), root.pause, _("Приостановить печать"), self) root.recoverbtn = make_autosize_button( root.panel, _("Вернуть"), root.recover, _("Восстановить предыдущую печать"), self)