コード例 #1
0
ファイル: xybuttons.py プロジェクト: DigsM/asimov
    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)
コード例 #2
0
ファイル: gviz.py プロジェクト: DigsM/asimov
    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
コード例 #3
0
ファイル: gviz.py プロジェクト: Akufnx/Printrun
    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)
コード例 #4
0
    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
コード例 #5
0
    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)
コード例 #6
0
ファイル: gcview.py プロジェクト: brodykenrick/Printrun
    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)
コード例 #7
0
ファイル: excluder.py プロジェクト: Borisenkov/Printrun
 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()
コード例 #8
0
ファイル: gviz.py プロジェクト: Borisenkov/Printrun
    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)
コード例 #9
0
ファイル: excluder.py プロジェクト: maestroflema/asimov
 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()
コード例 #10
0
ファイル: gviz.py プロジェクト: Exergy123/BioCNC
    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)
コード例 #11
0
ファイル: xybuttons.py プロジェクト: lozaloza/asimov
    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)
コード例 #12
0
ファイル: gui.py プロジェクト: peter6960/Printrun-pengpod700
    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
        )
コード例 #13
0
ファイル: gui.py プロジェクト: peter6960/Printrun-pengpod700
 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)
コード例 #14
0
ファイル: gui.py プロジェクト: archont58/standalone3dprint
 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)
コード例 #15
0
ファイル: zbuttons.py プロジェクト: DigsM/asimov
    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)
コード例 #16
0
    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)
コード例 #17
0
ファイル: gcview.py プロジェクト: D1plo1d/Printrun
 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)
コード例 #18
0
    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)
コード例 #19
0
ファイル: gviz.py プロジェクト: yzeed01/Software
    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)
コード例 #20
0
ファイル: gui.py プロジェクト: archont58/standalone3dprint
    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)