- added icons in most application Tools

- updated Punch Gerber Tool such that the aperture table is updated upon clicking of the checboxes in Processed Pads Type
This commit is contained in:
Marius Stanciu 2020-10-29 02:56:56 +02:00 committed by Marius
parent aa2011e5a7
commit d01cddea79
20 changed files with 91 additions and 20 deletions

View File

@ -7,6 +7,11 @@ CHANGELOG for FlatCAM beta
================================================= =================================================
29.10.2020
- added icons in most application Tools
- updated Punch Gerber Tool such that the aperture table is updated upon clicking of the checboxes in Processed Pads Type
28.10.2020 28.10.2020
- a series of PEP8 corrections in the FlatCAMGeometry.py - a series of PEP8 corrections in the FlatCAMGeometry.py

View File

@ -1420,6 +1420,7 @@ class ThievingUI:
# ## Insert Copper Thieving # ## Insert Copper Thieving
self.fill_button = QtWidgets.QPushButton(_("Insert Copper thieving")) self.fill_button = QtWidgets.QPushButton(_("Insert Copper thieving"))
self.fill_button.setIcon(QtGui.QIcon(self.app.resource_location + '/copperfill32.png'))
self.fill_button.setToolTip( self.fill_button.setToolTip(
_("Will add a polygon (may be split in multiple parts)\n" _("Will add a polygon (may be split in multiple parts)\n"
"that will surround the actual Gerber traces at a certain distance.") "that will surround the actual Gerber traces at a certain distance.")
@ -1481,6 +1482,7 @@ class ThievingUI:
# ## Insert Robber Bar # ## Insert Robber Bar
self.rb_button = QtWidgets.QPushButton(_("Insert Robber Bar")) self.rb_button = QtWidgets.QPushButton(_("Insert Robber Bar"))
self.rb_button.setIcon(QtGui.QIcon(self.app.resource_location + '/robber32.png'))
self.rb_button.setToolTip( self.rb_button.setToolTip(
_("Will add a polygon with a defined thickness\n" _("Will add a polygon with a defined thickness\n"
"that will surround the actual Gerber object\n" "that will surround the actual Gerber object\n"
@ -1560,6 +1562,7 @@ class ThievingUI:
# ## Pattern Plating Mask # ## Pattern Plating Mask
self.ppm_button = QtWidgets.QPushButton(_("Generate pattern plating mask")) self.ppm_button = QtWidgets.QPushButton(_("Generate pattern plating mask"))
self.ppm_button.setIcon(QtGui.QIcon(self.app.resource_location + '/pattern32.png'))
self.ppm_button.setToolTip( self.ppm_button.setToolTip(
_("Will add to the soldermask gerber geometry\n" _("Will add to the soldermask gerber geometry\n"
"the geometries of the copper thieving and/or\n" "the geometries of the copper thieving and/or\n"

View File

@ -428,6 +428,7 @@ class CornersUI:
# ## Insert Corner Marker # ## Insert Corner Marker
self.add_marker_button = FCButton(_("Add Marker")) self.add_marker_button = FCButton(_("Add Marker"))
self.add_marker_button.setIcon(QtGui.QIcon(self.app.resource_location + '/corners_32.png'))
self.add_marker_button.setToolTip( self.add_marker_button.setToolTip(
_("Will add corner markers to the selected Gerber file.") _("Will add corner markers to the selected Gerber file.")
) )

View File

@ -785,6 +785,7 @@ class DsidedUI:
grid_lay3.addWidget(self.box_combo, 3, 0, 1, 2) grid_lay3.addWidget(self.box_combo, 3, 0, 1, 2)
self.mirror_button = QtWidgets.QPushButton(_("Mirror")) self.mirror_button = QtWidgets.QPushButton(_("Mirror"))
self.mirror_button.setIcon(QtGui.QIcon(self.app.resource_location + '/doubleside16.png'))
self.mirror_button.setToolTip( self.mirror_button.setToolTip(
_("Mirrors (flips) the specified object around \n" _("Mirrors (flips) the specified object around \n"
"the specified axis. Does not create a new \n" "the specified axis. Does not create a new \n"
@ -921,6 +922,7 @@ class DsidedUI:
# ## Buttons # ## Buttons
self.create_alignment_hole_button = QtWidgets.QPushButton(_("Create Excellon Object")) self.create_alignment_hole_button = QtWidgets.QPushButton(_("Create Excellon Object"))
self.create_alignment_hole_button.setIcon(QtGui.QIcon(self.app.resource_location + '/drill32.png'))
self.create_alignment_hole_button.setToolTip( self.create_alignment_hole_button.setToolTip(
_("Creates an Excellon Object containing the\n" _("Creates an Excellon Object containing the\n"
"specified alignment holes and their mirror\n" "specified alignment holes and their mirror\n"

View File

@ -441,6 +441,7 @@ class EtchUI:
grid0.addWidget(separator_line, 22, 0, 1, 2) grid0.addWidget(separator_line, 22, 0, 1, 2)
self.compensate_btn = FCButton(_('Compensate')) self.compensate_btn = FCButton(_('Compensate'))
self.compensate_btn.setIcon(QtGui.QIcon(self.app.resource_location + '/etch_32.png'))
self.compensate_btn.setToolTip( self.compensate_btn.setToolTip(
_("Will increase the copper features thickness to compensate the lateral etch.") _("Will increase the copper features thickness to compensate the lateral etch.")
) )

View File

@ -686,6 +686,7 @@ class ExtractDrillsUI:
# Extract drills from Gerber apertures flashes (pads) # Extract drills from Gerber apertures flashes (pads)
self.e_drills_button = QtWidgets.QPushButton(_("Extract Drills")) self.e_drills_button = QtWidgets.QPushButton(_("Extract Drills"))
self.e_drills_button.setIcon(QtGui.QIcon(self.app.resource_location + '/drill16.png'))
self.e_drills_button.setToolTip( self.e_drills_button.setToolTip(
_("Extract drills from a given Gerber file.") _("Extract drills from a given Gerber file.")
) )

View File

@ -882,6 +882,7 @@ class FidoUI:
# ## Insert Copper Fiducial # ## Insert Copper Fiducial
self.add_cfid_button = QtWidgets.QPushButton(_("Add Fiducial")) self.add_cfid_button = QtWidgets.QPushButton(_("Add Fiducial"))
self.add_cfid_button.setIcon(QtGui.QIcon(self.app.resource_location + '/fiducials_32.png'))
self.add_cfid_button.setToolTip( self.add_cfid_button.setToolTip(
_("Will add a polygon on the copper layer to serve as fiducial.") _("Will add a polygon on the copper layer to serve as fiducial.")
) )

View File

@ -267,6 +267,7 @@ class InvertUI:
grid0.addWidget(separator_line, 9, 0, 1, 2) grid0.addWidget(separator_line, 9, 0, 1, 2)
self.invert_btn = FCButton(_('Invert Gerber')) self.invert_btn = FCButton(_('Invert Gerber'))
self.invert_btn.setIcon(QtGui.QIcon(self.app.resource_location + '/invert32.png'))
self.invert_btn.setToolTip( self.invert_btn.setToolTip(
_("Will invert the Gerber object: areas that have copper\n" _("Will invert the Gerber object: areas that have copper\n"
"will be empty of copper and previous empty area will be\n" "will be empty of copper and previous empty area will be\n"

View File

@ -573,6 +573,7 @@ class OptimalUI:
# GO button # GO button
self.calculate_button = FCButton(_("Find Minimum")) self.calculate_button = FCButton(_("Find Minimum"))
self.calculate_button.setIcon(QtGui.QIcon(self.app.resource_location + '/open_excellon32.png'))
self.calculate_button.setToolTip( self.calculate_button.setToolTip(
_("Calculate the minimum distance between copper features,\n" _("Calculate the minimum distance between copper features,\n"
"this will allow the determination of the right tool to\n" "this will allow the determination of the right tool to\n"

View File

@ -8,7 +8,8 @@
from PyQt5 import QtWidgets, QtGui, QtCore from PyQt5 import QtWidgets, QtGui, QtCore
from appTool import AppTool from appTool import AppTool
from appGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet, FCCheckBox, OptionalInputSection, FCComboBox from appGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet, FCCheckBox, OptionalInputSection, FCComboBox, \
FCButton, FCLabel
from camlib import grace from camlib import grace
from copy import deepcopy from copy import deepcopy
@ -639,7 +640,7 @@ class PanelizeUI:
self.layout = layout self.layout = layout
# ## Title # ## Title
title_label = QtWidgets.QLabel("%s" % self.toolName) title_label = FCLabel("%s" % self.toolName)
title_label.setStyleSheet(""" title_label.setStyleSheet("""
QLabel QLabel
{ {
@ -649,7 +650,7 @@ class PanelizeUI:
""") """)
self.layout.addWidget(title_label) self.layout.addWidget(title_label)
self.object_label = QtWidgets.QLabel('<b>%s:</b>' % _("Source Object")) self.object_label = FCLabel('<b>%s:</b>' % _("Source Object"))
self.object_label.setToolTip( self.object_label.setToolTip(
_("Specify the type of object to be panelized\n" _("Specify the type of object to be panelized\n"
"It can be of type: Gerber, Excellon or Geometry.\n" "It can be of type: Gerber, Excellon or Geometry.\n"
@ -673,7 +674,7 @@ class PanelizeUI:
self.type_obj_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/drill16.png")) self.type_obj_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/drill16.png"))
self.type_obj_combo.setItemIcon(2, QtGui.QIcon(self.app.resource_location + "/geometry16.png")) self.type_obj_combo.setItemIcon(2, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
self.type_object_label = QtWidgets.QLabel('%s:' % _("Object Type")) self.type_object_label = FCLabel('%s:' % _("Object Type"))
form_layout_0.addRow(self.type_object_label, self.type_obj_combo) form_layout_0.addRow(self.type_object_label, self.type_obj_combo)
@ -696,7 +697,7 @@ class PanelizeUI:
# Type of box Panel object # Type of box Panel object
self.reference_radio = RadioSet([{'label': _('Object'), 'value': 'object'}, self.reference_radio = RadioSet([{'label': _('Object'), 'value': 'object'},
{'label': _('Bounding Box'), 'value': 'bbox'}]) {'label': _('Bounding Box'), 'value': 'bbox'}])
self.box_label = QtWidgets.QLabel("<b>%s:</b>" % _("Penelization Reference")) self.box_label = FCLabel("<b>%s:</b>" % _("Penelization Reference"))
self.box_label.setToolTip( self.box_label.setToolTip(
_("Choose the reference for panelization:\n" _("Choose the reference for panelization:\n"
"- Object = the bounding box of a different object\n" "- Object = the bounding box of a different object\n"
@ -719,7 +720,7 @@ class PanelizeUI:
self.type_box_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png")) self.type_box_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png"))
self.type_box_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/geometry16.png")) self.type_box_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
self.type_box_combo_label = QtWidgets.QLabel('%s:' % _("Box Type")) self.type_box_combo_label = FCLabel('%s:' % _("Box Type"))
self.type_box_combo_label.setToolTip( self.type_box_combo_label.setToolTip(
_("Specify the type of object to be used as an container for\n" _("Specify the type of object to be used as an container for\n"
"panelization. It can be: Gerber or Geometry type.\n" "panelization. It can be: Gerber or Geometry type.\n"
@ -745,7 +746,7 @@ class PanelizeUI:
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
form_layout.addRow(separator_line) form_layout.addRow(separator_line)
panel_data_label = QtWidgets.QLabel("<b>%s:</b>" % _("Panel Data")) panel_data_label = FCLabel("<b>%s:</b>" % _("Panel Data"))
panel_data_label.setToolTip( panel_data_label.setToolTip(
_("This informations will shape the resulting panel.\n" _("This informations will shape the resulting panel.\n"
"The number of rows and columns will set how many\n" "The number of rows and columns will set how many\n"
@ -761,7 +762,7 @@ class PanelizeUI:
self.spacing_columns.set_range(0, 9999) self.spacing_columns.set_range(0, 9999)
self.spacing_columns.set_precision(4) self.spacing_columns.set_precision(4)
self.spacing_columns_label = QtWidgets.QLabel('%s:' % _("Spacing cols")) self.spacing_columns_label = FCLabel('%s:' % _("Spacing cols"))
self.spacing_columns_label.setToolTip( self.spacing_columns_label.setToolTip(
_("Spacing between columns of the desired panel.\n" _("Spacing between columns of the desired panel.\n"
"In current units.") "In current units.")
@ -773,7 +774,7 @@ class PanelizeUI:
self.spacing_rows.set_range(0, 9999) self.spacing_rows.set_range(0, 9999)
self.spacing_rows.set_precision(4) self.spacing_rows.set_precision(4)
self.spacing_rows_label = QtWidgets.QLabel('%s:' % _("Spacing rows")) self.spacing_rows_label = FCLabel('%s:' % _("Spacing rows"))
self.spacing_rows_label.setToolTip( self.spacing_rows_label.setToolTip(
_("Spacing between rows of the desired panel.\n" _("Spacing between rows of the desired panel.\n"
"In current units.") "In current units.")
@ -784,7 +785,7 @@ class PanelizeUI:
self.columns = FCSpinner(callback=self.confirmation_message_int) self.columns = FCSpinner(callback=self.confirmation_message_int)
self.columns.set_range(0, 9999) self.columns.set_range(0, 9999)
self.columns_label = QtWidgets.QLabel('%s:' % _("Columns")) self.columns_label = FCLabel('%s:' % _("Columns"))
self.columns_label.setToolTip( self.columns_label.setToolTip(
_("Number of columns of the desired panel") _("Number of columns of the desired panel")
) )
@ -794,7 +795,7 @@ class PanelizeUI:
self.rows = FCSpinner(callback=self.confirmation_message_int) self.rows = FCSpinner(callback=self.confirmation_message_int)
self.rows.set_range(0, 9999) self.rows.set_range(0, 9999)
self.rows_label = QtWidgets.QLabel('%s:' % _("Rows")) self.rows_label = FCLabel('%s:' % _("Rows"))
self.rows_label.setToolTip( self.rows_label.setToolTip(
_("Number of rows of the desired panel") _("Number of rows of the desired panel")
) )
@ -808,7 +809,7 @@ class PanelizeUI:
# Type of resulting Panel object # Type of resulting Panel object
self.panel_type_radio = RadioSet([{'label': _('Gerber'), 'value': 'gerber'}, self.panel_type_radio = RadioSet([{'label': _('Gerber'), 'value': 'gerber'},
{'label': _('Geo'), 'value': 'geometry'}]) {'label': _('Geo'), 'value': 'geometry'}])
self.panel_type_label = QtWidgets.QLabel("<b>%s:</b>" % _("Panel Type")) self.panel_type_label = FCLabel("<b>%s:</b>" % _("Panel Type"))
self.panel_type_label.setToolTip( self.panel_type_label.setToolTip(
_("Choose the type of object for the panel object:\n" _("Choose the type of object for the panel object:\n"
"- Geometry\n" "- Geometry\n"
@ -842,7 +843,7 @@ class PanelizeUI:
self.x_width_entry.set_precision(4) self.x_width_entry.set_precision(4)
self.x_width_entry.set_range(0, 9999) self.x_width_entry.set_range(0, 9999)
self.x_width_lbl = QtWidgets.QLabel('%s:' % _("Width (DX)")) self.x_width_lbl = FCLabel('%s:' % _("Width (DX)"))
self.x_width_lbl.setToolTip( self.x_width_lbl.setToolTip(
_("The width (DX) within which the panel must fit.\n" _("The width (DX) within which the panel must fit.\n"
"In current units.") "In current units.")
@ -853,7 +854,7 @@ class PanelizeUI:
self.y_height_entry.set_range(0, 9999) self.y_height_entry.set_range(0, 9999)
self.y_height_entry.set_precision(4) self.y_height_entry.set_precision(4)
self.y_height_lbl = QtWidgets.QLabel('%s:' % _("Height (DY)")) self.y_height_lbl = FCLabel('%s:' % _("Height (DY)"))
self.y_height_lbl.setToolTip( self.y_height_lbl.setToolTip(
_("The height (DY)within which the panel must fit.\n" _("The height (DY)within which the panel must fit.\n"
"In current units.") "In current units.")
@ -869,7 +870,8 @@ class PanelizeUI:
form_layout.addRow(separator_line) form_layout.addRow(separator_line)
# Buttons # Buttons
self.panelize_object_button = QtWidgets.QPushButton(_("Panelize Object")) self.panelize_object_button = FCButton(_("Panelize Object"))
self.panelize_object_button.setIcon(QtGui.QIcon(self.app.resource_location + '/panelize16.png'))
self.panelize_object_button.setToolTip( self.panelize_object_button.setToolTip(
_("Panelize the specified object around the specified box.\n" _("Panelize the specified object around the specified box.\n"
"In other words it creates multiple copies of the source object,\n" "In other words it creates multiple copies of the source object,\n"
@ -886,7 +888,7 @@ class PanelizeUI:
self.layout.addStretch() self.layout.addStretch()
# ## Reset Tool # ## Reset Tool
self.reset_button = QtWidgets.QPushButton(_("Reset Tool")) self.reset_button = FCButton(_("Reset Tool"))
self.reset_button.setIcon(QtGui.QIcon(self.app.resource_location + '/reset32.png')) self.reset_button.setIcon(QtGui.QIcon(self.app.resource_location + '/reset32.png'))
self.reset_button.setToolTip( self.reset_button.setToolTip(
_("Will reset the tool parameters.") _("Will reset the tool parameters.")

View File

@ -74,6 +74,12 @@ class ToolPunchGerber(AppTool):
self.ui.other_ring_entry.setDisabled(False) if state else self.ui.other_ring_entry.setDisabled(True) self.ui.other_ring_entry.setDisabled(False) if state else self.ui.other_ring_entry.setDisabled(True)
) )
self.ui.circular_cb.stateChanged.connect(self.build_tool_ui)
self.ui.oblong_cb.stateChanged.connect(self.build_tool_ui)
self.ui.square_cb.stateChanged.connect(self.build_tool_ui)
self.ui.rectangular_cb.stateChanged.connect(self.build_tool_ui)
self.ui.other_cb.stateChanged.connect(self.build_tool_ui)
def run(self, toggle=True): def run(self, toggle=True):
self.app.defaults.report_usage("ToolPunchGerber()") self.app.defaults.report_usage("ToolPunchGerber()")
@ -131,6 +137,10 @@ class ToolPunchGerber(AppTool):
self.ui.factor_entry.set_value(float(self.app.defaults["tools_punch_hole_prop_factor"])) self.ui.factor_entry.set_value(float(self.app.defaults["tools_punch_hole_prop_factor"]))
def build_tool_ui(self): def build_tool_ui(self):
# reset table
self.ui.apertures_table.clear()
self.ui.apertures_table.setRowCount(0)
# get the Gerber file who is the source of the punched Gerber # get the Gerber file who is the source of the punched Gerber
selection_index = self.ui.gerber_object_combo.currentIndex() selection_index = self.ui.gerber_object_combo.currentIndex()
model_index = self.app.collection.index(selection_index, 0, self.ui.gerber_object_combo.rootModelIndex()) model_index = self.app.collection.index(selection_index, 0, self.ui.gerber_object_combo.rootModelIndex())
@ -144,17 +154,54 @@ class ToolPunchGerber(AppTool):
# no object loaded # no object loaded
sorted_apertures = [] sorted_apertures = []
n = len(sorted_apertures) # n = len(sorted_apertures)
# calculate how many rows to add
n = 0
for ap_code in sorted_apertures:
ap_code = str(ap_code)
ap_type = obj.apertures[ap_code]['type']
if ap_type == 'C' and self.ui.circular_cb.get_value() is True:
n += 1
if ap_type == 'R':
if self.ui.square_cb.get_value() is True:
n += 1
elif self.ui.rectangular_cb.get_value() is True:
n += 1
if ap_type == 'O' and self.ui.oblong_cb.get_value() is True:
n += 1
if ap_type not in ['C', 'R', 'O'] and self.ui.other_cb.get_value() is True:
n += 1
self.ui.apertures_table.setRowCount(n) self.ui.apertures_table.setRowCount(n)
row = 0 row = 0
for ap_code in sorted_apertures: for ap_code in sorted_apertures:
ap_code = str(ap_code) ap_code = str(ap_code)
ap_type = obj.apertures[ap_code]['type']
if ap_type == 'C':
if self.ui.circular_cb.get_value() is False:
continue
elif ap_type == 'R':
if self.ui.square_cb.get_value() is True:
pass
elif self.ui.rectangular_cb.get_value() is True:
pass
else:
continue
elif ap_type == 'O':
if self.ui.oblong_cb.get_value() is False:
continue
elif self.ui.other_cb.get_value() is True:
pass
else:
continue
ap_code_item = QtWidgets.QTableWidgetItem(ap_code) ap_code_item = QtWidgets.QTableWidgetItem(ap_code)
ap_code_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) ap_code_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
ap_type_item = QtWidgets.QTableWidgetItem(str(obj.apertures[ap_code]['type'])) ap_type_item = QtWidgets.QTableWidgetItem(str(ap_type))
ap_type_item.setFlags(QtCore.Qt.ItemIsEnabled) ap_type_item.setFlags(QtCore.Qt.ItemIsEnabled)
try: try:
@ -174,6 +221,7 @@ class ToolPunchGerber(AppTool):
# increment row # increment row
row += 1 row += 1
self.ui.apertures_table.selectColumn(0)
self.ui.apertures_table.resizeColumnsToContents() self.ui.apertures_table.resizeColumnsToContents()
self.ui.apertures_table.resizeRowsToContents() self.ui.apertures_table.resizeRowsToContents()
@ -932,8 +980,8 @@ class PunchUI:
[ [
{'label': _('Excellon'), 'value': 'exc'}, {'label': _('Excellon'), 'value': 'exc'},
{'label': _("Fixed Diameter"), 'value': 'fixed'}, {'label': _("Fixed Diameter"), 'value': 'fixed'},
{'label': _("Fixed Annular Ring"), 'value': 'ring'}, {'label': _("Proportional"), 'value': 'prop'},
{'label': _("Proportional"), 'value': 'prop'} {'label': _("Fixed Annular Ring"), 'value': 'ring'}
], ],
orientation='vertical', orientation='vertical',
stretch=False) stretch=False)
@ -1094,6 +1142,7 @@ class PunchUI:
# Buttons # Buttons
self.punch_object_button = QtWidgets.QPushButton(_("Punch Gerber")) self.punch_object_button = QtWidgets.QPushButton(_("Punch Gerber"))
self.punch_object_button.setIcon(QtGui.QIcon(self.app.resource_location + '/punch32.png'))
self.punch_object_button.setToolTip( self.punch_object_button.setToolTip(
_("Create a Gerber object from the selected object, within\n" _("Create a Gerber object from the selected object, within\n"
"the specified box.") "the specified box.")

View File

@ -892,6 +892,7 @@ class QRcodeUI:
# ## Insert QRCode # ## Insert QRCode
self.qrcode_button = QtWidgets.QPushButton(_("Insert QRCode")) self.qrcode_button = QtWidgets.QPushButton(_("Insert QRCode"))
self.qrcode_button.setIcon(QtGui.QIcon(self.app.resource_location + '/qrcode32.png'))
self.qrcode_button.setToolTip( self.qrcode_button.setToolTip(
_("Create the QRCode object.") _("Create the QRCode object.")
) )

View File

@ -1601,6 +1601,7 @@ class RulesUI:
# hlay_2.addStretch() # hlay_2.addStretch()
self.run_button = FCButton(_("Run Rules Check")) self.run_button = FCButton(_("Run Rules Check"))
self.run_button.setIcon(QtGui.QIcon(self.app.resource_location + '/rules32.png'))
self.run_button.setToolTip( self.run_button.setToolTip(
_("Panelize the specified object around the specified box.\n" _("Panelize the specified object around the specified box.\n"
"In other words it creates multiple copies of the source object,\n" "In other words it creates multiple copies of the source object,\n"

View File

@ -704,6 +704,7 @@ class SubUI:
grid0.addWidget(self.sub_gerber_combo, 4, 1) grid0.addWidget(self.sub_gerber_combo, 4, 1)
self.intersect_btn = FCButton(_('Subtract Gerber')) self.intersect_btn = FCButton(_('Subtract Gerber'))
self.intersect_btn.setIcon(QtGui.QIcon(self.app.resource_location + '/subtract_btn32.png'))
self.intersect_btn.setToolTip( self.intersect_btn.setToolTip(
_("Will remove the area occupied by the subtractor\n" _("Will remove the area occupied by the subtractor\n"
"Gerber from the Target Gerber.\n" "Gerber from the Target Gerber.\n"
@ -761,6 +762,7 @@ class SubUI:
grid0.addWidget(self.close_paths_cb, 16, 0, 1, 2) grid0.addWidget(self.close_paths_cb, 16, 0, 1, 2)
self.intersect_geo_btn = FCButton(_('Subtract Geometry')) self.intersect_geo_btn = FCButton(_('Subtract Geometry'))
self.intersect_geo_btn.setIcon(QtGui.QIcon(self.app.resource_location + '/subtract_btn32.png'))
self.intersect_geo_btn.setToolTip( self.intersect_geo_btn.setToolTip(
_("Will remove the area occupied by the subtractor\n" _("Will remove the area occupied by the subtractor\n"
"Geometry from the Target Geometry.") "Geometry from the Target Geometry.")

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 986 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 791 B