- Drilling Tool - fix a bug introduced in the latter changes; when the Tool is launched and there is no Excellon object loaded then the default_data can't be filled in: solved by using the self.app.options in that case

This commit is contained in:
Marius Stanciu
2020-12-12 05:52:37 +02:00
committed by Marius
parent aed970f50c
commit e72787315d
2 changed files with 30 additions and 93 deletions

View File

@@ -348,68 +348,21 @@ class ToolDrilling(AppTool, Excellon):
self.default_data.clear()
# fill in self.default_data values from self.options
for opt_key, opt_val in self.app.options.items():
if opt_key.find('excellon_') == 0:
oname = opt_key[len('excellon_'):]
self.default_data[oname] = deepcopy(opt_val)
if opt_key.find('tools_drill_') == 0:
self.default_data[opt_key] = deepcopy(opt_val)
if opt_key.find('tools_mill_') == 0:
self.default_data[opt_key] = deepcopy(opt_val)
# for opt_key, opt_val in self.app.options.items():
# if opt_key.find('excellon_') == 0:
# oname = opt_key[len('excellon_'):]
# self.default_data[oname] = deepcopy(opt_val)
# if opt_key.find('tools_drill_') == 0:
# self.default_data[opt_key] = deepcopy(opt_val)
# if opt_key.find('tools_mill_') == 0:
# self.default_data[opt_key] = deepcopy(opt_val)
#
if loaded_obj:
self.default_data.update(loaded_obj.options)
else:
self.default_data.update(self.app.options)
self.default_data.update(
{
"name": outname + '_drill',
"plot": loaded_obj.options["plot"],
"solid": loaded_obj.options["solid"],
"multicolored": loaded_obj.options["multicolored"],
"merge_fuse_tools": loaded_obj.options["merge_fuse_tools"],
"format_upper_in": loaded_obj.options["format_upper_in"],
"format_lower_in": loaded_obj.options["format_lower_in"],
"format_upper_mm": loaded_obj.options["format_upper_mm"],
"lower_mm": loaded_obj.options["format_lower_mm"],
"zeros": loaded_obj.options["zeros"],
"tools_drill_tool_order": loaded_obj.options["tools_drill_tool_order"],
"tools_drill_cutz": loaded_obj.options["tools_drill_cutz"],
"tools_drill_multidepth": loaded_obj.options["tools_drill_multidepth"],
"tools_drill_depthperpass": loaded_obj.options["tools_drill_depthperpass"],
"tools_drill_travelz": loaded_obj.options["tools_drill_travelz"],
"tools_drill_endz": loaded_obj.options["tools_drill_endz"],
"tools_drill_endxy": loaded_obj.options["tools_drill_endxy"],
"tools_drill_feedrate_z": loaded_obj.options["tools_drill_feedrate_z"],
"tools_drill_spindlespeed": loaded_obj.options["tools_drill_spindlespeed"],
"tools_drill_dwell": loaded_obj.options["tools_drill_dwell"],
"tools_drill_dwelltime": loaded_obj.options["tools_drill_dwelltime"],
"tools_drill_toolchange": loaded_obj.options["tools_drill_toolchange"],
"tools_drill_toolchangez": loaded_obj.options["tools_drill_toolchangez"],
"tools_drill_ppname_e": loaded_obj.options["tools_drill_ppname_e"],
# Drill Slots
"tools_drill_drill_slots": loaded_obj.options["tools_drill_drill_slots"],
"tools_drill_drill_overlap": loaded_obj.options["tools_drill_drill_overlap"],
"tools_drill_last_drill": loaded_obj.options["tools_drill_last_drill"],
# Advanced Options
"tools_drill_offset": loaded_obj.options["tools_drill_offset"],
"tools_drill_toolchangexy": loaded_obj.options["tools_drill_toolchangexy"],
"tools_drill_startz": loaded_obj.options["tools_drill_startz"],
"tools_drill_feedrate_rapid": loaded_obj.options["tools_drill_feedrate_rapid"],
"tools_drill_z_pdepth": loaded_obj.options["tools_drill_z_pdepth"],
"tools_drill_feedrate_probe": loaded_obj.options["tools_drill_feedrate_probe"],
"tools_drill_spindledir": loaded_obj.options["tools_drill_spindledir"],
"tools_drill_f_plunge": loaded_obj.options["tools_drill_f_plunge"],
"tools_drill_f_retract": loaded_obj.options["tools_drill_f_retract"],
"tools_drill_area_exclusion": loaded_obj.options["tools_drill_area_exclusion"],
"tools_drill_area_shape": loaded_obj.options["tools_drill_area_shape"],
"tools_drill_area_strategy": loaded_obj.options["tools_drill_area_strategy"],
"tools_drill_area_overz": loaded_obj.options["tools_drill_area_overz"],
}
)
self.default_data['name'] = outname + '_drill'
self.first_click = False
self.cursor_pos = None
@@ -433,43 +386,26 @@ class ToolDrilling(AppTool, Excellon):
pass
self.build_tool_ui()
# ########################################
# ########################################
# ####### Fill in the parameters #########
# ########################################
# ########################################
self.ui.cutz_entry.set_value(loaded_obj.options["tools_drill_cutz"])
self.ui.mpass_cb.set_value(loaded_obj.options["tools_drill_multidepth"])
self.ui.maxdepth_entry.set_value(loaded_obj.options["tools_drill_depthperpass"])
self.ui.travelz_entry.set_value(loaded_obj.options["tools_drill_travelz"])
self.ui.feedrate_z_entry.set_value(loaded_obj.options["tools_drill_feedrate_z"])
self.ui.feedrate_rapid_entry.set_value(loaded_obj.options["tools_drill_feedrate_rapid"])
self.ui.spindlespeed_entry.set_value(loaded_obj.options["tools_drill_spindlespeed"])
self.ui.dwell_cb.set_value(loaded_obj.options["tools_drill_dwell"])
self.ui.dwelltime_entry.set_value(loaded_obj.options["tools_drill_dwelltime"])
self.ui.offset_entry.set_value(loaded_obj.options["tools_drill_offset"])
self.ui.toolchange_cb.set_value(loaded_obj.options["tools_drill_toolchange"])
self.ui.toolchangez_entry.set_value(loaded_obj.options["tools_drill_toolchangez"])
self.ui.estartz_entry.set_value(loaded_obj.options["tools_drill_startz"])
self.ui.endz_entry.set_value(loaded_obj.options["tools_drill_endz"])
self.ui.endxy_entry.set_value(loaded_obj.options["tools_drill_endxy"])
self.ui.pdepth_entry.set_value(loaded_obj.options["tools_drill_z_pdepth"])
self.ui.feedrate_probe_entry.set_value(loaded_obj.options["tools_drill_feedrate_probe"])
# #############################################################################################################
# #############################################################################################################
# ################################### Fill in the parameters ##################################################
# #############################################################################################################
# #############################################################################################################
if loaded_obj.options["tools_drill_ppname_e"] in pp_list:
sel_ppname_e = loaded_obj.options["tools_drill_ppname_e"]
# tool parameters
for key in self.tool_form_fields:
self.tool_form_fields[key].set_value(self.default_data[key])
# common parameters
for key in self.general_form_fields:
self.general_form_fields[key].set_value(self.default_data[key])
# preprocessor
if self.default_data["tools_drill_ppname_e"] in pp_list:
sel_ppname_e = self.default_data["tools_drill_ppname_e"]
else:
sel_ppname_e = 'default'
self.ui.pp_excellon_name_cb.set_value(sel_ppname_e)
self.ui.exclusion_cb.set_value(loaded_obj.options["tools_drill_area_exclusion"])
self.ui.strategy_radio.set_value(loaded_obj.options["tools_drill_area_strategy"])
self.ui.over_z_entry.set_value(loaded_obj.options["tools_drill_area_overz"])
self.ui.area_shape_radio.set_value(loaded_obj.options["tools_drill_area_shape"])
# Drill slots - part of the Advanced Excellon params
self.ui.drill_overlap_entry.set_value(loaded_obj.options["tools_drill_drill_overlap"])
self.ui.last_drill_cb.set_value(loaded_obj.options["tools_drill_last_drill"])
self.ui.drill_overlap_label.hide()
self.ui.drill_overlap_entry.hide()
self.ui.last_drill_cb.hide()