- added new feature: user can delete apertures in Advanced mode and then create a new FlatCAM Gerber object

This commit is contained in:
Marius Stanciu
2019-03-27 12:26:19 +02:00
committed by Marius
parent 1aabb1c084
commit 209683b2db
3 changed files with 51 additions and 12 deletions

View File

@@ -532,6 +532,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber):
self.ui.generate_noncopper_button.clicked.connect(self.on_generatenoncopper_button_click) self.ui.generate_noncopper_button.clicked.connect(self.on_generatenoncopper_button_click)
self.ui.aperture_table_visibility_cb.stateChanged.connect(self.on_aperture_table_visibility_change) self.ui.aperture_table_visibility_cb.stateChanged.connect(self.on_aperture_table_visibility_change)
self.ui.follow_cb.stateChanged.connect(self.on_follow_cb_click) self.ui.follow_cb.stateChanged.connect(self.on_follow_cb_click)
self.ui.delete_aperture_button.clicked.connect(self.on_delete_aperture_click)
self.ui.scale_aperture_button.clicked.connect(self.on_scale_aperture_click) self.ui.scale_aperture_button.clicked.connect(self.on_scale_aperture_click)
self.ui.buffer_aperture_button.clicked.connect(self.on_buffer_aperture_click) self.ui.buffer_aperture_button.clicked.connect(self.on_buffer_aperture_click)
self.ui.new_grb_button.clicked.connect(self.on_new_modified_gerber) self.ui.new_grb_button.clicked.connect(self.on_new_modified_gerber)
@@ -999,6 +1000,8 @@ class FlatCAMGerber(FlatCAMObj, Gerber):
def on_aperture_table_visibility_change(self): def on_aperture_table_visibility_change(self):
if self.ui.aperture_table_visibility_cb.isChecked(): if self.ui.aperture_table_visibility_cb.isChecked():
self.ui.apertures_table.setVisible(True) self.ui.apertures_table.setVisible(True)
self.ui.delete_aperture_label.setVisible(True)
self.ui.delete_aperture_button.setVisible(True)
self.ui.scale_aperture_label.setVisible(True) self.ui.scale_aperture_label.setVisible(True)
self.ui.scale_aperture_entry.setVisible(True) self.ui.scale_aperture_entry.setVisible(True)
self.ui.scale_aperture_button.setVisible(True) self.ui.scale_aperture_button.setVisible(True)
@@ -1013,6 +1016,8 @@ class FlatCAMGerber(FlatCAMObj, Gerber):
self.ui.mark_all_cb.setChecked(False) self.ui.mark_all_cb.setChecked(False)
else: else:
self.ui.apertures_table.setVisible(False) self.ui.apertures_table.setVisible(False)
self.ui.delete_aperture_label.setVisible(False)
self.ui.delete_aperture_button.setVisible(False)
self.ui.scale_aperture_label.setVisible(False) self.ui.scale_aperture_label.setVisible(False)
self.ui.scale_aperture_entry.setVisible(False) self.ui.scale_aperture_entry.setVisible(False)
self.ui.scale_aperture_button.setVisible(False) self.ui.scale_aperture_button.setVisible(False)
@@ -1030,6 +1035,21 @@ class FlatCAMGerber(FlatCAMObj, Gerber):
self.ui.apertures_table.cellWidget(row, 5).set_value(False) self.ui.apertures_table.cellWidget(row, 5).set_value(False)
self.clear_plot_apertures() self.clear_plot_apertures()
def on_delete_aperture_click(self, signal):
apid_to_del = []
# create a list of apertures to be deleted
for sel_item in self.ui.apertures_table.selectedItems():
sel_row = sel_item.row()
apid_to_del.append(self.ui.apertures_table.item(sel_row, 1).text())
# actual aperture removal
for apid in apid_to_del:
if apid in self.apertures:
self.apertures.pop(apid)
if apid in self.aperture_macros:
self.apertures_macros.pop(apid)
def on_scale_aperture_click(self, signal): def on_scale_aperture_click(self, signal):
try: try:
factor = self.ui.scale_aperture_entry.get_value() factor = self.ui.scale_aperture_entry.get_value()

View File

@@ -9,6 +9,10 @@ CAD program, and create G-Code for Isolation routing.
================================================= =================================================
27.03.2019
- added new feature: user can delete apertures in Advanced mode and then create a new FlatCAM Gerber object
26.03.2019 26.03.2019
- fixed an issue where the Geometry plot function protested that it does not have an parameter that is used by the CNCJob plot function. But both inherit from FaltCAMObj plot function which does not have that parameter so something may need to be changed. Until then I provided a phony keyboard parameter to make that function 'shut up' - fixed an issue where the Geometry plot function protested that it does not have an parameter that is used by the CNCJob plot function. But both inherit from FaltCAMObj plot function which does not have that parameter so something may need to be changed. Until then I provided a phony keyboard parameter to make that function 'shut up'

View File

@@ -101,7 +101,7 @@ class ObjectUI(QtWidgets.QWidget):
self.scale_button.setToolTip( self.scale_button.setToolTip(
_("Perform scaling operation.") _("Perform scaling operation.")
) )
self.scale_button.setFixedWidth(50) self.scale_button.setFixedWidth(70)
self.scale_grid.addWidget(self.scale_button, 0, 2) self.scale_grid.addWidget(self.scale_button, 0, 2)
#### Offset #### #### Offset ####
@@ -128,7 +128,7 @@ class ObjectUI(QtWidgets.QWidget):
self.offset_button.setToolTip( self.offset_button.setToolTip(
_("Perform the offset operation.") _("Perform the offset operation.")
) )
self.offset_button.setFixedWidth(50) self.offset_button.setFixedWidth(70)
self.offset_grid.addWidget(self.offset_button, 0, 2) self.offset_grid.addWidget(self.offset_button, 0, 2)
layout.addStretch() layout.addStretch()
@@ -244,10 +244,25 @@ class GerberObjectUI(ObjectUI):
_("Mark the aperture instances on canvas.")) _("Mark the aperture instances on canvas."))
# self.apertures_table.setColumnHidden(5, True) # self.apertures_table.setColumnHidden(5, True)
#### Aperture Scale #### #### Aperture EDIT ####
self.transform_aperture_grid = QtWidgets.QGridLayout() self.transform_aperture_grid = QtWidgets.QGridLayout()
self.custom_box.addLayout(self.transform_aperture_grid) self.custom_box.addLayout(self.transform_aperture_grid)
# Delete Aperture
self.delete_aperture_label = QtWidgets.QLabel(_('Delete aperture:'))
self.delete_aperture_label.setToolTip(
_("Delete selected apertures.")
)
self.delete_aperture_label.setFixedWidth(90)
self.transform_aperture_grid.addWidget(self.delete_aperture_label, 0, 0)
self.delete_aperture_button = QtWidgets.QPushButton(_('Delete'))
self.delete_aperture_button.setToolTip(
_("Delete selected apertures.")
)
self.delete_aperture_button.setFixedWidth(70)
self.transform_aperture_grid.addWidget(self.delete_aperture_button, 0, 2)
# Scale Aperture Factor # Scale Aperture Factor
self.scale_aperture_label = QtWidgets.QLabel(_('Scale Factor:')) self.scale_aperture_label = QtWidgets.QLabel(_('Scale Factor:'))
self.scale_aperture_label.setToolTip( self.scale_aperture_label.setToolTip(
@@ -256,18 +271,18 @@ class GerberObjectUI(ObjectUI):
"geometric features of this object.") "geometric features of this object.")
) )
self.scale_aperture_label.setFixedWidth(90) self.scale_aperture_label.setFixedWidth(90)
self.transform_aperture_grid.addWidget(self.scale_aperture_label, 0, 0) self.transform_aperture_grid.addWidget(self.scale_aperture_label, 1, 0)
self.scale_aperture_entry = FloatEntry2() self.scale_aperture_entry = FloatEntry2()
self.transform_aperture_grid.addWidget(self.scale_aperture_entry, 0, 1) self.transform_aperture_grid.addWidget(self.scale_aperture_entry, 1, 1)
# Scale Button # Scale Button
self.scale_aperture_button = QtWidgets.QPushButton(_('Scale')) self.scale_aperture_button = QtWidgets.QPushButton(_('Scale'))
self.scale_aperture_button.setToolTip( self.scale_aperture_button.setToolTip(
_("Perform scaling operation on the selected apertures.") _("Perform scaling operation on the selected apertures.")
) )
self.scale_aperture_button.setFixedWidth(50) self.scale_aperture_button.setFixedWidth(70)
self.transform_aperture_grid.addWidget(self.scale_aperture_button, 0, 2) self.transform_aperture_grid.addWidget(self.scale_aperture_button, 1, 2)
# Buffer Aperture Factor # Buffer Aperture Factor
self.buffer_aperture_label = QtWidgets.QLabel(_('Buffer Factor:')) self.buffer_aperture_label = QtWidgets.QLabel(_('Buffer Factor:'))
@@ -277,18 +292,18 @@ class GerberObjectUI(ObjectUI):
"geometric features of this object.") "geometric features of this object.")
) )
self.buffer_aperture_label.setFixedWidth(90) self.buffer_aperture_label.setFixedWidth(90)
self.transform_aperture_grid.addWidget(self.buffer_aperture_label, 1, 0) self.transform_aperture_grid.addWidget(self.buffer_aperture_label, 2, 0)
self.buffer_aperture_entry = FloatEntry2() self.buffer_aperture_entry = FloatEntry2()
self.transform_aperture_grid.addWidget(self.buffer_aperture_entry, 1, 1) self.transform_aperture_grid.addWidget(self.buffer_aperture_entry, 2, 1)
# Buffer Button # Buffer Button
self.buffer_aperture_button = QtWidgets.QPushButton(_('Buffer')) self.buffer_aperture_button = QtWidgets.QPushButton(_('Buffer'))
self.buffer_aperture_button.setToolTip( self.buffer_aperture_button.setToolTip(
_("Perform buffer operation on the selected apertures.") _("Perform buffer operation on the selected apertures.")
) )
self.buffer_aperture_button.setFixedWidth(50) self.buffer_aperture_button.setFixedWidth(70)
self.transform_aperture_grid.addWidget(self.buffer_aperture_button, 1, 2) self.transform_aperture_grid.addWidget(self.buffer_aperture_button, 2, 2)
new_hlay = QtWidgets.QHBoxLayout() new_hlay = QtWidgets.QHBoxLayout()
self.custom_box.addLayout(new_hlay) self.custom_box.addLayout(new_hlay)
@@ -305,7 +320,7 @@ class GerberObjectUI(ObjectUI):
self.new_grb_button.setToolTip( self.new_grb_button.setToolTip(
_("Will generate a new Gerber object from the changed apertures.\n" _("Will generate a new Gerber object from the changed apertures.\n"
"This new object can then be isolated etc.")) "This new object can then be isolated etc."))
self.new_grb_button.setFixedWidth(50) self.new_grb_button.setFixedWidth(70)
new_hlay.addWidget(self.new_grb_button) new_hlay.addWidget(self.new_grb_button)
# start with apertures table hidden # start with apertures table hidden