def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("Info"), app) self.grid2rows() # --- col, row = 0, 0 b = Ribbon.LabelButton(self.frame, image=Utils.icons["stats"], text=_("Statistics"), compound=LEFT, anchor=W, command=app.showStats, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Show statistics for enabled gcode")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton(self.frame, image=Utils.icons["info"], text=_("Info"), compound=LEFT, anchor=W, command=app.showInfo, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set( b, _("Show cutting information on selected blocks [Ctrl-n]")) self.addWidget(b)
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, "Probe:Tool", app) self.label["background"] = Ribbon._BACKGROUND_GROUP2 b = Ribbon.LabelButton(self.frame, self, "<<ToolCalibrate>>", image=Utils.icons["probe32"], text=_("Calibrate"), compound=TOP, width=48, background=Ribbon._BACKGROUND) b.pack(side=LEFT, fill=BOTH, expand=YES) self.addWidget(b) tkExtra.Balloon.set( b, _("Perform a single a tool change cycle to set the calibration field" )) b = Ribbon.LabelButton(self.frame, self, "<<ToolChange>>", image=Utils.icons["endmill32"], text=_("Change"), compound=TOP, width=48, background=Ribbon._BACKGROUND) b.pack(side=LEFT, fill=BOTH, expand=YES) self.addWidget(b) tkExtra.Balloon.set(b, _("Perform a tool change cycle"))
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("Pendant"), app) self.grid3rows() col, row = 0, 0 b = Ribbon.LabelButton(self.frame, text=_("Start"), image=Utils.icons["startPendant"], compound=LEFT, anchor=W, command=app.startPendant, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Start pendant")) row += 1 b = Ribbon.LabelButton(self.frame, text=_("Stop"), image=Utils.icons["stopPendant"], compound=LEFT, anchor=W, command=app.stopPendant, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Stop pendant"))
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, "Run", app) b = Ribbon.LabelButton(self.frame, self, "<<Run>>", image=Utils.icons["start32"], text=_("Start"), compound=TOP, background=Ribbon._BACKGROUND) b.pack(side=LEFT, fill=BOTH) tkExtra.Balloon.set(b, _("Run g-code commands from editor to controller")) self.addWidget(b) b = Ribbon.LabelButton(self.frame, self, "<<Pause>>", image=Utils.icons["pause32"], text=_("Pause"), compound=TOP, background=Ribbon._BACKGROUND) b.pack(side=LEFT, fill=BOTH) tkExtra.Balloon.set(b, _("Pause running program. Sends either FEED_HOLD ! or CYCLE_START ~")) b = Ribbon.LabelButton(self.frame, self, "<<Stop>>", image=Utils.icons["stop32"], text=_("Stop"), compound=TOP, background=Ribbon._BACKGROUND) b.pack(side=LEFT, fill=BOTH) tkExtra.Balloon.set(b, _("Pause running program and soft reset controller to empty the buffer."))
def __init__(self, master, app): CNCRibbon.ButtonMenuGroup.__init__(self, master, N_("Order"), app, [ (_("Optimize"), "optimize", lambda a=app: a.insertCommand("OPTIMIZE", True)), ]) self.grid2rows() col, row = 0, 0 b = Ribbon.LabelButton(self.frame, self, "<Control-Key-Prior>", image=OCV.icons["up"], text=_("Up"), compound=Tk.LEFT, anchor=Tk.W, background=OCV.COLOR_BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(b, _("Move selected g-code up [Ctrl-Up, Ctrl-PgUp]")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton(self.frame, self, "<Control-Key-Next>", image=OCV.icons["down"], text=_("Down"), compound=Tk.LEFT, anchor=Tk.W, background=OCV.COLOR_BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set( b, _("Move selected g-code down [Ctrl-Down, Ctrl-PgDn]")) self.addWidget(b) row += 1 b = Ribbon.LabelButton(self.frame, self, "<<Invert>>", image=OCV.icons["swap"], text=_("Invert"), compound=Tk.LEFT, anchor=Tk.W, background=OCV.COLOR_BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(b, _("Invert cutting order of selected blocks")) self.addWidget(b)
def __init__(self, master, app): CNCRibbon.ButtonMenuGroup.__init__(self, master, N_("Connection"), app, [(_("Hard Reset"), "reset", app.hardReset) ]) self.grid2rows() # --- col,row=0,0 b = Ribbon.LabelButton(self.frame, image=Utils.icons["home32"], text=_("Home"), compound=TOP, anchor=W, command=app.home, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, rowspan=3, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Perform a homing cycle [$H]")) self.addWidget(b) # --- col,row=1,0 b = Ribbon.LabelButton(self.frame, image=Utils.icons["unlock"], text=_("Unlock"), compound=LEFT, anchor=W, command=app.unlock, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Unlock controller [$X]")) self.addWidget(b) row += 1 b = Ribbon.LabelButton(self.frame, image=Utils.icons["serial"], text=_("Connection"), compound=LEFT, anchor=W, command=lambda s=self : s.event_generate("<<Connect>>"), background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Open/Close connection")) self.addWidget(b) row += 1 b = Ribbon.LabelButton(self.frame, image=Utils.icons["reset"], text=_("Reset"), compound=LEFT, anchor=W, command=app.softReset, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Software reset of controller [ctrl-x]")) self.addWidget(b)
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, "Options", app) self.grid3rows() # # --- # col,row=0,0 # b = Ribbon.LabelButton(self.frame, #self.page, "<<Config>>", # text=_("Config"), # image=Utils.icons["config32"], ## command=self.app.preferences, # state=DISABLED, # compound=TOP, # anchor=W, # background=Ribbon._BACKGROUND) # b.grid(row=row, column=col, rowspan=3, padx=0, pady=0, sticky=NS) # tkExtra.Balloon.set(b, _("Open configuration dialog")) # === col, row = 1, 0 b = Ribbon.LabelButton(self.frame, text=_("Report"), image=Utils.icons["debug"], compound=LEFT, command=Utils.ReportDialog.sendErrorReport, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=EW) tkExtra.Balloon.set(b, _("Send Error Report")) # --- col, row = 1, 1 b = Ribbon.LabelButton( self.frame, text=_("Updates"), image=Utils.icons["global"], compound=LEFT, state=DISABLED, # command=self.app.checkUpdates, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=EW) tkExtra.Balloon.set(b, _("Check Updates")) col, row = 1, 2 b = Ribbon.LabelButton(self.frame, text=_("About"), image=Utils.icons["about"], compound=LEFT, command=self.app.about, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=EW) tkExtra.Balloon.set(b, _("About the program"))
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("File"), app) self.grid3rows() # --- col,row=0,0 b = Ribbon.LabelButton(self.frame, self, "<<New>>", image=Utils.icons["new32"], text=_("New"), compound=TOP, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, rowspan=3, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("New gcode/dxf file")) self.addWidget(b) # --- col,row=1,0 b = Ribbon.LabelButton(self.frame, self, "<<Open>>", image=Utils.icons["open32"], background=Ribbon._BACKGROUND) b.grid(row=row, column=col, rowspan=2, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Open existing gcode/dxf file [Ctrl-O]")) self.addWidget(b) col,row=1,2 b = _RecentMenuButton(self.frame, None, text=_("Open"), image=Utils.icons["triangle_down"], compound=RIGHT, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Open recent file")) self.addWidget(b) # --- col,row=2,0 b = Ribbon.LabelButton(self.frame, self, "<<Save>>", image=Utils.icons["save32"], command=app.save, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, rowspan=2, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Save gcode/dxf file [Ctrl-S]")) self.addWidget(b) col,row=2,2 b = Ribbon.LabelButton(self.frame, self, "<<SaveAs>>", text=_("Save"), image=Utils.icons["triangle_down"], compound=RIGHT, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Save gcode/dxf AS")) self.addWidget(b)
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, "Probe:Autolevel", app) self.label["background"] = Ribbon._BACKGROUND_GROUP2 self.grid3rows() # --- col,row=0,0 b = Ribbon.LabelButton(self.frame, self, "<<AutolevelMargins>>", image=Utils.icons["margins"], text=_("Margins"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Get margins from gcode file")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton(self.frame, self, "<<AutolevelZero>>", image=Utils.icons["origin"], text=_("Zero"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Set current location as Z-zero for leveling")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton(self.frame, self, "<<AutolevelClear>>", image=Utils.icons["clear"], text=_("Clear"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Clear probe data")) self.addWidget(b) # --- col,row=1,0 b = Ribbon.LabelButton(self.frame, self, "<<AutolevelScan>>", image=Utils.icons["gear32"], text=_("Scan"), compound=TOP, justify=CENTER, width=48, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, rowspan=3, padx=0, pady=0, sticky=NSEW) self.addWidget(b) tkExtra.Balloon.set(b, _("Scan probed area for level information on Z plane"))
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("Route"), app) self.grid3rows() # --- col, row = 0, 0 b = Ribbon.LabelButton(self.frame, image=Utils.icons["conventional"], text=_("Conventional"), compound=LEFT, anchor=W, command=lambda s=app: s.insertCommand( "DIRECTION CONVENTIONAL", True), background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set( b, _("Change cut direction to conventional for selected gcode blocks") ) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton( self.frame, image=Utils.icons["climb"], text=_("Climb"), compound=LEFT, anchor=W, command=lambda s=app: s.insertCommand("DIRECTION CLIMB", True), background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set( b, _("Change cut direction to climb for selected gcode blocks")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton( self.frame, image=Utils.icons["reverse"], text=_("Reverse"), compound=LEFT, anchor=W, command=lambda s=app: s.insertCommand("REVERSE", True), background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set( b, _("Reverse cut direction for selected gcode blocks")) self.addWidget(b)
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("Clipboard"), app) self.grid2rows() b = Ribbon.LabelButton(self.frame, self, "<<Paste>>", image=OCV.icons["paste32"], text=_("Paste"), compound=Tk.TOP, takefocus=Tk.FALSE, background=OCV.COLOR_BACKGROUND) b.grid(row=0, column=0, rowspan=2, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(b, _("Paste [Ctrl-V]")) self.addWidget(b) b = Ribbon.LabelButton(self.frame, self, "<<Cut>>", image=OCV.icons["cut"], text=_("Cut"), compound=Tk.LEFT, anchor=Tk.W, takefocus=Tk.FALSE, background=OCV.COLOR_BACKGROUND) tkExtra.Balloon.set(b, _("Cut [Ctrl-X]")) b.grid(row=0, column=1, padx=0, pady=1, sticky=Tk.NSEW) self.addWidget(b) b = Ribbon.LabelButton(self.frame, self, "<<Copy>>", image=OCV.icons["copy"], text=_("Copy"), compound=Tk.LEFT, anchor=Tk.W, takefocus=Tk.FALSE, background=OCV.COLOR_BACKGROUND) tkExtra.Balloon.set(b, _("Copy [Ctrl-C]")) b.grid(row=1, column=1, padx=0, pady=1, sticky=Tk.NSEW) self.addWidget(b)
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, "Run", app) OCV.TK_RUN_GROUP = self but = Ribbon.LabelButton( self.frame, self, "<<Run>>", image=OCV.icons["start32"], text=_("Start"), compound=Tk.TOP, background=OCV.COLOR_BG) but.pack(side=Tk.LEFT, fill=Tk.BOTH) tkExtra.Balloon.set( but, _("Run g-code commands from editor to controller")) self.addWidget(but) but = Ribbon.LabelButton( self.frame, self, "<<Pause>>", name="run_pause", image=OCV.icons["pause32"], text=_("Pause"), compound=Tk.TOP, background=OCV.COLOR_BG) but.pack(side=Tk.LEFT, fill=Tk.BOTH) tkExtra.Balloon.set( but, _("Pause running program. Sends either FEED_HOLD ! or CYCLE_START ~")) but = Ribbon.LabelButton( self.frame, self, "<<Stop>>", name="run_stop", image=OCV.icons["stop32"], text=_("Stop"), compound=Tk.TOP, background=OCV.COLOR_BG) but.pack(side=Tk.LEFT, fill=Tk.BOTH) tkExtra.Balloon.set( but, _("Pause running program and soft reset controller to empty the buffer."))
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("File"), app) self.grid1rows() # # --- # col,row=0,0 # b = Ribbon.LabelButton(self.frame, self, "<<New>>", # image=Utils.icons["new32"], # text=_("New"), # compound=TOP, # background=Ribbon._BACKGROUND) # b.grid(row=row, column=col, rowspan=3, padx=0, pady=0, sticky=NSEW) # tkExtra.Balloon.set(b, _("New gcode/dxf file")) # self.addWidget(b) # # --- col, row = 0, 0 b = Ribbon.LabelButton(self.frame, self, "<<Open>>", image=Utils.icons["open32"], text=_("Open"), compound=TOP, width=40, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, rowspan=2, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Open existing gcode/dxf file [Ctrl-O]")) self.addWidget(b)
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("Select"), app) self.grid3rows() # --- col, row = 0, 0 b = Ribbon.LabelButton(self.frame, app, "<<SelectAll>>", image=Utils.icons["select_all"], text=_("All"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Select all blocks [Ctrl-A]")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton(self.frame, app, "<<SelectNone>>", image=Utils.icons["select_none"], text=_("None"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Unselect all blocks [Ctrl-Shift-A]")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton(self.frame, app, "<<SelectInvert>>", image=Utils.icons["select_invert"], text=_("Invert"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Invert selection [Ctrl-I]")) self.addWidget(b)
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("Terminal"), app) b = Ribbon.LabelButton(self.frame, self, "<<TerminalClear>>", image=Utils.icons["clean32"], text=_("Clear"), compound=TOP, background=Ribbon._BACKGROUND) b.pack(fill=BOTH, expand=YES) tkExtra.Balloon.set(b, _("Clear terminal"))
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("Calculate"), app) self.grid3rows() # # --- # col,row=0,0 # b = Ribbon.LabelButton(self.frame, #self.page, "<<Config>>", # text=_("Config"), # image=Utils.icons["config32"], ## command=self.app.preferences, # state=DISABLED, # compound=TOP, # anchor=W, # background=Ribbon._BACKGROUND) # b.grid(row=row, column=col, rowspan=3, padx=0, pady=0, sticky=NS) # tkExtra.Balloon.set(b, _("Open configuration dialog")) # === col, row = 0, 0 b = Ribbon.LabelButton( self.frame, text=_("Calculate"), image=Utils.icons["gear32"], compound=TOP, anchor=W, command=app.drawText, #command = Tag.drawText(app), background=Ribbon._BACKGROUND) b.grid(row=row, column=col, rowspan=3, padx=10, pady=10, sticky=NSEW) tkExtra.Balloon.set(b, _("Calculate G code")) self.addWidget(b) col, row = 1, 0 b = Ribbon.LabelButton(self.frame, text=_("Probe Tool"), image=Utils.icons["probe32"], compound=TOP, anchor=W, command=app.probeTool, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, rowspan=3, padx=10, pady=10, sticky=NSEW) tkExtra.Balloon.set(b, _("Probe Tool")) self.addWidget(b)
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("Close"), app) # --- b = Ribbon.LabelButton(self.frame, text=_("Exit"), image=Utils.icons["exit32"], compound=TOP, command=app.quit, anchor=W, background=Ribbon._BACKGROUND) b.pack(fill=BOTH, expand=YES) tkExtra.Balloon.set(b, _("Close program [Ctrl-Q]"))
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("Terminal"), app) but = Ribbon.LabelButton( self.frame, self, "<<TerminalClear>>", image=OCV.icons["clean32"], text=_("Clear"), compound=Tk.TOP, background=OCV.COLOR_BACKGROUND) but.pack(fill=Tk.BOTH, expand=Tk.YES) tkExtra.Balloon.set(but, _("Clear terminal"))
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__( self, master, N_("Pendant"), app) self.grid3rows() col, row = 0, 0 b = Ribbon.LabelButton( self.frame, text=_("Start"), image=OCV.icons["start_pendant"], compound=Tk.LEFT, anchor=Tk.W, command=OCV.TK_MAIN.startPendant, background=OCV.COLOR_BG) b.grid(row=row, column=col, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(b, _("Start pendant")) row += 1 b = Ribbon.LabelButton( self.frame, text=_("Stop"), image=OCV.icons["stop_pendant"], compound=Tk.LEFT, anchor=Tk.W, command=OCV.TK_MAIN.stopPendant, background=OCV.COLOR_BG) b.grid(row=row, column=col, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(b, _("Stop pendant"))
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, "Probe:Center", app) self.label["background"] = Ribbon._BACKGROUND_GROUP2 b = Ribbon.LabelButton(self.frame, self, "<<ProbeCenter>>", image=Utils.icons["gear32"], text=_("Center"), compound=TOP, width=48, background=Ribbon._BACKGROUND) b.pack(fill=BOTH, expand=YES) self.addWidget(b) tkExtra.Balloon.set(b, _("Perform a center probe cycle"))
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("Close"), app) b = Ribbon.LabelButton(self.frame, text=_("Exit"), image=OCV.icons["exit32"], compound=Tk.TOP, command=OCV.APP.quit, anchor=Tk.W, background=OCV.COLOR_BACKGROUND) b.pack(fill=Tk.BOTH, expand=Tk.YES) tkExtra.Balloon.set(b, _("Close program [Ctrl-Q]"))
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__( self, master, N_("Options"), app) self.grid3rows() col, row = 1, 2 b = Ribbon.LabelButton( self.frame, text=_("About"), image=OCV.icons["about"], compound=Tk.LEFT, command=OCV.TK_MAIN.about_box, anchor=Tk.W, background=OCV.COLOR_BG) b.grid(row=row, column=col, padx=0, pady=0, sticky=Tk.EW) tkExtra.Balloon.set(b, _("About the program"))
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("Database"), app) self.grid3rows() # --- col,row=0,0 b = Ribbon.LabelRadiobutton(self.frame, image=Utils.icons["stock32"], text=_("Stock"), compound=TOP, anchor=W, variable=app.tools.active, value="Stock", background=Ribbon._BACKGROUND) b.grid(row=row, column=col, rowspan=3, padx=2, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Stock material currently on machine")) self.addWidget(b) # === col,row=1,0 b = Ribbon.LabelRadiobutton(self.frame, image=Utils.icons["material"], text=_("Material"), compound=LEFT, anchor=W, variable=app.tools.active, value="Material", background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Editable database of material properties")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelRadiobutton(self.frame, image=Utils.icons["endmill"], text=_("End Mill"), compound=LEFT, anchor=W, variable=app.tools.active, value="EndMill", background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Editable database of EndMills properties")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton(self.frame, app, "<<ToolRename>>", image=Utils.icons["rename"], text=_("Rename"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Edit name of current operation/object")) self.addWidget(b) app.tools.addButton("rename",b) # === col,row=2,0 b = Ribbon.LabelButton(self.frame, app, "<<ToolAdd>>", image=Utils.icons["add"], text=_("Add"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Add a new operation/object")) self.addWidget(b) app.tools.addButton("add",b) # --- row += 1 b = Ribbon.LabelButton(self.frame, app, "<<ToolClone>>", image=Utils.icons["clone"], text=_("Clone"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Clone selected operation/object")) self.addWidget(b) app.tools.addButton("clone",b) # --- row += 1 b = Ribbon.LabelButton(self.frame, app, "<<ToolDelete>>", image=Utils.icons["x"], text=_("Delete"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Delete selected operation/object")) self.addWidget(b) app.tools.addButton("delete",b)
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__( self, master, N_("File"), app) self.grid3rows() col, row = 0, 0 b = Ribbon.LabelButton( self.frame, self, "<<New>>", image=OCV.icons["new32"], text=_("New"), compound=Tk.TOP, background=OCV.COLOR_BG) b.grid(row=row, column=col, rowspan=3, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(b, _("New gcode file")) self.addWidget(b) col, row = 1, 0 b = Ribbon.LabelButton( self.frame, self, "<<Open>>", image=OCV.icons["open32"], background=OCV.COLOR_BG) b.grid(row=row, column=col, rowspan=2, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(b, _("Open existing gcode file [Ctrl-O]")) self.addWidget(b) col, row = 1, 2 b = _RecentMenuButton( self.frame, None, text=_("Open"), image=OCV.icons["triangle_down"], compound=Tk.RIGHT, background=OCV.COLOR_BG) b.grid(row=row, column=col, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(b, _("Open recent file")) self.addWidget(b) col, row = 2, 0 b = Ribbon.LabelButton( self.frame, self, "<<Import>>", image=OCV.icons["import32"], text=_("Import"), compound=Tk.TOP, background=OCV.COLOR_BG) b.grid(row=row, column=col, rowspan=3, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(b, _("Import gcode file")) self.addWidget(b) col, row = 3, 0 b = Ribbon.LabelButton( self.frame, self, "<<Save>>", image=OCV.icons["save32"], command=OCV.TK_MAIN.save, background=OCV.COLOR_BG) b.grid(row=row, column=col, rowspan=2, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(b, _("Save gcode file [Ctrl-S]")) self.addWidget(b) col, row = 3, 2 b = Ribbon.LabelButton( self.frame, self, "<<SaveAs>>", text=_("Save"), image=OCV.icons["triangle_down"], compound=Tk.RIGHT, background=OCV.COLOR_BG) b.grid(row=row, column=col, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(b, _("Save gcode as...")) self.addWidget(b)
def __init__(self, master, app): CNCRibbon.PageLabelFrame.__init__( self, master, "Serial", _("Serial"), app) self.autostart = Tk.BooleanVar() col, row = 0, 0 b = Tk.Label(self, text=_("Port:")) b.grid(row=row, column=col, sticky=Tk.E) self.addWidget(b) self.portCombo = tkExtra.Combobox( self, False, background=tkExtra.GLOBAL_CONTROL_BACKGROUND, width=16, command=self.comportClean) self.portCombo.grid(row=row, column=col+1, sticky=Tk.EW) tkExtra.Balloon.set( self.portCombo, _("Select (or manual enter) port to connect")) self.portCombo.set(IniFile.get_str("Connection","port")) self.addWidget(self.portCombo) self.comportRefresh() row += 1 b = Tk.Label(self, text=_("Baud:")) b.grid(row=row, column=col, sticky=Tk.E) self.baudCombo = tkExtra.Combobox( self, True, background=tkExtra.GLOBAL_CONTROL_BACKGROUND) self.baudCombo.grid(row=row, column=col+1, sticky=Tk.EW) tkExtra.Balloon.set(self.baudCombo, _("Select connection baud rate")) self.baudCombo.fill(BAUDS) self.baudCombo.set(IniFile.get_str("Connection","baud","115200")) self.addWidget(self.baudCombo) row += 1 b = Tk.Label(self, text=_("Controller:")) b.grid(row=row, column=col, sticky=Tk.E) self.ctrlCombo = tkExtra.Combobox( self, True, background=tkExtra.GLOBAL_CONTROL_BACKGROUND, command=self.ctrlChange) self.ctrlCombo.grid(row=row, column=col+1, sticky=Tk.EW) tkExtra.Balloon.set(self.ctrlCombo, _("Select controller board")) self.ctrlCombo.fill(OCV.TK_MAIN.controllerList()) self.ctrlCombo.set(OCV.TK_MAIN.controller) self.addWidget(self.ctrlCombo) row += 1 b = Tk.Checkbutton( self, text=_("Connect on startup"), variable=self.autostart) b.grid(row=row, column=col, columnspan=2, sticky=Tk.W) tkExtra.Balloon.set( b, _("Connect to serial on startup of the program")) self.autostart.set(IniFile.get_bool("Connection","openserial")) self.addWidget(b) col += 2 self.comrefBtn = Ribbon.LabelButton( self, image=OCV.icons["refresh"], text=_("Refresh"), compound=Tk.TOP, command=lambda s=self: s.comportRefresh(True), background=OCV.COLOR_BG) self.comrefBtn.grid( row=row, column=col, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(self.comrefBtn, _("Refresh list of serial ports")) #col += 2 row = 0 self.connectBtn = Ribbon.LabelButton( self, image=OCV.icons["serial48"], text=_("Open"), compound=Tk.TOP, command=lambda s=self: s.event_generate("<<Connect>>"), background=OCV.COLOR_BG) self.connectBtn.grid( row=row, column=col, rowspan=3, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(self.connectBtn, _("Open/Close serial port")) self.grid_columnconfigure(1, weight=1)
def __init__(self, master, app): CNCRibbon.PageLabelFrame.__init__(self, master, "Serial", app) self.autostart = BooleanVar() # --- col, row = 0, 0 b = Label(self, text=_("Port:")) b.grid(row=row, column=col, sticky=E) self.addWidget(b) self.portCombo = tkExtra.Combobox(self, False, background="White", width=16) self.portCombo.grid(row=row, column=col + 1, sticky=EW) tkExtra.Balloon.set(self.portCombo, _("Select (or manual enter) port to connect")) # sys.stdout.write(comports()) devices = sorted([x[0] for x in comports()]) self.portCombo.fill(devices) self.portCombo.set(Utils.getStr("Connection", "port")) self.addWidget(self.portCombo) # --- row += 1 b = Label(self, text=_("Baud:")) b.grid(row=row, column=col, sticky=E) self.baudCombo = tkExtra.Combobox(self, True, background="White") self.baudCombo.grid(row=row, column=col + 1, sticky=EW) tkExtra.Balloon.set(self.baudCombo, _("Select connection baud rate")) self.baudCombo.fill(BAUDS) self.baudCombo.set(Utils.getStr("Connection", "baud", "115200")) self.addWidget(self.baudCombo) # --- row += 1 b = Label(self, text=_("Controller:")) b.grid(row=row, column=col, sticky=E) self.ctrlCombo = tkExtra.Combobox(self, True, background="White", command=self.ctrlChange) self.ctrlCombo.grid(row=row, column=col + 1, sticky=EW) tkExtra.Balloon.set(self.ctrlCombo, _("Select controller board")) self.ctrlCombo.fill(sorted(Utils.CONTROLLER.keys())) self.ctrlCombo.set(Utils.controllerName(app.controller)) self.addWidget(self.ctrlCombo) # --- row += 1 b = Checkbutton(self, text=_("Connect on startup"), variable=self.autostart) b.grid(row=row, column=col, columnspan=2, sticky=W) tkExtra.Balloon.set(b, _("Connect to serial on startup of the program")) self.autostart.set(Utils.getBool("Connection", "openserial")) self.addWidget(b) # --- col += 2 row = 0 self.connectBtn = Ribbon.LabelButton( self, image=Utils.icons["serial32"], text=_("Open"), compound=TOP, command=lambda s=self: s.event_generate("<<Connect>>"), background=Ribbon._BACKGROUND) self.connectBtn.grid(row=row, column=col, rowspan=3, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(self.connectBtn, _("Open/Close serial port")) self.grid_columnconfigure(1, weight=1)
def __init__(self, master, app): CNCRibbon.ButtonMenuGroup.__init__( self, master, N_("Connection"), app, [(_("Hard Reset"), "reset", OCV.MCTRL.hardReset)]) # print("ConnectionGroup app", app) self.grid2rows() col, row = 0, 0 but = Ribbon.LabelButton(self.frame, image=OCV.icons["home32"], text=_("Home"), compound=Tk.TOP, anchor=Tk.W, command=OCV.MCTRL.home(), background=OCV.COLOR_BACKGROUND) but.grid(row=row, column=col, rowspan=3, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(but, _("Perform a homing cycle [$H]")) self.addWidget(but) col, row = 1, 0 but = Ribbon.LabelButton(self.frame, image=OCV.icons["unlock"], text=_("Unlock"), compound=Tk.LEFT, anchor=Tk.W, command=OCV.MCTRL.unlock(True), background=OCV.COLOR_BACKGROUND) but.grid(row=row, column=col, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(but, _("Unlock controller [$X]")) self.addWidget(but) row += 1 but = Ribbon.LabelButton( self.frame, image=OCV.icons["serial"], text=_("Connection"), compound=Tk.LEFT, anchor=Tk.W, command=lambda s=self: s.event_generate("<<Connect>>"), background=OCV.COLOR_BACKGROUND) but.grid(row=row, column=col, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(but, _("Open/Close connection")) self.addWidget(but) row += 1 but = Ribbon.LabelButton(self.frame, image=OCV.icons["reset"], text=_("Reset"), compound=Tk.LEFT, anchor=Tk.W, command=OCV.MCTRL.softReset(True), background=OCV.COLOR_BACKGROUND) but.grid(row=row, column=col, padx=0, pady=0, sticky=Tk.NSEW) tkExtra.Balloon.set(but, _("Software reset of controller [ctrl-x]")) self.addWidget(but)
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("Select"), app) self.grid3rows() # --- col, row = 0, 0 b = Ribbon.LabelButton(self.frame, app, "<<SelectAll>>", image=Utils.icons["select_all"], text=_("All"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Select all blocks [Ctrl-A]")) self.addWidget(b) # --- col += 1 b = Ribbon.LabelButton(self.frame, app, "<<SelectNone>>", image=Utils.icons["select_none"], text=_("None"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Unselect all blocks [Ctrl-Shift-A]")) self.addWidget(b) # --- col, row = 0, 1 b = Ribbon.LabelButton(self.frame, app, "<<SelectInvert>>", image=Utils.icons["select_invert"], text=_("Invert"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Invert selection [Ctrl-I]")) self.addWidget(b) # --- col += 1 b = Ribbon.LabelButton(self.frame, app, "<<SelectLayer>>", image=Utils.icons["select_layer"], text=_("Layer"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Select all blocks from current layer")) self.addWidget(b) # --- col, row = 0, 2 self.filterString = tkExtra.LabelEntry(self.frame, "Filter", "DarkGray", background="White", width=16) self.filterString.grid(row=row, column=col, columnspan=2, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(self.filterString, _("Filter blocks")) self.addWidget(self.filterString) self.filterString.bind("<Return>", self.filter) self.filterString.bind("<KP_Enter>", self.filter)
def __init__(self, master, app): CNCRibbon.ButtonMenuGroup.__init__( self, master, N_("Edit"), app, [(_("Autolevel"), "level", lambda a=app: a.insertCommand("AUTOLEVEL", True)), (_("Color"), "color", lambda a=app: a.event_generate("<<ChangeColor>>")), (_("Import"), "load", lambda a=app: a.insertCommand("IMPORT", True)), (_("Inkscape"), "inkscape", lambda a=app: a.insertCommand("INKSCAPE all", True)), (_("Round"), "digits", lambda s=app: s.insertCommand("ROUND", True))]) self.grid3rows() # --- col, row = 0, 0 # b = Ribbon.LabelButton(self.frame, app, "<<Add>>", # image=Utils.icons["add"], # text=_("Add"), # compound=LEFT, # anchor=W, # background=Ribbon._BACKGROUND) # b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) # tkExtra.Balloon.set(b, _("Insert a new block or line of code [Ins or Ctrl-Enter]")) # self.addWidget(b) b = Ribbon.LabelButton(self.frame, self.app, "<<Add>>", image=Utils.icons["add"], anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set( b, _("Insert a new block or line of code [Ins or Ctrl-Enter]")) self.addWidget(b) menulist = [(_("Line"), "add", lambda a=self.app: a.event_generate("<<AddLine>>")), (_("Block"), "add", lambda a=self.app: a.event_generate("<<AddBlock>>"))] b = Ribbon.MenuButton(self.frame, menulist, text=_("Add"), image=Utils.icons["triangle_down"], compound=RIGHT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col + 1, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set( b, _("Insert a new block or line of code [Ins or Ctrl-Enter]")) # --- row += 1 b = Ribbon.LabelButton(self.frame, app, "<<Clone>>", image=Utils.icons["clone"], text=_("Clone"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, columnspan=2, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Clone selected lines or blocks [Ctrl-D]")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton(self.frame, app, "<<Delete>>", image=Utils.icons["x"], text=_("Delete"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, columnspan=2, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Delete selected lines or blocks [Del]")) self.addWidget(b) # --- col, row = 2, 0 b = Ribbon.LabelButton( self.frame, self.app, "<<EnableToggle>>", image=Utils.icons["toggle"], # text=_("Toggle"), # compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set( b, _("Toggle enable/disable block of g-code [Ctrl-L]")) self.addWidget(b) menulist = [(_("Enable"), "enable", lambda a=self.app: a.event_generate("<<Enable>>")), (_("Disable"), "disable", lambda a=self.app: a.event_generate("<<Disable>>"))] b = Ribbon.MenuButton(self.frame, menulist, text=_("Active"), image=Utils.icons["triangle_down"], compound=RIGHT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col + 1, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Enable or disable blocks of gcode")) # --- row += 1 b = Ribbon.LabelButton(self.frame, self.app, "<<Expand>>", image=Utils.icons["expand"], text=_("Expand"), compound=LEFT, anchor=W, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, columnspan=2, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set( b, _("Toggle expand/collapse blocks of gcode [Ctrl-E]")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton(self.frame, image=Utils.icons["comment"], text=_("Comment"), compound=LEFT, anchor=W, state=DISABLED, background=Ribbon._BACKGROUND) b.grid(row=row, column=col, columnspan=2, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("(Un)Comment selected lines")) self.addWidget(b)
def __init__(self, master, app): CNCRibbon.ButtonGroup.__init__(self, master, N_("Transform"), app) self.grid3rows() # --- col, row = 0, 0 b = Ribbon.LabelButton( self.frame, image=Utils.icons["rotate90"], text=_("CW"), compound=LEFT, anchor=W, command=lambda s=app: s.insertCommand("ROTATE CW", True), background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Rotate selected gcode clock-wise (-90deg)")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton( self.frame, image=Utils.icons["rotate180"], text=_("Flip"), compound=LEFT, anchor=W, command=lambda s=app: s.insertCommand("ROTATE FLIP", True), background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Rotate selected gcode by 180deg")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton( self.frame, image=Utils.icons["rotate270"], text=_("CCW"), compound=LEFT, anchor=W, command=lambda s=app: s.insertCommand("ROTATE CCW", True), background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set( b, _("Rotate selected gcode counter-clock-wise (90deg)")) self.addWidget(b) # --- col, row = 1, 0 b = Ribbon.LabelButton( self.frame, image=Utils.icons["flip-horizontal"], text=_("Horizontal"), compound=LEFT, anchor=W, command=lambda s=app: s.insertCommand("MIRROR horizontal", True), background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Mirror horizontally X=-X selected gcode")) self.addWidget(b) # --- row += 1 b = Ribbon.LabelButton( self.frame, image=Utils.icons["flip-vertical"], text=_("Vertical"), compound=LEFT, anchor=W, command=lambda s=app: s.insertCommand("MIRROR vertical", True), background=Ribbon._BACKGROUND) b.grid(row=row, column=col, padx=0, pady=0, sticky=NSEW) tkExtra.Balloon.set(b, _("Mirror vertically Y=-Y selected gcode")) self.addWidget(b)