From c6e3176ac32596dcb34f24605a98efaacf2738bb Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Mon, 29 Jul 2019 00:35:59 +0300 Subject: [PATCH] - in Basic mode, the tool type column is no longer hidden as it may create issues when using an painted geometry - some PEP8 clean-up in FlatCAMGui.py --- FlatCAMApp.py | 13 ++-- FlatCAMObj.py | 2 +- README.md | 2 + camlib.py | 13 ++-- flatcamGUI/FlatCAMGUI.py | 137 ++++++++++++++++++--------------------- 5 files changed, 80 insertions(+), 87 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 8ca78b51..cdc61812 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -6141,11 +6141,12 @@ class App(QtCore.QObject): self.report_usage("on_fileopengerber") App.log.debug("on_fileopengerber()") - _filter_ = "Gerber Files (*.gbr *.ger *.gtl *.gbl *.gts *.gbs *.gtp *.gbp *.gto *.gbo *.gm1 *.gml *.gm3 *.gko " \ - "*.cmp *.sol *.stc *.sts *.plc *.pls *.crc *.crs *.tsm *.bsm *.ly2 *.ly15 *.dim *.mil *.grb" \ + _filter_ = "Gerber Files (*.gbr *.ger *.gtl *.gbl *.gts *.gbs *.gtp *.gbp *.gto *.gbo *.gm1 *.gml *.gm3 *" \ + ".gko *.cmp *.sol *.stc *.sts *.plc *.pls *.crc *.crs *.tsm *.bsm *.ly2 *.ly15 *.dim *.mil *.grb" \ "*.top *.bot *.smt *.smb *.sst *.ssb *.spt *.spb *.pho *.gdo *.art *.gbd *.gb*);;" \ "Protel Files (*.gtl *.gbl *.gts *.gbs *.gto *.gbo *.gtp *.gbp *.gml *.gm1 *.gm3 *.gko);;" \ - "Eagle Files (*.cmp *.sol *.stc *.sts *.plc *.pls *.crc *.crs *.tsm *.bsm *.ly2 *.ly15 *.dim *.mil);;" \ + "Eagle Files (*.cmp *.sol *.stc *.sts *.plc *.pls *.crc *.crs *.tsm *.bsm *.ly2 *.ly15 *.dim " \ + "*.mil);;" \ "OrCAD Files (*.top *.bot *.smt *.smb *.sst *.ssb *.spt *.spb);;" \ "Allegro Files (*.art);;" \ "Mentor Files (*.pho *.gdo);;" \ @@ -7680,9 +7681,9 @@ class App(QtCore.QObject): app_obj.progress.emit(0) self.log.error(str(err)) return "fail" - - except: - msg = _("[ERROR] An internal error has ocurred. See shell.\n") + except Exception as e: + log.debug("App.open_gerber() --> %s" % str(e)) + msg = _("[ERROR] An internal error has occurred. See shell.\n") msg += traceback.format_exc() app_obj.inform.emit(msg) return "fail" diff --git a/FlatCAMObj.py b/FlatCAMObj.py index b6b3ce9f..9eb529cf 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -3318,7 +3318,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.ui.geo_tools_table.setColumnHidden(2, True) self.ui.geo_tools_table.setColumnHidden(3, True) - self.ui.geo_tools_table.setColumnHidden(4, True) + # self.ui.geo_tools_table.setColumnHidden(4, True) self.ui.addtool_entry_lbl.hide() self.ui.addtool_entry.hide() self.ui.addtool_btn.hide() diff --git a/README.md b/README.md index 821fa1d4..8ddf831b 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ CAD program, and create G-Code for Isolation routing. - fixed issue with not using the current units in the tool tables after unit conversion - after unit conversion from Preferences, the default values are automatically saved by the app +- in Basic mode, the tool type column is no longer hidden as it may create issues when using an painted geometry +- some PEP8 clean-up in FlatCAMGui.py 20.07.2019 diff --git a/camlib.py b/camlib.py index f5f72740..88103713 100644 --- a/camlib.py +++ b/camlib.py @@ -2154,11 +2154,12 @@ class Gerber (Geometry): # Otherwise leave as is. else: - # yield cleanline + # yield clean line yield line break - self.parse_lines(line_generator()) + processed_lines = list(line_generator()) + self.parse_lines(processed_lines) # @profile def parse_lines(self, glines): @@ -2241,10 +2242,10 @@ class Gerber (Geometry): gline = gline.strip(' \r\n') # log.debug("Line=%3s %s" % (line_num, gline)) - # ############################################################# ## - # Ignored lines # - # Comments #### ## - # ############################################################# ## + # ################### + # Ignored lines ##### + # Comments ##### + # ################### match = self.comm_re.search(gline) if match: continue diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index bf64b5b3..dbd920dd 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -20,12 +20,13 @@ from flatcamEditors.FlatCAMGeoEditor import FCShapeTool import gettext import FlatCAMTranslation as fcTranslate +import builtins fcTranslate.apply_language('strings') -import builtins if '_' not in builtins.__dict__: _ = gettext.gettext + class FlatCAMGUI(QtWidgets.QMainWindow): # Emitted when persistent window geometry needs to be retained geom_update = QtCore.pyqtSignal(int, int, int, int, int, name='geomUpdate') @@ -87,8 +88,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): # Open Excellon ... self.menufileopenexcellon = QtWidgets.QAction(QtGui.QIcon('share/open_excellon32.png'), - _('Open &Excellon ...\tCTRL+E'), - self) + _('Open &Excellon ...\tCTRL+E'), self) self.menufile_open.addAction(self.menufileopenexcellon) # Open G-Code ... @@ -115,16 +115,14 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.menufile_scripting = self.menufile.addMenu(QtGui.QIcon('share/script16.png'), _('Scripting')) self.menufile_scripting.setToolTipsVisible(True) - self.menufilenewscript = QtWidgets.QAction(QtGui.QIcon('share/script_new16.png'), _('New Script ...'), - self) - self.menufileopenscript = QtWidgets.QAction(QtGui.QIcon('share/script_open16.png'), _('Open Script ...'), - self) - self.menufilerunscript = QtWidgets.QAction(QtGui.QIcon('share/script16.png'), _('Run Script ...\tSHIFT+S'), - self) + self.menufilenewscript = QtWidgets.QAction(QtGui.QIcon('share/script_new16.png'), _('New Script ...'), self) + self.menufileopenscript = QtWidgets.QAction(QtGui.QIcon('share/script_open16.png'), _('Open Script ...'), self) + self.menufilerunscript = QtWidgets.QAction(QtGui.QIcon('share/script16.png'), + _('Run Script ...\tSHIFT+S'), self) self.menufilerunscript.setToolTip( - _( "Will run the opened Tcl Script thus\n" - "enabling the automation of certain\n" - "functions of FlatCAM.") + _("Will run the opened Tcl Script thus\n" + "enabling the automation of certain\n" + "functions of FlatCAM.") ) self.menufile_scripting.addAction(self.menufilenewscript) self.menufile_scripting.addAction(self.menufileopenscript) @@ -174,8 +172,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.menufileexport.addSeparator() - self.menufileexportexcellon = QtWidgets.QAction(QtGui.QIcon('share/drill32.png'), _('Export &Excellon ...'), - self) + self.menufileexportexcellon = QtWidgets.QAction(QtGui.QIcon('share/drill32.png'), + _('Export &Excellon ...'), self) self.menufileexportexcellon.setToolTip( _("Will export an Excellon Object as Excellon file,\n" "the coordinates format, the file units and zeros\n" @@ -183,8 +181,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow): ) self.menufileexport.addAction(self.menufileexportexcellon) - self.menufileexportgerber = QtWidgets.QAction(QtGui.QIcon('share/flatcam_icon32.png'), _('Export &Gerber ...'), - self) + self.menufileexportgerber = QtWidgets.QAction(QtGui.QIcon('share/flatcam_icon32.png'), + _('Export &Gerber ...'), self) self.menufileexportgerber.setToolTip( _("Will export an Gerber Object as Gerber file,\n" "the coordinates format, the file units and zeros\n" @@ -214,8 +212,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.menufile_save.addAction(self.menufilesaveprojectas) # Save Project Copy ... - self.menufilesaveprojectcopy = QtWidgets.QAction(QtGui.QIcon('share/floppy16.png'), _('Save Project C&opy ...'), - self) + self.menufilesaveprojectcopy = QtWidgets.QAction(QtGui.QIcon('share/floppy16.png'), + _('Save Project C&opy ...'), self) self.menufile_save.addAction(self.menufilesaveprojectcopy) # Separator @@ -253,7 +251,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.menuedit_convertjoinexc = self.menuedit_convert.addAction( QtGui.QIcon('share/join16.png'), _('Join Excellon(s) -> Excellon')) self.menuedit_convertjoinexc.setToolTip( - _( "Merge a selection of Excellon objects into a new combo Excellon object.") + _("Merge a selection of Excellon objects into a new combo Excellon object.") ) self.menuedit_convertjoingrb = self.menuedit_convert.addAction( QtGui.QIcon('share/join16.png'), _('Join Gerber(s) -> Gerber')) @@ -279,7 +277,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.menueditconvert_any2geo = self.menuedit_convert.addAction(QtGui.QIcon('share/copy_geo.png'), _('Convert Any to Geo')) self.menueditconvert_any2gerber = self.menuedit_convert.addAction(QtGui.QIcon('share/copy_geo.png'), - _('Convert Any to Gerber')) + _('Convert Any to Gerber')) self.menuedit_convert.setToolTipsVisible(True) # Separator @@ -297,10 +295,9 @@ class FlatCAMGUI(QtWidgets.QMainWindow): # Separator self.menuedit.addSeparator() - self.menuedittoggleunits= self.menuedit.addAction(QtGui.QIcon('share/toggle_units16.png'), - _('Toggle Units\tQ')) - self.menueditselectall = self.menuedit.addAction(QtGui.QIcon('share/select_all.png'), - _('&Select All\tCTRL+A')) + self.menuedittoggleunits = self.menuedit.addAction(QtGui.QIcon('share/toggle_units16.png'), + _('Toggle Units\tQ')) + self.menueditselectall = self.menuedit.addAction(QtGui.QIcon('share/select_all.png'), _('&Select All\tCTRL+A')) # Separator self.menuedit.addSeparator() @@ -329,7 +326,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.menuoptions_transform_skewx = self.menuoptions.addAction(QtGui.QIcon('share/skewX.png'), _("&Skew on X axis\tSHIFT+X")) self.menuoptions_transform_skewy = self.menuoptions.addAction(QtGui.QIcon('share/skewY.png'), - _( "S&kew on Y axis\tSHIFT+Y")) + _("S&kew on Y axis\tSHIFT+Y")) # Separator self.menuoptions.addSeparator() @@ -430,13 +427,13 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.geo_editor_menu.addSeparator() self.geo_move_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/move32.png'), _("Move\tM")) self.geo_buffer_menuitem = self.geo_editor_menu.addAction( - QtGui.QIcon('share/buffer16.png'),_( "Buffer Tool\tB") + QtGui.QIcon('share/buffer16.png'), _("Buffer Tool\tB") ) self.geo_paint_menuitem = self.geo_editor_menu.addAction( QtGui.QIcon('share/paint16.png'), _("Paint Tool\tI") ) self.geo_transform_menuitem = self.geo_editor_menu.addAction( - QtGui.QIcon('share/transform.png'),_( "Transform Tool\tALT+R") + QtGui.QIcon('share/transform.png'), _("Transform Tool\tALT+R") ) self.geo_editor_menu.addSeparator() self.geo_cornersnap_menuitem = self.geo_editor_menu.addAction( @@ -461,50 +458,45 @@ class FlatCAMGUI(QtWidgets.QMainWindow): ) self.exc_editor_menu.addSeparator() - self.exc_move_drill_menuitem = self.exc_editor_menu.addAction( - QtGui.QIcon('share/move32.png'),_( 'Move Drill(s)\tM')) + self.exc_move_drill_menuitem = self.exc_editor_menu.addAction(QtGui.QIcon('share/move32.png'), + _('Move Drill(s)\tM')) # ## APPLICATION GERBER EDITOR MENU ### self.grb_editor_menu = QtWidgets.QMenu(_(">Gerber Editor<")) self.menu.addMenu(self.grb_editor_menu) - self.grb_add_pad_menuitem = self.grb_editor_menu.addAction( - QtGui.QIcon('share/aperture16.png'), _('Add Pad\tP')) - self.grb_add_pad_array_menuitem = self.grb_editor_menu.addAction( - QtGui.QIcon('share/padarray32.png'), _('Add Pad Array\tA')) - self.grb_add_track_menuitem = self.grb_editor_menu.addAction( - QtGui.QIcon('share/track32.png'), _('Add Track\tT')) + self.grb_add_pad_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/aperture16.png'), + _('Add Pad\tP')) + self.grb_add_pad_array_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/padarray32.png'), + _('Add Pad Array\tA')) + self.grb_add_track_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/track32.png'), + _('Add Track\tT')) self.grb_add_region_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/rectangle32.png'), _('Add Region\tN')) self.grb_editor_menu.addSeparator() - self.grb_convert_poly_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/poligonize32.png'), - _("Poligonize\tALT+N")) + self.grb_convert_poly_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/poligonize32.png'), + _("Poligonize\tALT+N")) self.grb_add_semidisc_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/semidisc32.png'), _("Add SemiDisc\tE")) - self.grb_add_disc_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/disc32.png'), - _("Add Disc\tD")) + self.grb_add_disc_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/disc32.png'), _("Add Disc\tD")) self.grb_add_buffer_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/buffer16-2.png'), _('Buffer\tB')) - self.grb_add_scale_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/scale32.png'), - _('Scale\tS')) + self.grb_add_scale_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/scale32.png'), _('Scale\tS')) self.grb_add_markarea_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/markarea32.png'), - _('Mark Area\tALT+A')) + _('Mark Area\tALT+A')) self.grb_add_eraser_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/eraser26.png'), - _('Eraser\tCTRL+E')) - self.grb_transform_menuitem = self.grb_editor_menu.addAction( - QtGui.QIcon('share/transform.png'),_( "Transform\tALT+R") - ) + _('Eraser\tCTRL+E')) + self.grb_transform_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/transform.png'), + _("Transform\tALT+R")) self.grb_editor_menu.addSeparator() self.grb_copy_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/copy32.png'), _('Copy\tC')) - self.grb_delete_menuitem = self.grb_editor_menu.addAction( - QtGui.QIcon('share/deleteshape32.png'), _('Delete\tDEL') - ) + self.grb_delete_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/deleteshape32.png'), + _('Delete\tDEL')) self.grb_editor_menu.addSeparator() - self.grb_move_menuitem = self.grb_editor_menu.addAction( - QtGui.QIcon('share/move32.png'),_( 'Move\tM')) + self.grb_move_menuitem = self.grb_editor_menu.addAction(QtGui.QIcon('share/move32.png'), _('Move\tM')) self.grb_editor_menu.menuAction().setVisible(False) self.grb_editor_menu.setDisabled(True) @@ -529,7 +521,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.menuprojectedit = self.menuproject.addAction(QtGui.QIcon('share/edit_ok32.png'), _('Edit')) self.menuprojectcopy = self.menuproject.addAction(QtGui.QIcon('share/copy32.png'), _('Copy')) self.menuprojectdelete = self.menuproject.addAction(QtGui.QIcon('share/delete32.png'), _('Delete')) - self.menuprojectsave= self.menuproject.addAction(QtGui.QIcon('share/save_as.png'), _('Save')) + self.menuprojectsave = self.menuproject.addAction(QtGui.QIcon('share/save_as.png'), _('Save')) self.menuproject.addSeparator() self.menuprojectproperties = self.menuproject.addAction(QtGui.QIcon('share/properties32.png'), _('Properties')) @@ -648,7 +640,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.toolbartools.addSeparator() self.panelize_btn = self.toolbartools.addAction(QtGui.QIcon('share/panel16.png'), _("Panel Tool")) - self.film_btn = self.toolbartools.addAction(QtGui.QIcon('share/film16.png'),_( "Film Tool")) + self.film_btn = self.toolbartools.addAction(QtGui.QIcon('share/film16.png'), _("Film Tool")) self.solder_btn = self.toolbartools.addAction(QtGui.QIcon('share/solderpastebis32.png'), _("SolderPaste Tool")) self.sub_btn = self.toolbartools.addAction(QtGui.QIcon('share/sub32.png'), _("Substract Tool")) @@ -1641,10 +1633,9 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.popmenu_move = self.popMenu.addAction(QtGui.QIcon('share/move32.png'), _("Move")) self.popmenu_properties = self.popMenu.addAction(QtGui.QIcon('share/properties32.png'), _("Properties")) - - ################################## ## - # ## Here we build the CNCJob Tab # ## - ################################## ## + # ################################### + # ## Here we build the CNCJob Tab ### + # ################################### self.cncjob_tab = QtWidgets.QWidget() self.cncjob_tab_layout = QtWidgets.QGridLayout(self.cncjob_tab) self.cncjob_tab_layout.setContentsMargins(2, 2, 2, 2) @@ -1701,9 +1692,9 @@ class FlatCAMGUI(QtWidgets.QMainWindow): cnc_tab_lay_4.addWidget(self.buttonSave) self.cncjob_tab_layout.addLayout(cnc_tab_lay_4, 2, 4, 1, 1) - ################################ ## - # ## Build InfoBar is done here # ## - ################################ ## + # ################################# + # ## Build InfoBar is done here ### + # ################################# self.infobar = self.statusBar() self.fcinfo = FlatCAMInfoBar() self.infobar.addWidget(self.fcinfo, stretch=1) @@ -1925,16 +1916,14 @@ class FlatCAMGUI(QtWidgets.QMainWindow): _('Add Polygon')) self.geo_edit_toolbar.addSeparator() self.geo_add_text_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/text32.png'), _('Add Text')) - self.geo_add_buffer_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/buffer16-2.png'), - _('Add Buffer')) + self.geo_add_buffer_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/buffer16-2.png'), _('Add Buffer')) self.geo_add_paint_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/paint20_1.png'), _('Paint Shape')) self.geo_eraser_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/eraser26.png'), _('Eraser')) - self.geo_edit_toolbar.addSeparator() self.geo_union_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/union32.png'), _('Polygon Union')) self.geo_intersection_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/intersection32.png'), - _('Polygon Intersection')) + _('Polygon Intersection')) self.geo_subtract_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/subtract32.png'), _('Polygon Subtraction')) @@ -2378,10 +2367,10 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if self.app.geo_editor.get_selected() is not None: self.app.geo_editor.cutpath() else: - msg = _('Please first select a geometry item to be cutted\n' \ - 'then select the geometry item that will be cutted\n' \ - 'out of the first item. In the end press ~X~ key or\n' \ - 'the toolbar button.') + msg = _('Please first select a geometry item to be cutted\n' + 'then select the geometry item that will be cutted\n' + 'out of the first item. In the end press ~X~ key or\n' + 'the toolbar button.') messagebox = QtWidgets.QMessageBox() messagebox.setText(msg) @@ -2517,8 +2506,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if self.app.geo_editor.get_selected() is not None: self.app.geo_editor.intersection() else: - msg = _("Please select geometry items \n" \ - "on which to perform Intersection Tool.") + msg = _("Please select geometry items \n" + "on which to perform Intersection Tool.") messagebox = QtWidgets.QMessageBox() messagebox.setText(msg) @@ -2597,7 +2586,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.app.geo_editor.union() else: msg = _("Please select geometry items \n" - "on which to perform union.") + "on which to perform union.") messagebox = QtWidgets.QMessageBox() messagebox.setText(msg) @@ -4053,7 +4042,7 @@ class GerberGenPrefGroupUI(OptionsGroupUI): self.circle_steps_label = QtWidgets.QLabel(_("Circle Steps:")) self.circle_steps_label.setToolTip( _("The number of circle steps for Gerber \n" - "circular aperture linear approximation.") + "circular aperture linear approximation.") ) grid0.addWidget(self.circle_steps_label, 1, 0) self.circle_steps_entry = IntEntry() @@ -4302,7 +4291,7 @@ class GerberExpPrefGroupUI(OptionsGroupUI): ) hlay1.addWidget(self.format_whole_entry, QtCore.Qt.AlignLeft) - gerber_separator_label= QtWidgets.QLabel(':') + gerber_separator_label = QtWidgets.QLabel(':') gerber_separator_label.setFixedWidth(5) hlay1.addWidget(gerber_separator_label, QtCore.Qt.AlignLeft) @@ -4450,7 +4439,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): ) hlay1.addWidget(self.excellon_format_upper_in_entry, QtCore.Qt.AlignLeft) - excellon_separator_in_label= QtWidgets.QLabel(':') + excellon_separator_in_label = QtWidgets.QLabel(':') excellon_separator_in_label.setFixedWidth(5) hlay1.addWidget(excellon_separator_in_label, QtCore.Qt.AlignLeft)