From 0a9148f30a824017db86b0ce158233a5ebeaa835 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Wed, 3 Apr 2019 16:00:44 +0300 Subject: [PATCH] - fixed plotting in Gerber Editor - working on GUI in Gerber Editor --- FlatCAMApp.py | 2 +- README.md | 5 ++ flatcamEditors/FlatCAMGrbEditor.py | 79 ++++++++++++++---------------- flatcamGUI/FlatCAMGUI.py | 31 ++++++++++++ 4 files changed, 73 insertions(+), 44 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index d36cd6d1..4c40a467 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -2160,7 +2160,7 @@ class App(QtCore.QObject): except AttributeError: self.inform.emit(_("[WARNING] Object empty after edit.")) - if isinstance(edited_obj, FlatCAMGerber): + elif isinstance(edited_obj, FlatCAMGerber): obj_type = "Gerber" if cleanup is None: self.grb_editor.update_fcgerber(edited_obj) diff --git a/README.md b/README.md index f120273a..bc2589b8 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,11 @@ CAD program, and create G-Code for Isolation routing. ================================================= +3.04.2019 + +- fixed plotting in Gerber Editor +- working on GUI in Gerber Editor + 31.03.2019 - fixed issue #281 by making generation of a convex shape for the freeform cutout in Tool Cutout a choice rather than the default diff --git a/flatcamEditors/FlatCAMGrbEditor.py b/flatcamEditors/FlatCAMGrbEditor.py index 63099988..64c6c385 100644 --- a/flatcamEditors/FlatCAMGrbEditor.py +++ b/flatcamEditors/FlatCAMGrbEditor.py @@ -1132,14 +1132,14 @@ class FlatCAMGrbEditor(QtCore.QObject): self.app.ui.snap_magnet.setVisible(True) self.app.ui.corner_snap_btn.setVisible(True) - self.app.ui.exc_editor_menu.setDisabled(False) - self.app.ui.exc_editor_menu.menuAction().setVisible(True) + self.app.ui.grb_editor_menu.setDisabled(False) + self.app.ui.grb_editor_menu.menuAction().setVisible(True) self.app.ui.update_obj_btn.setEnabled(True) - self.app.ui.e_editor_cmenu.setEnabled(True) + self.app.ui.grb_editor_cmenu.setEnabled(True) - self.app.ui.exc_edit_toolbar.setDisabled(False) - self.app.ui.exc_edit_toolbar.setVisible(True) + self.app.ui.grb_edit_toolbar.setDisabled(False) + self.app.ui.grb_edit_toolbar.setVisible(True) # self.app.ui.snap_toolbar.setDisabled(False) # start with GRID toolbar activated @@ -1152,7 +1152,7 @@ class FlatCAMGrbEditor(QtCore.QObject): def deactivate(self): self.disconnect_canvas_event_handlers() self.clear() - self.app.ui.exc_edit_toolbar.setDisabled(True) + self.app.ui.grb_edit_toolbar.setDisabled(True) settings = QSettings("Open Source", "FlatCAM") if settings.contains("layout"): @@ -1180,8 +1180,8 @@ class FlatCAMGrbEditor(QtCore.QObject): self.app.ui.corner_snap_btn.setVisible(False) # set the Editor Toolbar visibility to what was before entering in the Editor - self.app.ui.exc_edit_toolbar.setVisible(False) if self.toolbar_old_state is False \ - else self.app.ui.exc_edit_toolbar.setVisible(True) + self.app.ui.grb_edit_toolbar.setVisible(False) if self.toolbar_old_state is False \ + else self.app.ui.grb_edit_toolbar.setVisible(True) # Disable visuals self.shapes.enabled = False @@ -1191,12 +1191,13 @@ class FlatCAMGrbEditor(QtCore.QObject): # Tell the app that the editor is no longer active self.editor_active = False - self.app.ui.exc_editor_menu.setDisabled(True) - self.app.ui.exc_editor_menu.menuAction().setVisible(False) + self.app.ui.grb_editor_menu.setDisabled(True) + self.app.ui.grb_editor_menu.menuAction().setVisible(False) self.app.ui.update_obj_btn.setEnabled(False) self.app.ui.g_editor_cmenu.setEnabled(False) + self.app.ui.grb_editor_cmenu.setEnabled(False) self.app.ui.e_editor_cmenu.setEnabled(False) # Show original geometry @@ -1879,18 +1880,6 @@ class FlatCAMGrbEditor(QtCore.QObject): continue self.plot_shape(geometry=shape_plus.geo, color=self.app.defaults['global_draw_color']) - # for shape in self.storage.get_objects(): - # if shape.geo is None: # TODO: This shouldn't have happened - # continue - # - # if shape in self.selected: - # self.plot_shape(geometry=shape.geo, color=self.app.defaults['global_sel_draw_color'], linewidth=2) - # continue - # - # self.plot_shape(geometry=shape.geo, color=self.app.defaults['global_draw_color']) - - - for shape in self.utility: self.plot_shape(geometry=shape.geo, linewidth=1) continue @@ -1907,34 +1896,38 @@ class FlatCAMGrbEditor(QtCore.QObject): :param linewidth: Width of lines in # of pixels. :return: List of plotted elements. """ - plot_elements = [] + # plot_elements = [] if geometry is None: geometry = self.active_tool.geometry try: - for geo in geometry: - plot_elements += self.plot_shape(geometry=geo, color=color, linewidth=linewidth) - - ## Non-iterable - except TypeError: - - ## DrawToolShape - if isinstance(geometry, DrawToolShape): - plot_elements += self.plot_shape(geometry=geometry.geo, color=color, linewidth=linewidth) - - ## Polygon: Descend into exterior and each interior. - if type(geometry) == Polygon: - plot_elements += self.plot_shape(geometry=geometry.exterior, color=color, linewidth=linewidth) - plot_elements += self.plot_shape(geometry=geometry.interiors, color=color, linewidth=linewidth) - - if type(geometry) == LineString or type(geometry) == LinearRing: - plot_elements.append(self.shapes.add(shape=geometry, color=color, layer=0)) - + self.shapes.add(shape=geometry.geo, color=color, face_color=color, layer=0) + except AttributeError: if type(geometry) == Point: - pass + return + self.shapes.add(shape=geometry, color=color, face_color=color+'AF', layer=0) - return plot_elements + # try: + # for geo in geometry: + # plot_elements += self.plot_shape(geometry=geo.geo, color=color, linewidth=linewidth) + # + # ## Non-iterable + # except TypeError: + # + # # ## DrawToolShape + # # if isinstance(geometry, DrawToolShape): + # # plot_elements += self.plot_shape(geometry=geometry.geo, color=color, linewidth=linewidth) + # # + # # ## Polygon: Descend into exterior and each interior. + # # if type(geometry) == Polygon: + # # plot_elements += self.plot_shape(geometry=geometry.exterior, color=color, linewidth=linewidth) + # # plot_elements += self.plot_shape(geometry=geometry.interiors, color=color, linewidth=linewidth) + # if type(geometry) == Point: + # pass + # else: + # plot_elements.append(self.shapes.add(shape=geometry, color=color, face_color=color, layer=0)) + # return plot_elements def on_shape_complete(self): self.app.log.debug("on_shape_complete()") diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index 709ec08e..9e1357e4 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -451,6 +451,30 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.exc_move_drill_menuitem = self.exc_editor_menu.addAction( QtGui.QIcon('share/move32.png'),_( 'Move Drill(s)\tM')) + self.grb_editor_menu = QtWidgets.QMenu(_(">Gerber Editor<")) + self.menu.addMenu(self.grb_editor_menu) + + self.grb_add_trace_menuitem = self.grb_editor_menu.addAction( + QtGui.QIcon('share/rectangle32.png'), _('Add Trace\tT')) + self.grb_add_zone_menuitem = self.exc_editor_menu.addAction(QtGui.QIcon('share/plus16.png'), + _('Add Zone\tZ')) + self.grb_editor_menu.addSeparator() + + self.grb_resize_aperture_menuitem = self.grb_editor_menu.addAction( + QtGui.QIcon('share/resize16.png'), _('Resize Aperture\tR') + ) + 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_editor_menu.addSeparator() + + 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) + self.geo_editor_menu.menuAction().setVisible(False) self.geo_editor_menu.setDisabled(True) @@ -1404,6 +1428,12 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.g_editor_cmenu.addSeparator() self.draw_move = self.g_editor_cmenu.addAction(QtGui.QIcon('share/move32.png'), _("Move")) + self.grb_editor_cmenu = self.popMenu.addMenu(QtGui.QIcon('share/draw32.png'), _("Gerber Editor")) + self.grb_draw_track = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/path32.png'), _("Track")) + self.grb_draw_zone = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/rectangle32.png'), _("Zone")) + self.grb_editor_cmenu.addSeparator() + self.grb_move = self.grb_editor_cmenu.addAction(QtGui.QIcon('share/move32.png'), _("Move")) + self.e_editor_cmenu = self.popMenu.addMenu(QtGui.QIcon('share/drill32.png'), _("Exc Editor")) self.drill = self.e_editor_cmenu.addAction(QtGui.QIcon('share/drill32.png'), _("Add Drill")) self.drill_array = self.e_editor_cmenu.addAction(QtGui.QIcon('share/addarray32.png'), _("Add Drill Array")) @@ -1548,6 +1578,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.grid_snap_btn.trigger() self.g_editor_cmenu.setEnabled(False) + self.grb_editor_cmenu.setEnabled(False) self.e_editor_cmenu.setEnabled(False) self.general_defaults_form = GeneralPreferencesUI()