diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 4c40a467..4ef7f02f 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -1271,8 +1271,8 @@ class App(QtCore.QObject): self.ui.menufilesavedefaults.triggered.connect(self.on_file_savedefaults) self.ui.menufile_exit.triggered.connect(self.final_save) - self.ui.menueditedit.triggered.connect(self.object2editor) - self.ui.menueditok.triggered.connect(self.editor2object) + self.ui.menueditedit.triggered.connect(lambda: self.object2editor()) + self.ui.menueditok.triggered.connect(lambda: self.editor2object()) self.ui.menuedit_convertjoin.triggered.connect(self.on_edit_join) self.ui.menuedit_convertjoinexc.triggered.connect(self.on_edit_join_exc) @@ -1370,7 +1370,7 @@ class App(QtCore.QObject): self.ui.popmenu_copy.triggered.connect(self.on_copy_object) self.ui.popmenu_delete.triggered.connect(self.on_delete) self.ui.popmenu_edit.triggered.connect(self.object2editor) - self.ui.popmenu_save.triggered.connect(self.editor2object) + self.ui.popmenu_save.triggered.connect(lambda: self.editor2object()) self.ui.popmenu_move.triggered.connect(self.obj_move) self.ui.popmenu_properties.triggered.connect(self.obj_properties) @@ -2036,7 +2036,7 @@ class App(QtCore.QObject): self.ui.newgeo_btn.triggered.connect(self.new_geometry_object) self.ui.newexc_btn.triggered.connect(self.new_excellon_object) self.ui.editgeo_btn.triggered.connect(self.object2editor) - self.ui.update_obj_btn.triggered.connect(self.editor2object) + self.ui.update_obj_btn.triggered.connect(lambda: self.editor2object()) self.ui.delete_btn.triggered.connect(self.on_delete) self.ui.shell_btn.triggered.connect(self.on_toggle_shell) diff --git a/README.md b/README.md index 68067310..5b113ae2 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ CAD program, and create G-Code for Isolation routing. - fixed plotting in Gerber Editor - working on GUI in Gerber Editor - added a Gcode end_command: default is M02 +- modified the calling of the editor2object() slot function 31.03.2019 diff --git a/flatcamEditors/FlatCAMGrbEditor.py b/flatcamEditors/FlatCAMGrbEditor.py index 64c6c385..96b959bd 100644 --- a/flatcamEditors/FlatCAMGrbEditor.py +++ b/flatcamEditors/FlatCAMGrbEditor.py @@ -284,31 +284,10 @@ class FCApertureSelect(DrawTool): def select_shapes(self, pos): self.grb_editor_app.apertures_table.clearSelection() - try: - # for storage in self.grb_editor_app.storage_dict: - # _, partial_closest_shape = self.grb_editor_app.storage_dict[storage].nearest(pos) - # if partial_closest_shape is not None: - # self.sel_storage.insert(partial_closest_shape) - # - # _, closest_shape = self.sel_storage.nearest(pos) - - for storage in self.grb_editor_app.storage_dict: - for shape in self.grb_editor_app.storage_dict[storage].get_objects(): - self.sel_storage.insert(DrawToolShape(LineString(shape.geo.exterior))) - - _, closest_shape = self.sel_storage.nearest(pos) - - - # constrain selection to happen only within a certain bounding box - x_coord, y_coord = closest_shape.geo[0].xy - delta = (x_coord[1] - x_coord[0]) - # closest_shape_coords = (((x_coord[0] + delta / 2)), y_coord[0]) - xmin = x_coord[0] - (0.7 * delta) - xmax = x_coord[0] + (1.7 * delta) - ymin = y_coord[0] - (0.7 * delta) - ymax = y_coord[0] + (1.7 * delta) - except StopIteration: - return "" + for storage in self.grb_editor_app.storage_dict: + for shape in self.grb_editor_app.storage_dict[storage].get_objects(): + if Point(pos).within(shape.geo): + self.sel_storage.insert(DrawToolShape(shape.geo)) if pos[0] < xmin or pos[0] > xmax or pos[1] < ymin or pos[1] > ymax: self.grb_editor_app.selected = [] @@ -1298,7 +1277,7 @@ class FlatCAMGrbEditor(QtCore.QObject): def update_fcgerber(self, exc_obj): """ - Create a new Excellon object that contain the edited content of the source Excellon object + Create a new Gerber object that contain the edited content of the source Excellon object :param exc_obj: FlatCAMExcellon :return: None @@ -1307,8 +1286,8 @@ class FlatCAMGrbEditor(QtCore.QObject): # this dictionary will contain tooldia's as keys and a list of coordinates tuple as values # the values of this dict are coordinates of the holes (drills) edited_points = {} - for storage_tooldia in self.storage_dict: - for x in self.storage_dict[storage_tooldia].get_objects(): + for storage_aperture in self.storage_dict: + for x in self.storage_dict[storage_aperture].get_objects(): # all x.geo in self.storage_dict[storage] are MultiLinestring objects # each MultiLineString is made out of Linestrings