From f3fc175197e1587d79746b567af6e0fa14db3bce Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Wed, 14 Aug 2019 16:05:24 +0300 Subject: [PATCH] - changes in the way the edited Excellon with added slots is saved - added more icons and cursor in Excellon Editor for Slots related functions --- README.md | 2 ++ flatcamEditors/FlatCAMExcEditor.py | 12 ++++++++++-- flatcamGUI/FlatCAMGUI.py | 16 ++++++++-------- share/aero_slot.png | Bin 0 -> 5347 bytes share/slot26.png | Bin 0 -> 103 bytes share/slot_array26.png | Bin 0 -> 3448 bytes 6 files changed, 20 insertions(+), 10 deletions(-) create mode 100644 share/aero_slot.png create mode 100644 share/slot26.png create mode 100644 share/slot_array26.png diff --git a/README.md b/README.md index 9e6b7da7..9aaf39a2 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ CAD program, and create G-Code for Isolation routing. - fixed the loading of Excellon with slots and the saving of edited Excellon object in regard of slots, in Excellon Editor - fixed the Delete tool, Select tool in Excellon Editor to work for Slots too +- changes in the way the edited Excellon with added slots is saved +- added more icons and cursor in Excellon Editor for Slots related functions 13.08.2019 diff --git a/flatcamEditors/FlatCAMExcEditor.py b/flatcamEditors/FlatCAMExcEditor.py index 70c4d3a8..eb7dec06 100644 --- a/flatcamEditors/FlatCAMExcEditor.py +++ b/flatcamEditors/FlatCAMExcEditor.py @@ -355,7 +355,7 @@ class FCSlot(FCShapeTool): QtGui.QGuiApplication.restoreOverrideCursor() except Exception as e: pass - self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_circle.png')) + self.cursor = QtGui.QCursor(QtGui.QPixmap('share/aero_slot.png')) QtGui.QGuiApplication.setOverrideCursor(self.cursor) self.steps_per_circ = self.draw_app.app.defaults["geometry_circle_steps"] @@ -387,6 +387,10 @@ class FCSlot(FCShapeTool): return None def util_shape(self, point): + + if point is None: + return + # updating values here allows us to change the aperture on the fly, after the Tool has been started self.selected_dia = self.draw_app.tool2tooldia[self.draw_app.last_tool_selected] self.radius = float(self.selected_dia / 2.0) @@ -2528,6 +2532,9 @@ class FlatCAMExcEditor(QtCore.QObject): self.exc_obj = exc_obj exc_obj.visible = False + self.points_edit = {} + self.slot_points_edit = {} + # Set selection tolerance # DrawToolShape.tolerance = fc_excellon.drawing_tolerance * 10 @@ -3211,7 +3218,8 @@ class FlatCAMExcEditor(QtCore.QObject): if event.is_dragging == 1 and event.button == 1: # I make an exception for FCDrillAdd and FCDrillArray because clicking and dragging while making regions # can create strange issues - if isinstance(self.active_tool, FCDrillAdd) or isinstance(self.active_tool, FCDrillArray): + if isinstance(self.active_tool, FCDrillAdd) or isinstance(self.active_tool, FCDrillArray) or \ + isinstance(self.active_tool, FCSlot) or isinstance(self.active_tool, FCSlotArray): pass else: dx = pos[0] - self.pos[0] diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index 353b9c8a..2dbb0911 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -450,8 +450,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.exc_editor_menu.addSeparator() self.exc_add_array_slot_menuitem = self.exc_editor_menu.addAction( - QtGui.QIcon('share/rectangle32.png'), _('Add Slot Array\tQ')) - self.exc_add_slot_menuitem = self.exc_editor_menu.addAction(QtGui.QIcon('share/plus16.png'), + QtGui.QIcon('share/slot_array26.png'), _('Add Slot Array\tQ')) + self.exc_add_slot_menuitem = self.exc_editor_menu.addAction(QtGui.QIcon('share/slot26.png'), _('Add Slot\tW')) self.exc_editor_menu.addSeparator() @@ -660,9 +660,9 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.add_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/plus16.png'), _('Add Drill Hole')) self.add_drill_array_btn = self.exc_edit_toolbar.addAction( QtGui.QIcon('share/addarray16.png'), _('Add Drill Hole Array')) - self.add_slot_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/plus16.png'), _('Add Slot')) + self.add_slot_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/slot26.png'), _('Add Slot')) self.add_slot_array_btn = self.exc_edit_toolbar.addAction( - QtGui.QIcon('share/addarray16.png'), _('Add Slot Array')) + QtGui.QIcon('share/slot_array26.png'), _('Add Slot Array')) self.resize_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/resize16.png'), _('Resize Drill')) self.exc_edit_toolbar.addSeparator() @@ -1674,8 +1674,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow): 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")) self.e_editor_cmenu.addSeparator() - self.slot = self.e_editor_cmenu.addAction(QtGui.QIcon('share/drill32.png'), _("Add Slot")) - self.slot_array = self.e_editor_cmenu.addAction(QtGui.QIcon('share/addarray32.png'), _("Add Slot Array")) + self.slot = self.e_editor_cmenu.addAction(QtGui.QIcon('share/slot26.png'), _("Add Slot")) + self.slot_array = self.e_editor_cmenu.addAction(QtGui.QIcon('share/slot_array26.png'), _("Add Slot Array")) self.e_editor_cmenu.addSeparator() self.drill_resize= self.e_editor_cmenu.addAction(QtGui.QIcon('share/resize16.png'), _("Resize Drill")) @@ -1955,9 +1955,9 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.add_drill_array_btn = self.exc_edit_toolbar.addAction( QtGui.QIcon('share/addarray16.png'), _('Add Drill Hole Array')) self.resize_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/resize16.png'), _('Resize Drill')) - self.add_slot_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/plus16.png'), _('Add Slot')) + self.add_slot_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/slot26.png'), _('Add Slot')) self.add_slot_array_btn = self.exc_edit_toolbar.addAction( - QtGui.QIcon('share/addarray16.png'), _('Add Slot Array')) + QtGui.QIcon('share/slot_array26.png'), _('Add Slot Array')) self.exc_edit_toolbar.addSeparator() self.copy_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/copy32.png'), _('Copy Drill')) diff --git a/share/aero_slot.png b/share/aero_slot.png new file mode 100644 index 0000000000000000000000000000000000000000..9030896f9dfd18f8c1cd54e220b54192d92b74a4 GIT binary patch literal 5347 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 v(~O>