- all Geometry objects resulted from Isolation Tool are now of type multi-geo

- fixed minor glitch in the Isolation Tool UI
- added an extra check when doing selection on canvas
- fixed an UI problem in Gerber Editor
This commit is contained in:
Marius Stanciu 2020-08-07 13:55:32 +03:00
parent 06bb17f255
commit 9b6c65cdcb
4 changed files with 22 additions and 15 deletions

View File

@ -7,6 +7,13 @@ CHANGELOG for FlatCAM beta
=================================================
7.08.2020
- all Geometry objects resulted from Isolation Tool are now of type multi-geo
- fixed minor glitch in the Isolation Tool UI
- added an extra check when doing selection on canvas
- fixed an UI problem in Gerber Editor
5.08.2020
- Tool Cutout - more work in gaps thickness control feature

View File

@ -2891,6 +2891,7 @@ class AppGerberEditor(QtCore.QObject):
self.linear_angle_label.hide()
self.array_frame.hide()
self.custom_box.addStretch()
layout.addStretch()

View File

@ -253,6 +253,7 @@ class ToolIsolation(AppTool, Gerber):
self.t_ui.rest_cb.set_value(False)
self.t_ui.rest_cb.hide()
self.t_ui.forced_rest_iso_cb.hide()
self.t_ui.except_cb.set_value(False)
self.t_ui.except_cb.hide()
@ -283,6 +284,7 @@ class ToolIsolation(AppTool, Gerber):
self.t_ui.rest_cb.set_value(self.app.defaults["tools_iso_rest"])
self.t_ui.rest_cb.show()
self.t_ui.forced_rest_iso_cb.show()
self.t_ui.except_cb.set_value(self.app.defaults["tools_iso_isoexcept"])
self.t_ui.except_cb.show()
@ -1437,7 +1439,7 @@ class ToolIsolation(AppTool, Gerber):
else:
fc_obj.inform.emit('[success] %s: %s' %
(_("Isolation geometry created"), geo_obj.options["name"]))
geo_obj.multigeo = False
geo_obj.multigeo = True
self.app.app_obj.new_object("geometry", iso_name, iso_init, plot=plot)
@ -1610,7 +1612,7 @@ class ToolIsolation(AppTool, Gerber):
else:
for ky in tools_storage.keys():
passes_no = float(tools_storage[ky]['data']['tools_iso_passes'])
geo_obj.multigeo = True if passes_no > 1 else False
geo_obj.multigeo = True
break
# detect if solid_geometry is empty and this require list flattening which is "heavy"
@ -1798,9 +1800,9 @@ class ToolIsolation(AppTool, Gerber):
passes_no = 1
for ky in tools_storage.keys():
passes_no = float(tools_storage[ky]['data']['tools_iso_passes'])
geo_obj.multigeo = True if passes_no > 1 else False
geo_obj.multigeo = True
break
geo_obj.multigeo = True if passes_no > 1 else False
geo_obj.multigeo = True
# detect if solid_geometry is empty and this require list flattening which is "heavy"
# or just looking in the lists (they are one level depth) and if any is not empty
@ -2775,18 +2777,12 @@ class IsoUI:
self.level.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
self.title_box.addWidget(self.level)
# Grid Layout
grid0 = QtWidgets.QGridLayout()
grid0.setColumnStretch(0, 0)
grid0.setColumnStretch(1, 1)
self.tools_box.addLayout(grid0)
self.obj_combo_label = QtWidgets.QLabel('<b>%s</b>:' % _("GERBER"))
self.obj_combo_label.setToolTip(
_("Gerber object for isolation routing.")
)
grid0.addWidget(self.obj_combo_label, 0, 0, 1, 2)
self.tools_box.addWidget(self.obj_combo_label)
# ################################################
# ##### The object to be copper cleaned ##########
@ -2797,12 +2793,12 @@ class IsoUI:
# self.object_combo.setCurrentIndex(1)
self.object_combo.is_last = True
grid0.addWidget(self.object_combo, 1, 0, 1, 2)
self.tools_box.addWidget(self.object_combo)
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
grid0.addWidget(separator_line, 2, 0, 1, 2)
self.tools_box.addWidget(separator_line)
# ### Tools ## ##
self.tools_table_label = QtWidgets.QLabel('<b>%s</b>' % _('Tools Table'))
@ -2810,10 +2806,10 @@ class IsoUI:
_("Tools pool from which the algorithm\n"
"will pick the ones used for copper clearing.")
)
grid0.addWidget(self.tools_table_label, 3, 0, 1, 2)
self.tools_box.addWidget(self.tools_table_label)
self.tools_table = FCTable(drag_drop=True)
grid0.addWidget(self.tools_table, 4, 0, 1, 2)
self.tools_box.addWidget(self.tools_table)
self.tools_table.setColumnCount(4)
# 3rd column is reserved (and hidden) for the tool ID

View File

@ -6498,6 +6498,9 @@ class App(QtCore.QObject):
(obj.options['xmax'], obj.options['ymin']),
(obj.options['xmax'], obj.options['ymax']),
(obj.options['xmin'], obj.options['ymax'])])
if poly_obj.is_empty or not poly_obj.is_valid:
continue
if sel_type is True:
if poly_obj.within(poly_selection):
# create the selection box around the selected object