Просмотр исходного кода

- fixed plotting in Gerber Editor
- working on GUI in Gerber Editor

Marius Stanciu 6 лет назад
Родитель
Сommit
0a9148f30a
4 измененных файлов с 73 добавлено и 44 удалено
  1. 1 1
      FlatCAMApp.py
  2. 5 0
      README.md
  3. 36 43
      flatcamEditors/FlatCAMGrbEditor.py
  4. 31 0
      flatcamGUI/FlatCAMGUI.py

+ 1 - 1
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)

+ 5 - 0
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

+ 36 - 43
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()")

+ 31 - 0
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()