|
@@ -436,11 +436,11 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
self.rest_cb.setObjectName("i_rest_machining")
|
|
self.rest_cb.setObjectName("i_rest_machining")
|
|
|
self.rest_cb.setToolTip(
|
|
self.rest_cb.setToolTip(
|
|
|
_("If checked, use 'rest machining'.\n"
|
|
_("If checked, use 'rest machining'.\n"
|
|
|
- "Basically it will clear copper outside PCB features,\n"
|
|
|
|
|
|
|
+ "Basically it will isolate outside PCB features,\n"
|
|
|
"using the biggest tool and continue with the next tools,\n"
|
|
"using the biggest tool and continue with the next tools,\n"
|
|
|
- "from bigger to smaller, to clear areas of copper that\n"
|
|
|
|
|
|
|
+ "from bigger to smaller, to isolate the copper features that\n"
|
|
|
"could not be cleared by previous tool, until there is\n"
|
|
"could not be cleared by previous tool, until there is\n"
|
|
|
- "no more copper to clear or there are no more tools.\n"
|
|
|
|
|
|
|
+ "no more copper features to isolate or there are no more tools.\n"
|
|
|
"If not checked, use the standard algorithm.")
|
|
"If not checked, use the standard algorithm.")
|
|
|
)
|
|
)
|
|
|
|
|
|
|
@@ -628,7 +628,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
# ########################## VARIABLES ########################################
|
|
# ########################## VARIABLES ########################################
|
|
|
# #############################################################################
|
|
# #############################################################################
|
|
|
self.units = ''
|
|
self.units = ''
|
|
|
- self.ncc_tools = {}
|
|
|
|
|
|
|
+ self.iso_tools = {}
|
|
|
self.tooluid = 0
|
|
self.tooluid = 0
|
|
|
|
|
|
|
|
# store here the default data for Geometry Data
|
|
# store here the default data for Geometry Data
|
|
@@ -682,7 +682,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
"tools_iso_milling_type": self.milling_type_radio,
|
|
"tools_iso_milling_type": self.milling_type_radio,
|
|
|
"tools_iso_combine": self.combine_passes_cb,
|
|
"tools_iso_combine": self.combine_passes_cb,
|
|
|
"tools_iso_follow": self.follow_cb,
|
|
"tools_iso_follow": self.follow_cb,
|
|
|
- "tools_iso_type": self.iso_type_radio
|
|
|
|
|
|
|
+ "tools_iso_isotype": self.iso_type_radio
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
self.name2option = {
|
|
self.name2option = {
|
|
@@ -691,7 +691,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
"i_milling_type": "tools_iso_milling_type",
|
|
"i_milling_type": "tools_iso_milling_type",
|
|
|
"i_combine": "tools_iso_combine",
|
|
"i_combine": "tools_iso_combine",
|
|
|
"i_follow": "tools_iso_follow",
|
|
"i_follow": "tools_iso_follow",
|
|
|
- "i_type": "tools_iso_type"
|
|
|
|
|
|
|
+ "i_type": "tools_iso_isotype"
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
self.old_tool_dia = None
|
|
self.old_tool_dia = None
|
|
@@ -742,7 +742,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
current_row = self.tools_table.currentRow()
|
|
current_row = self.tools_table.currentRow()
|
|
|
try:
|
|
try:
|
|
|
current_uid = int(self.tools_table.item(current_row, 3).text())
|
|
current_uid = int(self.tools_table.item(current_row, 3).text())
|
|
|
- self.ncc_tools[current_uid]['data']['tools_nccoperation'] = val
|
|
|
|
|
|
|
+ self.iso_tools[current_uid]['data']['tools_nccoperation'] = val
|
|
|
except AttributeError:
|
|
except AttributeError:
|
|
|
return
|
|
return
|
|
|
|
|
|
|
@@ -775,7 +775,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
)
|
|
)
|
|
|
try:
|
|
try:
|
|
|
# set the form with data from the newly selected tool
|
|
# set the form with data from the newly selected tool
|
|
|
- for tooluid_key, tooluid_value in list(self.ncc_tools.items()):
|
|
|
|
|
|
|
+ for tooluid_key, tooluid_value in list(self.iso_tools.items()):
|
|
|
if int(tooluid_key) == tooluid:
|
|
if int(tooluid_key) == tooluid:
|
|
|
for key, value in tooluid_value.items():
|
|
for key, value in tooluid_value.items():
|
|
|
if key == 'data':
|
|
if key == 'data':
|
|
@@ -818,7 +818,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
row = 0
|
|
row = 0
|
|
|
tooluid_item = int(self.tools_table.item(row, 3).text())
|
|
tooluid_item = int(self.tools_table.item(row, 3).text())
|
|
|
|
|
|
|
|
- for tooluid_key, tooluid_val in self.ncc_tools.items():
|
|
|
|
|
|
|
+ for tooluid_key, tooluid_val in self.iso_tools.items():
|
|
|
if int(tooluid_key) == tooluid_item:
|
|
if int(tooluid_key) == tooluid_item:
|
|
|
new_option_value = self.form_fields[option_changed].get_value()
|
|
new_option_value = self.form_fields[option_changed].get_value()
|
|
|
if option_changed in tooluid_val:
|
|
if option_changed in tooluid_val:
|
|
@@ -843,14 +843,14 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
tooluid_item = int(self.tools_table.item(row, 3).text())
|
|
tooluid_item = int(self.tools_table.item(row, 3).text())
|
|
|
temp_tool_data = {}
|
|
temp_tool_data = {}
|
|
|
|
|
|
|
|
- for tooluid_key, tooluid_val in self.ncc_tools.items():
|
|
|
|
|
|
|
+ for tooluid_key, tooluid_val in self.iso_tools.items():
|
|
|
if int(tooluid_key) == tooluid_item:
|
|
if int(tooluid_key) == tooluid_item:
|
|
|
# this will hold the 'data' key of the self.tools[tool] dictionary that corresponds to
|
|
# this will hold the 'data' key of the self.tools[tool] dictionary that corresponds to
|
|
|
# the current row in the tool table
|
|
# the current row in the tool table
|
|
|
temp_tool_data = tooluid_val['data']
|
|
temp_tool_data = tooluid_val['data']
|
|
|
break
|
|
break
|
|
|
|
|
|
|
|
- for tooluid_key, tooluid_val in self.ncc_tools.items():
|
|
|
|
|
|
|
+ for tooluid_key, tooluid_val in self.iso_tools.items():
|
|
|
tooluid_val['data'] = deepcopy(temp_tool_data)
|
|
tooluid_val['data'] = deepcopy(temp_tool_data)
|
|
|
|
|
|
|
|
# store all the data associated with the row parameter to the self.tools storage
|
|
# store all the data associated with the row parameter to the self.tools storage
|
|
@@ -866,7 +866,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
# temp_dia = {}
|
|
# temp_dia = {}
|
|
|
# temp_data = {}
|
|
# temp_data = {}
|
|
|
#
|
|
#
|
|
|
- # for tooluid_key, tooluid_value in self.ncc_tools.items():
|
|
|
|
|
|
|
+ # for tooluid_key, tooluid_value in self.iso_tools.items():
|
|
|
# for key, value in tooluid_value.items():
|
|
# for key, value in tooluid_value.items():
|
|
|
# if key == 'data':
|
|
# if key == 'data':
|
|
|
# # update the 'data' section
|
|
# # update the 'data' section
|
|
@@ -888,8 +888,8 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
#
|
|
#
|
|
|
# temp_tools[tooluid_key] = deepcopy(temp_dia)
|
|
# temp_tools[tooluid_key] = deepcopy(temp_dia)
|
|
|
#
|
|
#
|
|
|
- # self.ncc_tools.clear()
|
|
|
|
|
- # self.ncc_tools = deepcopy(temp_tools)
|
|
|
|
|
|
|
+ # self.iso_tools.clear()
|
|
|
|
|
+ # self.iso_tools = deepcopy(temp_tools)
|
|
|
# temp_tools.clear()
|
|
# temp_tools.clear()
|
|
|
|
|
|
|
|
self.app.inform.emit('[success] %s' % _("Current Tool parameters were applied to all tools."))
|
|
self.app.inform.emit('[success] %s' % _("Current Tool parameters were applied to all tools."))
|
|
@@ -952,7 +952,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
|
|
|
|
|
def set_tool_ui(self):
|
|
def set_tool_ui(self):
|
|
|
self.units = self.app.defaults['units'].upper()
|
|
self.units = self.app.defaults['units'].upper()
|
|
|
- self.old_tool_dia = self.app.defaults["tools_nccnewdia"]
|
|
|
|
|
|
|
+ self.old_tool_dia = self.app.defaults["tools_iso_newdia"]
|
|
|
|
|
|
|
|
# try to select in the Gerber combobox the active object
|
|
# try to select in the Gerber combobox the active object
|
|
|
try:
|
|
try:
|
|
@@ -982,10 +982,13 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
self.follow_cb.setChecked(False)
|
|
self.follow_cb.setChecked(False)
|
|
|
self.follow_cb.hide()
|
|
self.follow_cb.hide()
|
|
|
self.follow_label.hide()
|
|
self.follow_label.hide()
|
|
|
|
|
+
|
|
|
self.rest_cb.setChecked(False)
|
|
self.rest_cb.setChecked(False)
|
|
|
self.rest_cb.hide()
|
|
self.rest_cb.hide()
|
|
|
|
|
+
|
|
|
self.except_cb.setChecked(False)
|
|
self.except_cb.setChecked(False)
|
|
|
self.except_cb.hide()
|
|
self.except_cb.hide()
|
|
|
|
|
+
|
|
|
self.select_combo.setCurrentIndex(0)
|
|
self.select_combo.setCurrentIndex(0)
|
|
|
self.select_combo.hide()
|
|
self.select_combo.hide()
|
|
|
self.select_label.hide()
|
|
self.select_label.hide()
|
|
@@ -993,7 +996,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
self.level.setText('<span style="color:red;"><b>%s</b></span>' % _('Advanced'))
|
|
self.level.setText('<span style="color:red;"><b>%s</b></span>' % _('Advanced'))
|
|
|
|
|
|
|
|
# TODO remember to set the GUI elements to values from app.defaults dict
|
|
# TODO remember to set the GUI elements to values from app.defaults dict
|
|
|
- self.tool_type_radio.set_value(self.app.defaults["gerber_tool_type"])
|
|
|
|
|
|
|
+ self.tool_type_radio.set_value(self.app.defaults["tools_iso_tool_type"])
|
|
|
self.tool_type_label.show()
|
|
self.tool_type_label.show()
|
|
|
self.tool_type_radio.show()
|
|
self.tool_type_radio.show()
|
|
|
|
|
|
|
@@ -1001,17 +1004,20 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
self.milling_type_radio.show()
|
|
self.milling_type_radio.show()
|
|
|
|
|
|
|
|
self.iso_type_label.show()
|
|
self.iso_type_label.show()
|
|
|
- self.iso_type_radio.set_value(self.app.defaults["gerber_iso_type"])
|
|
|
|
|
|
|
+ self.iso_type_radio.set_value(self.app.defaults["tools_iso_isotype"])
|
|
|
self.iso_type_radio.show()
|
|
self.iso_type_radio.show()
|
|
|
|
|
|
|
|
- self.follow_cb.setChecked(False)
|
|
|
|
|
|
|
+ self.follow_cb.setChecked(self.app.defaults["tools_iso_follow"])
|
|
|
self.follow_cb.show()
|
|
self.follow_cb.show()
|
|
|
self.follow_label.show()
|
|
self.follow_label.show()
|
|
|
- self.rest_cb.setChecked(False)
|
|
|
|
|
|
|
+
|
|
|
|
|
+ self.rest_cb.setChecked(self.app.defaults["tools_iso_rest"])
|
|
|
self.rest_cb.show()
|
|
self.rest_cb.show()
|
|
|
- self.except_cb.setChecked(False)
|
|
|
|
|
|
|
+
|
|
|
|
|
+ self.except_cb.setChecked(self.app.defaults["tools_iso_isoexcept"])
|
|
|
self.except_cb.show()
|
|
self.except_cb.show()
|
|
|
- self.select_combo.setCurrentIndex(0)
|
|
|
|
|
|
|
+
|
|
|
|
|
+ self.select_combo.setCurrentIndex(self.app.defaults["tools_iso_selection"])
|
|
|
self.select_combo.show()
|
|
self.select_combo.show()
|
|
|
self.select_label.show()
|
|
self.select_label.show()
|
|
|
|
|
|
|
@@ -1034,25 +1040,18 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
self.on_type_excobj_index_changed(val="gerber")
|
|
self.on_type_excobj_index_changed(val="gerber")
|
|
|
self.on_reference_combo_changed()
|
|
self.on_reference_combo_changed()
|
|
|
|
|
|
|
|
- self.order_radio.set_value(self.app.defaults["tools_nccorder"])
|
|
|
|
|
- self.passes_entry.set_value(self.app.defaults["gerber_isopasses"])
|
|
|
|
|
- self.iso_overlap_entry.set_value(self.app.defaults["gerber_isooverlap"])
|
|
|
|
|
- self.milling_type_radio.set_value(self.app.defaults["gerber_milling_type"])
|
|
|
|
|
- self.combine_passes_cb.set_value(self.app.defaults["gerber_combine_passes"])
|
|
|
|
|
- self.follow_cb.set_value(self.app.defaults["gerber_follow"])
|
|
|
|
|
- self.except_cb.set_value(False)
|
|
|
|
|
- self.iso_type_radio.set_value(self.app.defaults["gerber_iso_type"])
|
|
|
|
|
- self.rest_cb.set_value(False)
|
|
|
|
|
- self.select_combo.set_value(self.app.defaults["gerber_iso_scope"])
|
|
|
|
|
- self.area_shape_radio.set_value('square')
|
|
|
|
|
-
|
|
|
|
|
- self.cutz_entry.set_value(self.app.defaults["tools_ncccutz"])
|
|
|
|
|
- self.tool_type_radio.set_value(self.app.defaults["tools_ncctool_type"])
|
|
|
|
|
- self.tipdia_entry.set_value(self.app.defaults["tools_ncctipdia"])
|
|
|
|
|
- self.tipangle_entry.set_value(self.app.defaults["tools_ncctipangle"])
|
|
|
|
|
- self.addtool_entry.set_value(self.app.defaults["tools_nccnewdia"])
|
|
|
|
|
-
|
|
|
|
|
- self.old_tool_dia = self.app.defaults["tools_nccnewdia"]
|
|
|
|
|
|
|
+ self.order_radio.set_value(self.app.defaults["tools_iso_order"])
|
|
|
|
|
+ self.passes_entry.set_value(self.app.defaults["tools_iso_passes"])
|
|
|
|
|
+ self.iso_overlap_entry.set_value(self.app.defaults["tools_iso_overlap"])
|
|
|
|
|
+ self.milling_type_radio.set_value(self.app.defaults["tools_iso_milling_type"])
|
|
|
|
|
+ self.combine_passes_cb.set_value(self.app.defaults["tools_iso_combine_passes"])
|
|
|
|
|
+ self.area_shape_radio.set_value(self.app.defaults["tools_iso_combine_passes"])
|
|
|
|
|
+
|
|
|
|
|
+ self.cutz_entry.set_value(self.app.defaults["tools_iso_tool_cutz"])
|
|
|
|
|
+ self.tool_type_radio.set_value(self.app.defaults["tools_iso_tool_type"])
|
|
|
|
|
+ self.tipdia_entry.set_value(self.app.defaults["tools_iso_tool_vtipdia"])
|
|
|
|
|
+ self.tipangle_entry.set_value(self.app.defaults["tools_iso_tool_vtipangle"])
|
|
|
|
|
+ self.addtool_entry.set_value(self.app.defaults["tools_iso_newdia"])
|
|
|
|
|
|
|
|
self.on_tool_type(val=self.tool_type_radio.get_value())
|
|
self.on_tool_type(val=self.tool_type_radio.get_value())
|
|
|
|
|
|
|
@@ -1089,24 +1088,23 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
"area_strategy": self.app.defaults["geometry_area_strategy"],
|
|
"area_strategy": self.app.defaults["geometry_area_strategy"],
|
|
|
"area_overz": float(self.app.defaults["geometry_area_overz"]),
|
|
"area_overz": float(self.app.defaults["geometry_area_overz"]),
|
|
|
|
|
|
|
|
- "tools_iso_passes": self.app.defaults["gerber_isopasses"],
|
|
|
|
|
- "tools_iso_overlap": self.app.defaults["gerber_isooverlap"],
|
|
|
|
|
- "tools_iso_milling_type": self.app.defaults["gerber_milling_type"],
|
|
|
|
|
- "tools_iso_combine": self.app.defaults["gerber_combine_passes"],
|
|
|
|
|
- "tools_iso_follow": self.app.defaults["gerber_follow"],
|
|
|
|
|
- "tools_iso_type": self.app.defaults["gerber_iso_type"],
|
|
|
|
|
-
|
|
|
|
|
- "nccrest": self.app.defaults["tools_nccrest"],
|
|
|
|
|
- "nccref": self.app.defaults["gerber_iso_scope"],
|
|
|
|
|
-
|
|
|
|
|
- "tools_iso_exclusion": True,
|
|
|
|
|
-
|
|
|
|
|
|
|
+ "tools_iso_passes": self.app.defaults["tools_iso_passes"],
|
|
|
|
|
+ "tools_iso_overlap": self.app.defaults["tools_iso_overlap"],
|
|
|
|
|
+ "tools_iso_milling_type": self.app.defaults["tools_iso_milling_type"],
|
|
|
|
|
+ "tools_iso_follow": self.app.defaults["tools_iso_follow"],
|
|
|
|
|
+ "tools_iso_isotype": self.app.defaults["tools_iso_isotype"],
|
|
|
|
|
+
|
|
|
|
|
+ "tools_iso_rest": self.app.defaults["tools_iso_rest"],
|
|
|
|
|
+ "tools_iso_combine_passes": self.app.defaults["tools_iso_combine_passes"],
|
|
|
|
|
+ "tools_iso_isoexcept": self.app.defaults["tools_iso_isoexcept"],
|
|
|
|
|
+ "tools_iso_selection": self.app.defaults["tools_iso_selection"],
|
|
|
|
|
+ "tools_iso_area_shape": self.app.defaults["tools_iso_area_shape"]
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
try:
|
|
try:
|
|
|
- dias = [float(self.app.defaults["gerber_isotooldia"])]
|
|
|
|
|
|
|
+ dias = [float(self.app.defaults["tools_iso_tooldia"])]
|
|
|
except (ValueError, TypeError):
|
|
except (ValueError, TypeError):
|
|
|
- dias = [float(eval(dia)) for dia in self.app.defaults["gerber_isotooldia"].split(",") if dia != '']
|
|
|
|
|
|
|
+ dias = [float(eval(dia)) for dia in self.app.defaults["tools_iso_tooldia"].split(",") if dia != '']
|
|
|
|
|
|
|
|
if not dias:
|
|
if not dias:
|
|
|
log.error("At least one tool diameter needed. Verify in Edit -> Preferences -> TOOLS -> Isolation Tools.")
|
|
log.error("At least one tool diameter needed. Verify in Edit -> Preferences -> TOOLS -> Isolation Tools.")
|
|
@@ -1114,10 +1112,10 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
|
|
|
|
|
self.tooluid = 0
|
|
self.tooluid = 0
|
|
|
|
|
|
|
|
- self.ncc_tools.clear()
|
|
|
|
|
|
|
+ self.iso_tools.clear()
|
|
|
for tool_dia in dias:
|
|
for tool_dia in dias:
|
|
|
self.tooluid += 1
|
|
self.tooluid += 1
|
|
|
- self.ncc_tools.update({
|
|
|
|
|
|
|
+ self.iso_tools.update({
|
|
|
int(self.tooluid): {
|
|
int(self.tooluid): {
|
|
|
'tooldia': float('%.*f' % (self.decimals, tool_dia)),
|
|
'tooldia': float('%.*f' % (self.decimals, tool_dia)),
|
|
|
'offset': 'Path',
|
|
'offset': 'Path',
|
|
@@ -1144,7 +1142,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
self.units = self.app.defaults['units'].upper()
|
|
self.units = self.app.defaults['units'].upper()
|
|
|
|
|
|
|
|
sorted_tools = []
|
|
sorted_tools = []
|
|
|
- for k, v in self.ncc_tools.items():
|
|
|
|
|
|
|
+ for k, v in self.iso_tools.items():
|
|
|
if self.units == "IN":
|
|
if self.units == "IN":
|
|
|
sorted_tools.append(float('%.*f' % (self.decimals, float(v['tooldia']))))
|
|
sorted_tools.append(float('%.*f' % (self.decimals, float(v['tooldia']))))
|
|
|
else:
|
|
else:
|
|
@@ -1163,7 +1161,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
tool_id = 0
|
|
tool_id = 0
|
|
|
|
|
|
|
|
for tool_sorted in sorted_tools:
|
|
for tool_sorted in sorted_tools:
|
|
|
- for tooluid_key, tooluid_value in self.ncc_tools.items():
|
|
|
|
|
|
|
+ for tooluid_key, tooluid_value in self.iso_tools.items():
|
|
|
if float('%.*f' % (self.decimals, tooluid_value['tooldia'])) == tool_sorted:
|
|
if float('%.*f' % (self.decimals, tooluid_value['tooldia'])) == tool_sorted:
|
|
|
tool_id += 1
|
|
tool_id += 1
|
|
|
id_ = QtWidgets.QTableWidgetItem('%d' % int(tool_id))
|
|
id_ = QtWidgets.QTableWidgetItem('%d' % int(tool_id))
|
|
@@ -1410,7 +1408,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
tt = cw.currentText()
|
|
tt = cw.currentText()
|
|
|
typ = 'Iso' if tt == 'V' else "Rough"
|
|
typ = 'Iso' if tt == 'V' else "Rough"
|
|
|
|
|
|
|
|
- self.ncc_tools[current_uid].update({
|
|
|
|
|
|
|
+ self.iso_tools[current_uid].update({
|
|
|
'type': typ,
|
|
'type': typ,
|
|
|
'tool_type': tt,
|
|
'tool_type': tt,
|
|
|
})
|
|
})
|
|
@@ -1445,7 +1443,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
# calculated tool diameter so the cut_z parameter is obeyed
|
|
# calculated tool diameter so the cut_z parameter is obeyed
|
|
|
tool_dia = tip_dia + (2 * cut_z * math.tan(math.radians(tip_angle)))
|
|
tool_dia = tip_dia + (2 * cut_z * math.tan(math.radians(tip_angle)))
|
|
|
|
|
|
|
|
- # update the default_data so it is used in the ncc_tools dict
|
|
|
|
|
|
|
+ # update the default_data so it is used in the iso_tools dict
|
|
|
self.default_data.update({
|
|
self.default_data.update({
|
|
|
"vtipdia": tip_dia,
|
|
"vtipdia": tip_dia,
|
|
|
"vtipangle": (tip_angle * 2),
|
|
"vtipangle": (tip_angle * 2),
|
|
@@ -1480,7 +1478,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
|
|
|
|
|
# construct a list of all 'tooluid' in the self.tools
|
|
# construct a list of all 'tooluid' in the self.tools
|
|
|
tool_uid_list = []
|
|
tool_uid_list = []
|
|
|
- for tooluid_key in self.ncc_tools:
|
|
|
|
|
|
|
+ for tooluid_key in self.iso_tools:
|
|
|
tool_uid_item = int(tooluid_key)
|
|
tool_uid_item = int(tooluid_key)
|
|
|
tool_uid_list.append(tool_uid_item)
|
|
tool_uid_list.append(tool_uid_item)
|
|
|
|
|
|
|
@@ -1492,7 +1490,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
self.tooluid = int(max_uid + 1)
|
|
self.tooluid = int(max_uid + 1)
|
|
|
|
|
|
|
|
tool_dias = []
|
|
tool_dias = []
|
|
|
- for k, v in self.ncc_tools.items():
|
|
|
|
|
|
|
+ for k, v in self.iso_tools.items():
|
|
|
for tool_v in v.keys():
|
|
for tool_v in v.keys():
|
|
|
if tool_v == 'tooldia':
|
|
if tool_v == 'tooldia':
|
|
|
tool_dias.append(float('%.*f' % (self.decimals, (v[tool_v]))))
|
|
tool_dias.append(float('%.*f' % (self.decimals, (v[tool_v]))))
|
|
@@ -1507,7 +1505,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
else:
|
|
else:
|
|
|
if muted is None:
|
|
if muted is None:
|
|
|
self.app.inform.emit('[success] %s' % _("New tool added to Tool Table."))
|
|
self.app.inform.emit('[success] %s' % _("New tool added to Tool Table."))
|
|
|
- self.ncc_tools.update({
|
|
|
|
|
|
|
+ self.iso_tools.update({
|
|
|
int(self.tooluid): {
|
|
int(self.tooluid): {
|
|
|
'tooldia': float('%.*f' % (self.decimals, tool_dia)),
|
|
'tooldia': float('%.*f' % (self.decimals, tool_dia)),
|
|
|
'offset': 'Path',
|
|
'offset': 'Path',
|
|
@@ -1527,7 +1525,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
|
|
|
|
|
old_tool_dia = ''
|
|
old_tool_dia = ''
|
|
|
tool_dias = []
|
|
tool_dias = []
|
|
|
- for k, v in self.ncc_tools.items():
|
|
|
|
|
|
|
+ for k, v in self.iso_tools.items():
|
|
|
for tool_v in v.keys():
|
|
for tool_v in v.keys():
|
|
|
if tool_v == 'tooldia':
|
|
if tool_v == 'tooldia':
|
|
|
tool_dias.append(float('%.*f' % (self.decimals, v[tool_v])))
|
|
tool_dias.append(float('%.*f' % (self.decimals, v[tool_v])))
|
|
@@ -1549,14 +1547,14 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
|
|
|
|
|
# identify the tool that was edited and get it's tooluid
|
|
# identify the tool that was edited and get it's tooluid
|
|
|
if new_tool_dia not in tool_dias:
|
|
if new_tool_dia not in tool_dias:
|
|
|
- self.ncc_tools[tooluid]['tooldia'] = new_tool_dia
|
|
|
|
|
|
|
+ self.iso_tools[tooluid]['tooldia'] = new_tool_dia
|
|
|
self.app.inform.emit('[success] %s' % _("Tool from Tool Table was edited."))
|
|
self.app.inform.emit('[success] %s' % _("Tool from Tool Table was edited."))
|
|
|
self.blockSignals(False)
|
|
self.blockSignals(False)
|
|
|
self.build_ui()
|
|
self.build_ui()
|
|
|
return
|
|
return
|
|
|
else:
|
|
else:
|
|
|
# identify the old tool_dia and restore the text in tool table
|
|
# identify the old tool_dia and restore the text in tool table
|
|
|
- for k, v in self.ncc_tools.items():
|
|
|
|
|
|
|
+ for k, v in self.iso_tools.items():
|
|
|
if k == tooluid:
|
|
if k == tooluid:
|
|
|
old_tool_dia = v['tooldia']
|
|
old_tool_dia = v['tooldia']
|
|
|
break
|
|
break
|
|
@@ -1580,7 +1578,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
deleted_tools_list = []
|
|
deleted_tools_list = []
|
|
|
|
|
|
|
|
if all_tools:
|
|
if all_tools:
|
|
|
- self.ncc_tools.clear()
|
|
|
|
|
|
|
+ self.iso_tools.clear()
|
|
|
self.blockSignals(False)
|
|
self.blockSignals(False)
|
|
|
self.build_ui()
|
|
self.build_ui()
|
|
|
return
|
|
return
|
|
@@ -1595,7 +1593,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
deleted_tools_list.append(tooluid_del)
|
|
deleted_tools_list.append(tooluid_del)
|
|
|
|
|
|
|
|
for t in deleted_tools_list:
|
|
for t in deleted_tools_list:
|
|
|
- self.ncc_tools.pop(t, None)
|
|
|
|
|
|
|
+ self.iso_tools.pop(t, None)
|
|
|
|
|
|
|
|
self.blockSignals(False)
|
|
self.blockSignals(False)
|
|
|
self.build_ui()
|
|
self.build_ui()
|
|
@@ -1611,7 +1609,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
deleted_tools_list.append(tooluid_del)
|
|
deleted_tools_list.append(tooluid_del)
|
|
|
|
|
|
|
|
for t in deleted_tools_list:
|
|
for t in deleted_tools_list:
|
|
|
- self.ncc_tools.pop(t, None)
|
|
|
|
|
|
|
+ self.iso_tools.pop(t, None)
|
|
|
|
|
|
|
|
except AttributeError:
|
|
except AttributeError:
|
|
|
self.app.inform.emit('[WARNING_NOTCL] %s' % _("Delete failed. Select a tool to delete."))
|
|
self.app.inform.emit('[WARNING_NOTCL] %s' % _("Delete failed. Select a tool to delete."))
|
|
@@ -2140,7 +2138,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
:param isotooldia: a tuple or single element made out of diameters of the tools to be used for isolation
|
|
:param isotooldia: a tuple or single element made out of diameters of the tools to be used for isolation
|
|
|
:param outname: name of the resulting object
|
|
:param outname: name of the resulting object
|
|
|
:param order: Tools order
|
|
:param order: Tools order
|
|
|
- :param tools_storage: whether to use the current tools_storage self.ncc_tools or a different one.
|
|
|
|
|
|
|
+ :param tools_storage: whether to use the current tools_storage self.iso_tools or a different one.
|
|
|
Usage of the different one is related to when this function is called
|
|
Usage of the different one is related to when this function is called
|
|
|
from a TcL command.
|
|
from a TcL command.
|
|
|
|
|
|
|
@@ -2167,7 +2165,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
|
|
|
|
|
# determine if to use the progressive plotting
|
|
# determine if to use the progressive plotting
|
|
|
prog_plot = True if self.app.defaults["tools_ncc_plotting"] == 'progressive' else False
|
|
prog_plot = True if self.app.defaults["tools_ncc_plotting"] == 'progressive' else False
|
|
|
- tools_storage = tools_storage if tools_storage is not None else self.ncc_tools
|
|
|
|
|
|
|
+ tools_storage = tools_storage if tools_storage is not None else self.iso_tools
|
|
|
|
|
|
|
|
# ######################################################################################################
|
|
# ######################################################################################################
|
|
|
# # Read the tooldia parameter and create a sorted list out them - they may be more than one diameter ##
|
|
# # Read the tooldia parameter and create a sorted list out them - they may be more than one diameter ##
|
|
@@ -2185,9 +2183,9 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
# for row in range(self.tools_table.rowCount()):
|
|
# for row in range(self.tools_table.rowCount()):
|
|
|
# if self.tools_table.cellWidget(row, 1).currentText() == 'clear_op':
|
|
# if self.tools_table.cellWidget(row, 1).currentText() == 'clear_op':
|
|
|
# sorted_clear_tools.append(float(self.tools_table.item(row, 1).text()))
|
|
# sorted_clear_tools.append(float(self.tools_table.item(row, 1).text()))
|
|
|
- for tooluid in self.ncc_tools:
|
|
|
|
|
- if self.ncc_tools[tooluid]['data']['tools_nccoperation'] == 'clear':
|
|
|
|
|
- sorted_clear_tools.append(self.ncc_tools[tooluid]['tooldia'])
|
|
|
|
|
|
|
+ for tooluid in self.iso_tools:
|
|
|
|
|
+ if self.iso_tools[tooluid]['data']['tools_nccoperation'] == 'clear':
|
|
|
|
|
+ sorted_clear_tools.append(self.iso_tools[tooluid]['tooldia'])
|
|
|
|
|
|
|
|
# ########################################################################################################
|
|
# ########################################################################################################
|
|
|
# set the name for the future Geometry object
|
|
# set the name for the future Geometry object
|
|
@@ -2256,19 +2254,19 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
app_obj.proc_container.update_view_text(' %d%%' % 0)
|
|
app_obj.proc_container.update_view_text(' %d%%' % 0)
|
|
|
|
|
|
|
|
tool_uid = 0 # find the current tool_uid
|
|
tool_uid = 0 # find the current tool_uid
|
|
|
- for k, v in self.ncc_tools.items():
|
|
|
|
|
|
|
+ for k, v in self.iso_tools.items():
|
|
|
if float('%.*f' % (self.decimals, v['tooldia'])) == float('%.*f' % (self.decimals, tool)):
|
|
if float('%.*f' % (self.decimals, v['tooldia'])) == float('%.*f' % (self.decimals, tool)):
|
|
|
tool_uid = int(k)
|
|
tool_uid = int(k)
|
|
|
break
|
|
break
|
|
|
|
|
|
|
|
# parameters that are particular to the current tool
|
|
# parameters that are particular to the current tool
|
|
|
- ncc_overlap = float(self.ncc_tools[tool_uid]["data"]["tools_nccoverlap"]) / 100.0
|
|
|
|
|
- ncc_margin = float(self.ncc_tools[tool_uid]["data"]["tools_nccmargin"])
|
|
|
|
|
- ncc_method = self.ncc_tools[tool_uid]["data"]["tools_nccmethod"]
|
|
|
|
|
- ncc_connect = self.ncc_tools[tool_uid]["data"]["tools_nccconnect"]
|
|
|
|
|
- ncc_contour = self.ncc_tools[tool_uid]["data"]["tools_ncccontour"]
|
|
|
|
|
- has_offset = self.ncc_tools[tool_uid]["data"]["tools_ncc_offset_choice"]
|
|
|
|
|
- ncc_offset = float(self.ncc_tools[tool_uid]["data"]["tools_ncc_offset_value"])
|
|
|
|
|
|
|
+ ncc_overlap = float(self.iso_tools[tool_uid]["data"]["tools_nccoverlap"]) / 100.0
|
|
|
|
|
+ ncc_margin = float(self.iso_tools[tool_uid]["data"]["tools_nccmargin"])
|
|
|
|
|
+ ncc_method = self.iso_tools[tool_uid]["data"]["tools_nccmethod"]
|
|
|
|
|
+ ncc_connect = self.iso_tools[tool_uid]["data"]["tools_nccconnect"]
|
|
|
|
|
+ ncc_contour = self.iso_tools[tool_uid]["data"]["tools_ncccontour"]
|
|
|
|
|
+ has_offset = self.iso_tools[tool_uid]["data"]["tools_ncc_offset_choice"]
|
|
|
|
|
+ ncc_offset = float(self.iso_tools[tool_uid]["data"]["tools_ncc_offset_value"])
|
|
|
|
|
|
|
|
# Get remaining tools offset
|
|
# Get remaining tools offset
|
|
|
offset -= (tool - 1e-12)
|
|
offset -= (tool - 1e-12)
|
|
@@ -2508,18 +2506,18 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
tool = sorted_clear_tools.pop(0)
|
|
tool = sorted_clear_tools.pop(0)
|
|
|
|
|
|
|
|
tool_uid = 0
|
|
tool_uid = 0
|
|
|
- for k, v in self.ncc_tools.items():
|
|
|
|
|
|
|
+ for k, v in self.iso_tools.items():
|
|
|
if float('%.*f' % (self.decimals, v['tooldia'])) == float('%.*f' % (self.decimals, tool)):
|
|
if float('%.*f' % (self.decimals, v['tooldia'])) == float('%.*f' % (self.decimals, tool)):
|
|
|
tool_uid = int(k)
|
|
tool_uid = int(k)
|
|
|
break
|
|
break
|
|
|
|
|
|
|
|
- ncc_overlap = float(self.ncc_tools[tool_uid]["data"]["tools_nccoverlap"]) / 100.0
|
|
|
|
|
- ncc_margin = float(self.ncc_tools[tool_uid]["data"]["tools_nccmargin"])
|
|
|
|
|
- ncc_method = self.ncc_tools[tool_uid]["data"]["tools_nccmethod"]
|
|
|
|
|
- ncc_connect = self.ncc_tools[tool_uid]["data"]["tools_nccconnect"]
|
|
|
|
|
- ncc_contour = self.ncc_tools[tool_uid]["data"]["tools_ncccontour"]
|
|
|
|
|
- has_offset = self.ncc_tools[tool_uid]["data"]["tools_ncc_offset_choice"]
|
|
|
|
|
- ncc_offset = float(self.ncc_tools[tool_uid]["data"]["tools_ncc_offset_value"])
|
|
|
|
|
|
|
+ ncc_overlap = float(self.iso_tools[tool_uid]["data"]["tools_nccoverlap"]) / 100.0
|
|
|
|
|
+ ncc_margin = float(self.iso_tools[tool_uid]["data"]["tools_nccmargin"])
|
|
|
|
|
+ ncc_method = self.iso_tools[tool_uid]["data"]["tools_nccmethod"]
|
|
|
|
|
+ ncc_connect = self.iso_tools[tool_uid]["data"]["tools_nccconnect"]
|
|
|
|
|
+ ncc_contour = self.iso_tools[tool_uid]["data"]["tools_ncccontour"]
|
|
|
|
|
+ has_offset = self.iso_tools[tool_uid]["data"]["tools_ncc_offset_choice"]
|
|
|
|
|
+ ncc_offset = float(self.iso_tools[tool_uid]["data"]["tools_ncc_offset_value"])
|
|
|
|
|
|
|
|
tool_used = tool - 1e-12
|
|
tool_used = tool - 1e-12
|
|
|
cleared_geo[:] = []
|
|
cleared_geo[:] = []
|
|
@@ -2844,7 +2842,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
|
|
|
|
|
# construct a list of all 'tooluid' in the self.tools
|
|
# construct a list of all 'tooluid' in the self.tools
|
|
|
tool_uid_list = []
|
|
tool_uid_list = []
|
|
|
- for tooluid_key in self.ncc_tools:
|
|
|
|
|
|
|
+ for tooluid_key in self.iso_tools:
|
|
|
tool_uid_item = int(tooluid_key)
|
|
tool_uid_item = int(tooluid_key)
|
|
|
tool_uid_list.append(tool_uid_item)
|
|
tool_uid_list.append(tool_uid_item)
|
|
|
|
|
|
|
@@ -2858,7 +2856,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
tooldia = float('%.*f' % (self.decimals, tooldia))
|
|
tooldia = float('%.*f' % (self.decimals, tooldia))
|
|
|
|
|
|
|
|
tool_dias = []
|
|
tool_dias = []
|
|
|
- for k, v in self.ncc_tools.items():
|
|
|
|
|
|
|
+ for k, v in self.iso_tools.items():
|
|
|
for tool_v in v.keys():
|
|
for tool_v in v.keys():
|
|
|
if tool_v == 'tooldia':
|
|
if tool_v == 'tooldia':
|
|
|
tool_dias.append(float('%.*f' % (self.decimals, (v[tool_v]))))
|
|
tool_dias.append(float('%.*f' % (self.decimals, (v[tool_v]))))
|
|
@@ -2868,7 +2866,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
self.ui_connect()
|
|
self.ui_connect()
|
|
|
return 'fail'
|
|
return 'fail'
|
|
|
|
|
|
|
|
- self.ncc_tools.update({
|
|
|
|
|
|
|
+ self.iso_tools.update({
|
|
|
tooluid: {
|
|
tooluid: {
|
|
|
'tooldia': float('%.*f' % (self.decimals, tooldia)),
|
|
'tooldia': float('%.*f' % (self.decimals, tooldia)),
|
|
|
'offset': tool['offset'],
|
|
'offset': tool['offset'],
|
|
@@ -2879,7 +2877,7 @@ class ToolIsolation(AppTool, Gerber):
|
|
|
'solid_geometry': []
|
|
'solid_geometry': []
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
- self.ncc_tools[tooluid]['data']['name'] = '_ncc'
|
|
|
|
|
|
|
+ self.iso_tools[tooluid]['data']['name'] = '_ncc'
|
|
|
|
|
|
|
|
self.app.inform.emit('[success] %s' % _("New tool added to Tool Table."))
|
|
self.app.inform.emit('[success] %s' % _("New tool added to Tool Table."))
|
|
|
|
|
|