- some GUI elements changes

This commit is contained in:
Marius Stanciu 2019-02-23 06:11:42 +02:00 committed by Marius S
parent 21f970204e
commit 2843810ab3
14 changed files with 194 additions and 188 deletions

View File

@ -776,127 +776,121 @@ class App(QtCore.QObject):
# QtCore.QTimer.singleShot(self.defaults["global_defaults_save_period_ms"], auto_save_defaults) # QtCore.QTimer.singleShot(self.defaults["global_defaults_save_period_ms"], auto_save_defaults)
# self.options_form = PreferencesUI() # self.options_form = PreferencesUI()
self.general_options_form = GeneralPreferencesUI()
self.gerber_options_form = GerberPreferencesUI()
self.excellon_options_form = ExcellonPreferencesUI()
self.geometry_options_form = GeometryPreferencesUI()
self.cncjob_options_form = CNCJobPreferencesUI()
self.tools_options_form = ToolsPreferencesUI()
self.options_form_fields = { self.options_form_fields = {
"units": self.general_options_form.general_app_group.units_radio, "units": self.ui.general_options_form.general_app_group.units_radio,
"global_gridx": self.general_options_form.general_gui_group.gridx_entry, "global_gridx": self.ui.general_options_form.general_gui_group.gridx_entry,
"global_gridy": self.general_options_form.general_gui_group.gridy_entry, "global_gridy": self.ui.general_options_form.general_gui_group.gridy_entry,
"global_snap_max": self.general_options_form.general_gui_group.snap_max_dist_entry, "global_snap_max": self.ui.general_options_form.general_gui_group.snap_max_dist_entry,
"gerber_plot": self.gerber_options_form.gerber_gen_group.plot_cb, "gerber_plot": self.ui.gerber_options_form.gerber_gen_group.plot_cb,
"gerber_solid": self.gerber_options_form.gerber_gen_group.solid_cb, "gerber_solid": self.ui.gerber_options_form.gerber_gen_group.solid_cb,
"gerber_multicolored": self.gerber_options_form.gerber_gen_group.multicolored_cb, "gerber_multicolored": self.ui.gerber_options_form.gerber_gen_group.multicolored_cb,
"gerber_isotooldia": self.gerber_options_form.gerber_opt_group.iso_tool_dia_entry, "gerber_isotooldia": self.ui.gerber_options_form.gerber_opt_group.iso_tool_dia_entry,
"gerber_isopasses": self.gerber_options_form.gerber_opt_group.iso_width_entry, "gerber_isopasses": self.ui.gerber_options_form.gerber_opt_group.iso_width_entry,
"gerber_isooverlap": self.gerber_options_form.gerber_opt_group.iso_overlap_entry, "gerber_isooverlap": self.ui.gerber_options_form.gerber_opt_group.iso_overlap_entry,
"gerber_combine_passes": self.gerber_options_form.gerber_opt_group.combine_passes_cb, "gerber_combine_passes": self.ui.gerber_options_form.gerber_opt_group.combine_passes_cb,
"gerber_noncoppermargin": self.gerber_options_form.gerber_opt_group.noncopper_margin_entry, "gerber_noncoppermargin": self.ui.gerber_options_form.gerber_opt_group.noncopper_margin_entry,
"gerber_noncopperrounded": self.gerber_options_form.gerber_opt_group.noncopper_rounded_cb, "gerber_noncopperrounded": self.ui.gerber_options_form.gerber_opt_group.noncopper_rounded_cb,
"gerber_bboxmargin": self.gerber_options_form.gerber_opt_group.bbmargin_entry, "gerber_bboxmargin": self.ui.gerber_options_form.gerber_opt_group.bbmargin_entry,
"gerber_bboxrounded": self.gerber_options_form.gerber_opt_group.bbrounded_cb, "gerber_bboxrounded": self.ui.gerber_options_form.gerber_opt_group.bbrounded_cb,
"excellon_plot": self.excellon_options_form.excellon_gen_group.plot_cb, "excellon_plot": self.ui.excellon_options_form.excellon_gen_group.plot_cb,
"excellon_solid": self.excellon_options_form.excellon_gen_group.solid_cb, "excellon_solid": self.ui.excellon_options_form.excellon_gen_group.solid_cb,
"excellon_format_upper_in": self.excellon_options_form.excellon_gen_group.excellon_format_upper_in_entry, "excellon_format_upper_in": self.ui.excellon_options_form.excellon_gen_group.excellon_format_upper_in_entry,
"excellon_format_lower_in": self.excellon_options_form.excellon_gen_group.excellon_format_lower_in_entry, "excellon_format_lower_in": self.ui.excellon_options_form.excellon_gen_group.excellon_format_lower_in_entry,
"excellon_format_upper_mm": self.excellon_options_form.excellon_gen_group.excellon_format_upper_mm_entry, "excellon_format_upper_mm": self.ui.excellon_options_form.excellon_gen_group.excellon_format_upper_mm_entry,
"excellon_format_lower_mm": self.excellon_options_form.excellon_gen_group.excellon_format_lower_mm_entry, "excellon_format_lower_mm": self.ui.excellon_options_form.excellon_gen_group.excellon_format_lower_mm_entry,
"excellon_zeros": self.excellon_options_form.excellon_gen_group.excellon_zeros_radio, "excellon_zeros": self.ui.excellon_options_form.excellon_gen_group.excellon_zeros_radio,
"excellon_units": self.excellon_options_form.excellon_gen_group.excellon_units_radio, "excellon_units": self.ui.excellon_options_form.excellon_gen_group.excellon_units_radio,
"excellon_optimization_type": self.excellon_options_form.excellon_gen_group.excellon_optimization_radio, "excellon_optimization_type": self.ui.excellon_options_form.excellon_gen_group.excellon_optimization_radio,
"excellon_feedrate_rapid": self.excellon_options_form.excellon_gen_group.feedrate_rapid_entry, "excellon_feedrate_rapid": self.ui.excellon_options_form.excellon_gen_group.feedrate_rapid_entry,
"excellon_toolchangexy": self.excellon_options_form.excellon_gen_group.toolchangexy_entry, "excellon_toolchangexy": self.ui.excellon_options_form.excellon_gen_group.toolchangexy_entry,
"excellon_f_plunge": self.excellon_options_form.excellon_gen_group.fplunge_cb, "excellon_f_plunge": self.ui.excellon_options_form.excellon_gen_group.fplunge_cb,
"excellon_startz": self.excellon_options_form.excellon_gen_group.estartz_entry, "excellon_startz": self.ui.excellon_options_form.excellon_gen_group.estartz_entry,
"excellon_endz": self.excellon_options_form.excellon_gen_group.eendz_entry, "excellon_endz": self.ui.excellon_options_form.excellon_gen_group.eendz_entry,
"excellon_drillz": self.excellon_options_form.excellon_opt_group.cutz_entry, "excellon_drillz": self.ui.excellon_options_form.excellon_opt_group.cutz_entry,
"excellon_travelz": self.excellon_options_form.excellon_opt_group.travelz_entry, "excellon_travelz": self.ui.excellon_options_form.excellon_opt_group.travelz_entry,
"excellon_feedrate": self.excellon_options_form.excellon_opt_group.feedrate_entry, "excellon_feedrate": self.ui.excellon_options_form.excellon_opt_group.feedrate_entry,
"excellon_spindlespeed": self.excellon_options_form.excellon_opt_group.spindlespeed_entry, "excellon_spindlespeed": self.ui.excellon_options_form.excellon_opt_group.spindlespeed_entry,
"excellon_dwell": self.excellon_options_form.excellon_opt_group.dwell_cb, "excellon_dwell": self.ui.excellon_options_form.excellon_opt_group.dwell_cb,
"excellon_dwelltime": self.excellon_options_form.excellon_opt_group.dwelltime_entry, "excellon_dwelltime": self.ui.excellon_options_form.excellon_opt_group.dwelltime_entry,
"excellon_toolchange": self.excellon_options_form.excellon_opt_group.toolchange_cb, "excellon_toolchange": self.ui.excellon_options_form.excellon_opt_group.toolchange_cb,
"excellon_toolchangez": self.excellon_options_form.excellon_opt_group.toolchangez_entry, "excellon_toolchangez": self.ui.excellon_options_form.excellon_opt_group.toolchangez_entry,
"excellon_tooldia": self.excellon_options_form.excellon_opt_group.tooldia_entry, "excellon_tooldia": self.ui.excellon_options_form.excellon_opt_group.tooldia_entry,
"excellon_ppname_e": self.excellon_options_form.excellon_opt_group.pp_excellon_name_cb, "excellon_ppname_e": self.ui.excellon_options_form.excellon_opt_group.pp_excellon_name_cb,
"geometry_plot": self.geometry_options_form.geometry_gen_group.plot_cb, "geometry_plot": self.ui.geometry_options_form.geometry_gen_group.plot_cb,
"geometry_cnctooldia": self.geometry_options_form.geometry_gen_group.cnctooldia_entry, "geometry_cnctooldia": self.ui.geometry_options_form.geometry_gen_group.cnctooldia_entry,
"geometry_segx": self.geometry_options_form.geometry_gen_group.segx_entry, "geometry_segx": self.ui.geometry_options_form.geometry_gen_group.segx_entry,
"geometry_segy": self.geometry_options_form.geometry_gen_group.segy_entry, "geometry_segy": self.ui.geometry_options_form.geometry_gen_group.segy_entry,
"geometry_feedrate_rapid": self.geometry_options_form.geometry_gen_group.cncfeedrate_rapid_entry, "geometry_feedrate_rapid": self.ui.geometry_options_form.geometry_gen_group.cncfeedrate_rapid_entry,
"geometry_f_plunge": self.geometry_options_form.geometry_gen_group.fplunge_cb, "geometry_f_plunge": self.ui.geometry_options_form.geometry_gen_group.fplunge_cb,
"geometry_toolchangexy": self.geometry_options_form.geometry_gen_group.toolchangexy_entry, "geometry_toolchangexy": self.ui.geometry_options_form.geometry_gen_group.toolchangexy_entry,
"geometry_startz": self.geometry_options_form.geometry_gen_group.gstartz_entry, "geometry_startz": self.ui.geometry_options_form.geometry_gen_group.gstartz_entry,
"geometry_endz": self.geometry_options_form.geometry_gen_group.gendz_entry, "geometry_endz": self.ui.geometry_options_form.geometry_gen_group.gendz_entry,
"geometry_extracut": self.geometry_options_form.geometry_gen_group.extracut_cb, "geometry_extracut": self.ui.geometry_options_form.geometry_gen_group.extracut_cb,
"geometry_cutz": self.geometry_options_form.geometry_opt_group.cutz_entry, "geometry_cutz": self.ui.geometry_options_form.geometry_opt_group.cutz_entry,
"geometry_travelz": self.geometry_options_form.geometry_opt_group.travelz_entry, "geometry_travelz": self.ui.geometry_options_form.geometry_opt_group.travelz_entry,
"geometry_feedrate": self.geometry_options_form.geometry_opt_group.cncfeedrate_entry, "geometry_feedrate": self.ui.geometry_options_form.geometry_opt_group.cncfeedrate_entry,
"geometry_feedrate_z": self.geometry_options_form.geometry_opt_group.cncplunge_entry, "geometry_feedrate_z": self.ui.geometry_options_form.geometry_opt_group.cncplunge_entry,
"geometry_spindlespeed": self.geometry_options_form.geometry_opt_group.cncspindlespeed_entry, "geometry_spindlespeed": self.ui.geometry_options_form.geometry_opt_group.cncspindlespeed_entry,
"geometry_dwell": self.geometry_options_form.geometry_opt_group.dwell_cb, "geometry_dwell": self.ui.geometry_options_form.geometry_opt_group.dwell_cb,
"geometry_dwelltime": self.geometry_options_form.geometry_opt_group.dwelltime_entry, "geometry_dwelltime": self.ui.geometry_options_form.geometry_opt_group.dwelltime_entry,
"geometry_ppname_g": self.geometry_options_form.geometry_opt_group.pp_geometry_name_cb, "geometry_ppname_g": self.ui.geometry_options_form.geometry_opt_group.pp_geometry_name_cb,
"geometry_toolchange": self.geometry_options_form.geometry_opt_group.toolchange_cb, "geometry_toolchange": self.ui.geometry_options_form.geometry_opt_group.toolchange_cb,
"geometry_toolchangez": self.geometry_options_form.geometry_opt_group.toolchangez_entry, "geometry_toolchangez": self.ui.geometry_options_form.geometry_opt_group.toolchangez_entry,
"geometry_depthperpass": self.geometry_options_form.geometry_opt_group.depthperpass_entry, "geometry_depthperpass": self.ui.geometry_options_form.geometry_opt_group.depthperpass_entry,
"geometry_multidepth": self.geometry_options_form.geometry_opt_group.multidepth_cb, "geometry_multidepth": self.ui.geometry_options_form.geometry_opt_group.multidepth_cb,
"cncjob_plot": self.cncjob_options_form.cncjob_gen_group.plot_cb, "cncjob_plot": self.ui.cncjob_options_form.cncjob_gen_group.plot_cb,
"cncjob_tooldia": self.cncjob_options_form.cncjob_gen_group.tooldia_entry, "cncjob_tooldia": self.ui.cncjob_options_form.cncjob_gen_group.tooldia_entry,
"cncjob_prepend": self.cncjob_options_form.cncjob_opt_group.prepend_text, "cncjob_prepend": self.ui.cncjob_options_form.cncjob_opt_group.prepend_text,
"cncjob_append": self.cncjob_options_form.cncjob_opt_group.append_text, "cncjob_append": self.ui.cncjob_options_form.cncjob_opt_group.append_text,
"tools_ncctools": self.tools_options_form.tools_ncc_group.ncc_tool_dia_entry, "tools_ncctools": self.ui.tools_options_form.tools_ncc_group.ncc_tool_dia_entry,
"tools_nccoverlap": self.tools_options_form.tools_ncc_group.ncc_overlap_entry, "tools_nccoverlap": self.ui.tools_options_form.tools_ncc_group.ncc_overlap_entry,
"tools_nccmargin": self.tools_options_form.tools_ncc_group.ncc_margin_entry, "tools_nccmargin": self.ui.tools_options_form.tools_ncc_group.ncc_margin_entry,
"tools_cutouttooldia": self.tools_options_form.tools_cutout_group.cutout_tooldia_entry, "tools_cutouttooldia": self.ui.tools_options_form.tools_cutout_group.cutout_tooldia_entry,
"tools_cutoutmargin": self.tools_options_form.tools_cutout_group.cutout_margin_entry, "tools_cutoutmargin": self.ui.tools_options_form.tools_cutout_group.cutout_margin_entry,
"tools_cutoutgapsize": self.tools_options_form.tools_cutout_group.cutout_gap_entry, "tools_cutoutgapsize": self.ui.tools_options_form.tools_cutout_group.cutout_gap_entry,
"tools_gaps_rect": self.tools_options_form.tools_cutout_group.gaps_radio, "tools_gaps_rect": self.ui.tools_options_form.tools_cutout_group.gaps_radio,
"tools_gaps_ff": self.tools_options_form.tools_cutout_group.gaps_combo, "tools_gaps_ff": self.ui.tools_options_form.tools_cutout_group.gaps_combo,
"tools_painttooldia": self.tools_options_form.tools_paint_group.painttooldia_entry, "tools_painttooldia": self.ui.tools_options_form.tools_paint_group.painttooldia_entry,
"tools_paintoverlap": self.tools_options_form.tools_paint_group.paintoverlap_entry, "tools_paintoverlap": self.ui.tools_options_form.tools_paint_group.paintoverlap_entry,
"tools_paintmargin": self.tools_options_form.tools_paint_group.paintmargin_entry, "tools_paintmargin": self.ui.tools_options_form.tools_paint_group.paintmargin_entry,
"tools_paintmethod": self.tools_options_form.tools_paint_group.paintmethod_combo, "tools_paintmethod": self.ui.tools_options_form.tools_paint_group.paintmethod_combo,
"tools_selectmethod": self.tools_options_form.tools_paint_group.selectmethod_combo, "tools_selectmethod": self.ui.tools_options_form.tools_paint_group.selectmethod_combo,
"tools_pathconnect": self.tools_options_form.tools_paint_group.pathconnect_cb, "tools_pathconnect": self.ui.tools_options_form.tools_paint_group.pathconnect_cb,
"tools_paintcontour": self.tools_options_form.tools_paint_group.contour_cb, "tools_paintcontour": self.ui.tools_options_form.tools_paint_group.contour_cb,
"tools_2sided_mirror_axis": self.tools_options_form.tools_2sided_group.mirror_axis_radio, "tools_2sided_mirror_axis": self.ui.tools_options_form.tools_2sided_group.mirror_axis_radio,
"tools_2sided_axis_loc": self.tools_options_form.tools_2sided_group.axis_location_radio, "tools_2sided_axis_loc": self.ui.tools_options_form.tools_2sided_group.axis_location_radio,
"tools_2sided_drilldia": self.tools_options_form.tools_2sided_group.drill_dia_entry, "tools_2sided_drilldia": self.ui.tools_options_form.tools_2sided_group.drill_dia_entry,
"tools_film_type": self.tools_options_form.tools_film_group.film_type_radio, "tools_film_type": self.ui.tools_options_form.tools_film_group.film_type_radio,
"tools_film_boundary": self.tools_options_form.tools_film_group.film_boundary_entry, "tools_film_boundary": self.ui.tools_options_form.tools_film_group.film_boundary_entry,
"tools_film_scale": self.tools_options_form.tools_film_group.film_scale_entry, "tools_film_scale": self.ui.tools_options_form.tools_film_group.film_scale_entry,
"tools_panelize_spacing_columns": self.tools_options_form.tools_panelize_group.pspacing_columns, "tools_panelize_spacing_columns": self.ui.tools_options_form.tools_panelize_group.pspacing_columns,
"tools_panelize_spacing_rows": self.tools_options_form.tools_panelize_group.pspacing_rows, "tools_panelize_spacing_rows": self.ui.tools_options_form.tools_panelize_group.pspacing_rows,
"tools_panelize_columns": self.tools_options_form.tools_panelize_group.pcolumns, "tools_panelize_columns": self.ui.tools_options_form.tools_panelize_group.pcolumns,
"tools_panelize_rows": self.tools_options_form.tools_panelize_group.prows, "tools_panelize_rows": self.ui.tools_options_form.tools_panelize_group.prows,
"tools_panelize_constrain": self.tools_options_form.tools_panelize_group.pconstrain_cb, "tools_panelize_constrain": self.ui.tools_options_form.tools_panelize_group.pconstrain_cb,
"tools_panelize_constrainx": self.tools_options_form.tools_panelize_group.px_width_entry, "tools_panelize_constrainx": self.ui.tools_options_form.tools_panelize_group.px_width_entry,
"tools_panelize_constrainy": self.tools_options_form.tools_panelize_group.py_height_entry "tools_panelize_constrainy": self.ui.tools_options_form.tools_panelize_group.py_height_entry
} }
for name in list(self.postprocessors.keys()): for name in list(self.postprocessors.keys()):
self.geometry_options_form.geometry_opt_group.pp_geometry_name_cb.addItem(name) self.ui.geometry_options_form.geometry_opt_group.pp_geometry_name_cb.addItem(name)
self.excellon_options_form.excellon_opt_group.pp_excellon_name_cb.addItem(name) self.ui.excellon_options_form.excellon_opt_group.pp_excellon_name_cb.addItem(name)
self.options = LoudDict() self.options = LoudDict()
self.options.set_change_callback(self.on_options_dict_change) self.options.set_change_callback(self.on_options_dict_change)
@ -1298,7 +1292,7 @@ class App(QtCore.QObject):
############################### ###############################
### GUI PREFERENCES SIGNALS ### ### GUI PREFERENCES SIGNALS ###
############################### ###############################
self.general_options_form.general_app_group.units_radio.group_toggle_fn = self.on_toggle_units self.ui.general_options_form.general_app_group.units_radio.group_toggle_fn = self.on_toggle_units
self.ui.general_defaults_form.general_app_group.language_apply_btn.clicked.connect(self.on_language_apply) self.ui.general_defaults_form.general_app_group.language_apply_btn.clicked.connect(self.on_language_apply)
############################### ###############################
@ -1360,7 +1354,7 @@ class App(QtCore.QObject):
self.on_excellon_defaults_button) self.on_excellon_defaults_button)
# Load the defaults values into the Excellon Format and Excellon Zeros fields # Load the defaults values into the Excellon Format and Excellon Zeros fields
self.excellon_options_form.excellon_opt_group.excellon_defaults_button.clicked.connect( self.ui.excellon_options_form.excellon_opt_group.excellon_defaults_button.clicked.connect(
self.on_excellon_options_button) self.on_excellon_options_button)
# this is a flag to signal to other tools that the ui tooltab is locked and not accessible # this is a flag to signal to other tools that the ui tooltab is locked and not accessible
@ -2946,7 +2940,7 @@ class App(QtCore.QObject):
return return
# If option is the same, then ignore # If option is the same, then ignore
if self.general_options_form.general_app_group.units_radio.get_value().upper() == self.options["units"].upper(): if self.ui.general_options_form.general_app_group.units_radio.get_value().upper() == self.options["units"].upper():
self.log.debug("on_toggle_units(): Same as options, so ignoring.") self.log.debug("on_toggle_units(): Same as options, so ignoring.")
return return
@ -2980,7 +2974,7 @@ class App(QtCore.QObject):
# The scaling factor depending on choice of units. # The scaling factor depending on choice of units.
factor = 1/25.4 factor = 1/25.4
if self.general_options_form.general_app_group.units_radio.get_value().upper() == 'MM': if self.ui.general_options_form.general_app_group.units_radio.get_value().upper() == 'MM':
factor = 25.4 factor = 25.4
@ -3010,7 +3004,7 @@ class App(QtCore.QObject):
self.ui.grid_gap_y_entry.set_value(float(self.ui.grid_gap_y_entry.get_value()) * factor) self.ui.grid_gap_y_entry.set_value(float(self.ui.grid_gap_y_entry.get_value()) * factor)
for obj in self.collection.get_list(): for obj in self.collection.get_list():
units = self.general_options_form.general_app_group.units_radio.get_value().upper() units = self.ui.general_options_form.general_app_group.units_radio.get_value().upper()
obj.convert_units(units) obj.convert_units(units)
# make that the properties stored in the object are also updated # make that the properties stored in the object are also updated
@ -3030,10 +3024,10 @@ class App(QtCore.QObject):
else: else:
# Undo toggling # Undo toggling
self.toggle_units_ignore = True self.toggle_units_ignore = True
if self.general_options_form.general_app_group.units_radio.get_value().upper() == 'MM': if self.ui.general_options_form.general_app_group.units_radio.get_value().upper() == 'MM':
self.general_options_form.general_app_group.units_radio.set_value('IN') self.ui.general_options_form.general_app_group.units_radio.set_value('IN')
else: else:
self.general_options_form.general_app_group.units_radio.set_value('MM') self.ui.general_options_form.general_app_group.units_radio.set_value('MM')
self.toggle_units_ignore = False self.toggle_units_ignore = False
self.inform.emit("[WARNING_NOTCL]Units conversion cancelled.") self.inform.emit("[WARNING_NOTCL]Units conversion cancelled.")
@ -3041,9 +3035,9 @@ class App(QtCore.QObject):
def on_toggle_units_click(self): def on_toggle_units_click(self):
if self.options["units"] == 'MM': if self.options["units"] == 'MM':
self.general_options_form.general_app_group.units_radio.set_value("IN") self.ui.general_options_form.general_app_group.units_radio.set_value("IN")
else: else:
self.general_options_form.general_app_group.units_radio.set_value("MM") self.ui.general_options_form.general_app_group.units_radio.set_value("MM")
self.on_toggle_units() self.on_toggle_units()
def on_language_apply(self): def on_language_apply(self):
@ -3138,12 +3132,12 @@ class App(QtCore.QObject):
self.cnc_form = self.ui.cncjob_defaults_form self.cnc_form = self.ui.cncjob_defaults_form
self.tools_form = self.ui.tools_defaults_form self.tools_form = self.ui.tools_defaults_form
elif sel == 1: elif sel == 1:
self.gen_form = self.general_options_form self.gen_form = self.ui.general_options_form
self.ger_form = self.gerber_options_form self.ger_form = self.ui.gerber_options_form
self.exc_form = self.excellon_options_form self.exc_form = self.ui.excellon_options_form
self.geo_form = self.geometry_options_form self.geo_form = self.ui.geometry_options_form
self.cnc_form = self.cncjob_options_form self.cnc_form = self.ui.cncjob_options_form
self.tools_form = self.tools_options_form self.tools_form = self.ui.tools_options_form
else: else:
return return
@ -3671,7 +3665,7 @@ class App(QtCore.QObject):
def on_tool_add_keypress(self): def on_tool_add_keypress(self):
## Current application units in Upper Case ## Current application units in Upper Case
self.units = self.general_options_form.general_app_group.units_radio.get_value().upper() self.units = self.ui.general_options_form.general_app_group.units_radio.get_value().upper()
notebook_widget_name = self.ui.notebook.currentWidget().objectName() notebook_widget_name = self.ui.notebook.currentWidget().objectName()
@ -4262,7 +4256,7 @@ class App(QtCore.QObject):
return 0 return 0
def populate_cmenu_grids(self): def populate_cmenu_grids(self):
units = self.general_options_form.general_app_group.units_radio.get_value().lower() units = self.ui.general_options_form.general_app_group.units_radio.get_value().lower()
self.ui.cmenu_gridmenu.clear() self.ui.cmenu_gridmenu.clear()
sorted_list = sorted(self.defaults["global_grid_context_menu"][str(units)]) sorted_list = sorted(self.defaults["global_grid_context_menu"][str(units)])
@ -4283,7 +4277,7 @@ class App(QtCore.QObject):
def on_grid_add(self): def on_grid_add(self):
## Current application units in lower Case ## Current application units in lower Case
units = self.general_options_form.general_app_group.units_radio.get_value().lower() units = self.ui.general_options_form.general_app_group.units_radio.get_value().lower()
grid_add_popup = FCInputDialog(title="New Grid ...", grid_add_popup = FCInputDialog(title="New Grid ...",
text='Enter a Grid VAlue:', text='Enter a Grid VAlue:',
@ -4310,7 +4304,7 @@ class App(QtCore.QObject):
def on_grid_delete(self): def on_grid_delete(self):
## Current application units in lower Case ## Current application units in lower Case
units = self.general_options_form.general_app_group.units_radio.get_value().lower() units = self.ui.general_options_form.general_app_group.units_radio.get_value().lower()
grid_del_popup = FCInputDialog(title="Delete Grid ...", grid_del_popup = FCInputDialog(title="Delete Grid ...",
text='Enter a Grid Value:', text='Enter a Grid Value:',
@ -5754,7 +5748,7 @@ class App(QtCore.QObject):
ezeros = self.defaults["excellon_exp_zeros"] ezeros = self.defaults["excellon_exp_zeros"]
eformat = self.defaults[ "excellon_exp_format"] eformat = self.defaults[ "excellon_exp_format"]
fc_units = self.general_options_form.general_app_group.units_radio.get_value().upper() fc_units = self.ui.general_options_form.general_app_group.units_radio.get_value().upper()
if fc_units == 'MM': if fc_units == 'MM':
factor = 1 if eunits == 'METRIC' else 0.03937 factor = 1 if eunits == 'METRIC' else 0.03937
else: else:
@ -5872,7 +5866,7 @@ class App(QtCore.QObject):
return "Could not retrieve object: %s" % obj_name return "Could not retrieve object: %s" % obj_name
# updated units # updated units
units = self.general_options_form.general_app_group.units_radio.get_value().upper() units = self.ui.general_options_form.general_app_group.units_radio.get_value().upper()
if units == 'IN' or units == 'INCH': if units == 'IN' or units == 'INCH':
units = 'INCH' units = 'INCH'
elif units == 'MM' or units == 'METIRC': elif units == 'MM' or units == 'METIRC':
@ -5927,7 +5921,7 @@ class App(QtCore.QObject):
"Only Geometry and Gerber are supported") "Only Geometry and Gerber are supported")
return return
units = self.general_options_form.general_app_group.units_radio.get_value().upper() units = self.ui.general_options_form.general_app_group.units_radio.get_value().upper()
def obj_init(geo_obj, app_obj): def obj_init(geo_obj, app_obj):
geo_obj.import_svg(filename, obj_type, units=units) geo_obj.import_svg(filename, obj_type, units=units)
@ -5969,7 +5963,7 @@ class App(QtCore.QObject):
"Only Geometry and Gerber are supported") "Only Geometry and Gerber are supported")
return return
units = self.general_options_form.general_app_group.units_radio.get_value().upper() units = self.ui.general_options_form.general_app_group.units_radio.get_value().upper()
def obj_init(geo_obj, app_obj): def obj_init(geo_obj, app_obj):
geo_obj.import_dxf(filename, obj_type, units=units) geo_obj.import_dxf(filename, obj_type, units=units)
@ -6018,7 +6012,7 @@ class App(QtCore.QObject):
# Object name # Object name
name = outname or filename.split('/')[-1].split('\\')[-1] name = outname or filename.split('/')[-1].split('\\')[-1]
units = self.general_options_form.general_app_group.units_radio.get_value() units = self.ui.general_options_form.general_app_group.units_radio.get_value()
self.new_object(obj_type, name, obj_init) self.new_object(obj_type, name, obj_init)
self.progress.emit(20) self.progress.emit(20)

View File

@ -346,7 +346,7 @@ class TextInputTool(FlatCAMTool):
font_name=self.font_name, font_name=self.font_name,
font_size=font_to_geo_size, font_size=font_to_geo_size,
font_type=font_to_geo_type, font_type=font_to_geo_type,
units=self.app.general_options_form.general_app_group.units_radio.get_value().upper()) units=self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper())
def font_family(self, font): def font_family(self, font):
self.text_input_entry.selectAll() self.text_input_entry.selectAll()
@ -1483,7 +1483,7 @@ class TransformEditorTool(FlatCAMTool):
"[WARNING_NOTCL] Geometry shape rotate cancelled...") "[WARNING_NOTCL] Geometry shape rotate cancelled...")
def on_offx_key(self): def on_offx_key(self):
units = self.app.general_options_form.general_app_group.units_radio.get_value().lower() units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().lower()
val_box = FCInputDialog(title="Offset on X axis ...", val_box = FCInputDialog(title="Offset on X axis ...",
text=('Enter a distance Value (%s):' % str(units)), text=('Enter a distance Value (%s):' % str(units)),
@ -1502,7 +1502,7 @@ class TransformEditorTool(FlatCAMTool):
"[WARNING_NOTCL] Geometry shape offset X cancelled...") "[WARNING_NOTCL] Geometry shape offset X cancelled...")
def on_offy_key(self): def on_offy_key(self):
units = self.app.general_options_form.general_app_group.units_radio.get_value().lower() units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().lower()
val_box = FCInputDialog(title="Offset on Y axis ...", val_box = FCInputDialog(title="Offset on Y axis ...",
text=('Enter a distance Value (%s):' % str(units)), text=('Enter a distance Value (%s):' % str(units)),
@ -4985,7 +4985,7 @@ class FlatCAMExcEditor(QtCore.QObject):
self.move_timer.setSingleShot(True) self.move_timer.setSingleShot(True)
## Current application units in Upper Case ## Current application units in Upper Case
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().upper() self.units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper()
self.key = None # Currently pressed key self.key = None # Currently pressed key
self.modifiers = None self.modifiers = None
@ -5059,7 +5059,7 @@ class FlatCAMExcEditor(QtCore.QObject):
def set_ui(self): def set_ui(self):
# updated units # updated units
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().upper() self.units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper()
self.olddia_newdia.clear() self.olddia_newdia.clear()
self.tool2tooldia.clear() self.tool2tooldia.clear()
@ -5099,7 +5099,7 @@ class FlatCAMExcEditor(QtCore.QObject):
pass pass
# updated units # updated units
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().upper() self.units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper()
# make a new name for the new Excellon object (the one with edited content) # make a new name for the new Excellon object (the one with edited content)
self.edited_obj_name = self.exc_obj.options['name'] self.edited_obj_name = self.exc_obj.options['name']

View File

@ -1458,6 +1458,13 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.cncjob_defaults_form = CNCJobPreferencesUI() self.cncjob_defaults_form = CNCJobPreferencesUI()
self.tools_defaults_form = ToolsPreferencesUI() self.tools_defaults_form = ToolsPreferencesUI()
self.general_options_form = GeneralPreferencesUI()
self.gerber_options_form = GerberPreferencesUI()
self.excellon_options_form = ExcellonPreferencesUI()
self.geometry_options_form = GeometryPreferencesUI()
self.cncjob_options_form = CNCJobPreferencesUI()
self.tools_options_form = ToolsPreferencesUI()
QtWidgets.qApp.installEventFilter(self) QtWidgets.qApp.installEventFilter(self)
# restore the Toolbar State from file # restore the Toolbar State from file
@ -1885,9 +1892,9 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
# Change Units # Change Units
if key == QtCore.Qt.Key_Q: if key == QtCore.Qt.Key_Q:
if self.app.options["units"] == 'MM': if self.app.options["units"] == 'MM':
self.app.general_options_form.general_app_group.units_radio.set_value("IN") self.app.ui.general_options_form.general_app_group.units_radio.set_value("IN")
else: else:
self.app.general_options_form.general_app_group.units_radio.set_value("MM") self.app.ui.general_options_form.general_app_group.units_radio.set_value("MM")
self.app.on_toggle_units() self.app.on_toggle_units()
# Rotate Object by 90 degree CW # Rotate Object by 90 degree CW
@ -2354,7 +2361,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
if key == QtCore.Qt.Key_T or key == 'T': if key == QtCore.Qt.Key_T or key == 'T':
self.app.exc_editor.launched_from_shortcuts = True self.app.exc_editor.launched_from_shortcuts = True
## Current application units in Upper Case ## Current application units in Upper Case
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().upper() self.units = self.general_defaults_group.general_app_group.units_radio.get_value().upper()
tool_add_popup = FCInputDialog(title="New Tool ...", tool_add_popup = FCInputDialog(title="New Tool ...",
text='Enter a Tool Diameter:', text='Enter a Tool Diameter:',
min=0.0000, max=99.9999, decimals=4) min=0.0000, max=99.9999, decimals=4)

View File

@ -3533,7 +3533,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
self.ui.geo_tools_table.setCurrentItem(self.ui.geo_tools_table.item(row, 0)) self.ui.geo_tools_table.setCurrentItem(self.ui.geo_tools_table.item(row, 0))
def export_dxf(self): def export_dxf(self):
units = self.app.general_options_form.general_app_group.units_radio.get_value().upper() units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper()
dwg = None dwg = None
try: try:
dwg = ezdxf.new('R2010') dwg = ezdxf.new('R2010')

View File

@ -451,9 +451,9 @@ class ObjectCollection(QtCore.QAbstractItemModel):
# # Change Units # # Change Units
# if key == QtCore.Qt.Key_Q: # if key == QtCore.Qt.Key_Q:
# if self.app.options["units"] == 'MM': # if self.app.options["units"] == 'MM':
# self.app.general_options_form.general_app_group.units_radio.set_value("IN") # self.app.ui.general_options_form.general_app_group.units_radio.set_value("IN")
# else: # else:
# self.app.general_options_form.general_app_group.units_radio.set_value("MM") # self.app.ui.general_options_form.general_app_group.units_radio.set_value("MM")
# self.app.on_toggle_units() # self.app.on_toggle_units()
# #
# # Rotate Object by 90 degree CW # # Rotate Object by 90 degree CW

View File

@ -65,7 +65,7 @@ class PlotCanvas(QtCore.QObject):
self.draw_workspace() self.draw_workspace()
# if self.app.defaults['global_workspace'] is True: # if self.app.defaults['global_workspace'] is True:
# if self.app.general_options_form.general_app_group.units_radio.get_value().upper() == 'MM': # if self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper() == 'MM':
# self.wkspace_t = Line(pos=) # self.wkspace_t = Line(pos=)
self.shape_collections = [] self.shape_collections = []
@ -92,7 +92,7 @@ class PlotCanvas(QtCore.QObject):
a3p_mm = np.array([(0, 0), (297, 0), (297, 420), (0, 420)]) a3p_mm = np.array([(0, 0), (297, 0), (297, 420), (0, 420)])
a3l_mm = np.array([(0, 0), (420, 0), (420, 297), (0, 297)]) a3l_mm = np.array([(0, 0), (420, 0), (420, 297), (0, 297)])
if self.app.general_options_form.general_app_group.units_radio.get_value().upper() == 'MM': if self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper() == 'MM':
if self.app.defaults['global_workspaceT'] == 'A4P': if self.app.defaults['global_workspaceT'] == 'A4P':
a = a4p_mm a = a4p_mm
elif self.app.defaults['global_workspaceT'] == 'A4L': elif self.app.defaults['global_workspaceT'] == 'A4L':

View File

@ -17,6 +17,7 @@ CAD program, and create G-Code for Isolation routing.
- added true fullscreen support (for Windows OS) - added true fullscreen support (for Windows OS)
- added the ability of context menu inside the GuiElements.FCCombobox() object. - added the ability of context menu inside the GuiElements.FCCombobox() object.
- remade the UI for ToolSolderPaste. The object comboboxes now have context menu's that allow object deletion. Also the last object created is set as current item in comboboxes. - remade the UI for ToolSolderPaste. The object comboboxes now have context menu's that allow object deletion. Also the last object created is set as current item in comboboxes.
- some GUI elements changes
21.02.2019 21.02.2019

View File

@ -6314,7 +6314,7 @@ class CNCjob(Geometry):
temp_gcode = '' temp_gcode = ''
header_start = False header_start = False
header_stop = False header_stop = False
units = self.app.general_options_form.general_app_group.units_radio.get_value().upper() units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper()
lines = StringIO(g) lines = StringIO(g)
for line in lines: for line in lines:

View File

@ -238,7 +238,7 @@ class ToolCalculator(FlatCAMTool):
FlatCAMTool.install(self, icon, separator, shortcut='ALT+C', **kwargs) FlatCAMTool.install(self, icon, separator, shortcut='ALT+C', **kwargs)
def set_tool_ui(self): def set_tool_ui(self):
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().upper() self.units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper()
## Initialize form ## Initialize form
self.mm_entry.set_value('0') self.mm_entry.set_value('0')

View File

@ -12,7 +12,7 @@ class Measurement(FlatCAMTool):
def __init__(self, app): def __init__(self, app):
FlatCAMTool.__init__(self, app) FlatCAMTool.__init__(self, app)
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().lower() self.units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().lower()
## Title ## Title
title_label = QtWidgets.QLabel("<font size=4><b>%s</b></font><br>" % self.toolName) title_label = QtWidgets.QLabel("<font size=4><b>%s</b></font><br>" % self.toolName)
@ -173,7 +173,7 @@ class Measurement(FlatCAMTool):
# Switch notebook to tool page # Switch notebook to tool page
self.app.ui.notebook.setCurrentWidget(self.app.ui.tool_tab) self.app.ui.notebook.setCurrentWidget(self.app.ui.tool_tab)
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().lower() self.units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().lower()
self.show() self.show()
def toggle(self): def toggle(self):
@ -210,7 +210,7 @@ class Measurement(FlatCAMTool):
else: else:
# ENABLE the Measuring TOOL # ENABLE the Measuring TOOL
self.active = True self.active = True
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().lower() self.units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().lower()
# we disconnect the mouse/key handlers from wherever the measurement tool was called # we disconnect the mouse/key handlers from wherever the measurement tool was called
if self.app.call_source == 'app': if self.app.call_source == 'app':

View File

@ -339,13 +339,13 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.obj_name = "" self.obj_name = ""
self.ncc_obj = None self.ncc_obj = None
self.tool_type_item_options = ["C1", "C2", "C3", "C4", "B", "V"] self.tool_type_item_options = ["C1", "C2", "C3", "C4", "B", "V"]
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().upper() self.units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper()
def build_ui(self): def build_ui(self):
self.ui_disconnect() self.ui_disconnect()
# updated units # updated units
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().upper() self.units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper()
if self.units == "IN": if self.units == "IN":
self.addtool_entry.set_value(0.039) self.addtool_entry.set_value(0.039)

View File

@ -347,7 +347,7 @@ class ToolPaint(FlatCAMTool, Gerber):
self.paintoverlap_entry.set_value(self.default_data["paintoverlap"]) self.paintoverlap_entry.set_value(self.default_data["paintoverlap"])
# updated units # updated units
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().upper() self.units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper()
if self.units == "IN": if self.units == "IN":
self.addtool_entry.set_value(0.039) self.addtool_entry.set_value(0.039)
@ -415,7 +415,7 @@ class ToolPaint(FlatCAMTool, Gerber):
pass pass
# updated units # updated units
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().upper() self.units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper()
sorted_tools = [] sorted_tools = []
for k, v in self.paint_tools.items(): for k, v in self.paint_tools.items():

View File

@ -103,10 +103,10 @@ class Properties(FlatCAMTool):
width = abs(ymax - ymin) width = abs(ymax - ymin)
self.addChild(dims, ['Length:', '%.4f %s' % ( self.addChild(dims, ['Length:', '%.4f %s' % (
length, self.app.general_options_form.general_app_group.units_radio.get_value().lower())], True) length, self.app.ui.general_options_form.general_app_group.units_radio.get_value().lower())], True)
self.addChild(dims, ['Width:', '%.4f %s' % ( self.addChild(dims, ['Width:', '%.4f %s' % (
width, self.app.general_options_form.general_app_group.units_radio.get_value().lower())], True) width, self.app.ui.general_options_form.general_app_group.units_radio.get_value().lower())], True)
if self.app.general_options_form.general_app_group.units_radio.get_value().lower() == 'mm': if self.app.ui.general_options_form.general_app_group.units_radio.get_value().lower() == 'mm':
area = (length * width) / 100 area = (length * width) / 100
self.addChild(dims, ['Box Area:', '%.4f %s' % (area, 'cm2')], True) self.addChild(dims, ['Box Area:', '%.4f %s' % (area, 'cm2')], True)
else: else:

View File

@ -8,6 +8,8 @@ from FlatCAMObj import FlatCAMGeometry, FlatCAMExcellon, FlatCAMGerber
from PyQt5 import QtGui, QtCore, QtWidgets from PyQt5 import QtGui, QtCore, QtWidgets
from copy import copy,deepcopy from copy import copy,deepcopy
from shapely.geometry import MultiPolygon, Polygon, LineString
class SolderPaste(FlatCAMTool): class SolderPaste(FlatCAMTool):
@ -466,7 +468,7 @@ class SolderPaste(FlatCAMTool):
self.name = "" self.name = ""
self.obj = None self.obj = None
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().upper() self.units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper()
for name in list(self.app.postprocessors.keys()): for name in list(self.app.postprocessors.keys()):
# populate only with postprocessor files that start with 'Paste_' # populate only with postprocessor files that start with 'Paste_'
@ -484,7 +486,7 @@ class SolderPaste(FlatCAMTool):
self.ui_disconnect() self.ui_disconnect()
# updated units # updated units
self.units = self.app.general_options_form.general_app_group.units_radio.get_value().upper() self.units = self.app.ui.general_options_form.general_app_group.units_radio.get_value().upper()
sorted_tools = [] sorted_tools = []
for k, v in self.tooltable_tools.items(): for k, v in self.tooltable_tools.items():
@ -647,7 +649,6 @@ class SolderPaste(FlatCAMTool):
idx = self.cnc_obj_combo.findText(obj_name) idx = self.cnc_obj_combo.findText(obj_name)
if idx != -1: if idx != -1:
self.cnc_obj_combo.setCurrentIndex(idx) self.cnc_obj_combo.setCurrentIndex(idx)
print(obj_name)
def read_form_to_options(self): def read_form_to_options(self):
""" """
@ -925,7 +926,7 @@ class SolderPaste(FlatCAMTool):
self.on_create_geo(name=name, work_object=obj) self.on_create_geo(name=name, work_object=obj)
def on_create_geo(self, name, work_object): def on_create_geo(self, name, work_object, use_thread=True):
""" """
The actual work for creating solderpaste dispensing geometry is done here. The actual work for creating solderpaste dispensing geometry is done here.
@ -958,47 +959,48 @@ class SolderPaste(FlatCAMTool):
geo_obj.special_group = 'solder_paste_tool' geo_obj.special_group = 'solder_paste_tool'
def solder_line(p, offset): def solder_line(p, offset):
xmin, ymin, xmax, ymax = p.bounds x_min, y_min, x_max, y_max = p.bounds
min = [xmin, ymin] diag_1_intersect = LineString([(x_min, y_min), (x_max, y_max)]).intersection(p)
max = [xmax, ymax] diag_2_intersect = LineString([(x_min, y_max), (x_max, y_min)]).intersection(p)
min_r = [xmin, ymax]
max_r = [xmax, ymin]
diagonal_1 = LineString([min, max])
diagonal_2 = LineString([min_r, max_r])
if self.units == 'MM': if self.units == 'MM':
round_diag_1 = round(diagonal_1.intersection(p).length, 1) round_diag_1 = round(diag_1_intersect.length, 1)
round_diag_2 = round(diagonal_2.intersection(p).length, 1) round_diag_2 = round(diag_2_intersect.length, 1)
else: else:
round_diag_1 = round(diagonal_1.intersection(p).length, 2) round_diag_1 = round(diag_1_intersect.length, 2)
round_diag_2 = round(diagonal_2.intersection(p).length, 2) round_diag_2 = round(diag_2_intersect.length, 2)
if round_diag_1 == round_diag_2: if round_diag_1 == round_diag_2:
l = distance((xmin, ymin), (xmax, ymin)) l = distance((x_min, y_min), (x_max, y_min))
h = distance((xmin, ymin), (xmin, ymax)) h = distance((x_min, y_min), (x_min, y_max))
if offset >= l /2 or offset >= h / 2: if offset >= l /2 or offset >= h / 2:
return "fail" return "fail"
if l > h: if l > h:
h_half = h / 2 h_half = h / 2
start = [xmin, (ymin + h_half)] start = [x_min, (y_min + h_half)]
stop = [(xmin + l), (ymin + h_half)] stop = [(x_min + l), (y_min + h_half)]
else: else:
l_half = l / 2 l_half = l / 2
start = [(xmin + l_half), ymin] start = [(x_min + l_half), y_min]
stop = [(xmin + l_half), (ymin + h)] stop = [(x_min + l_half), (y_min + h)]
geo = LineString([start, stop]) geo = LineString([start, stop])
elif round_diag_1 > round_diag_2: elif round_diag_1 > round_diag_2:
geo = diagonal_1.intersection(p) geo = round_diag_1
else: else:
geo = diagonal_2.intersection(p) geo = round_diag_2
offseted_poly = p.buffer(-offset) offseted_poly = p.buffer(-offset)
geo = geo.intersection(offseted_poly) geo = geo.intersection(offseted_poly)
return geo return geo
work_geo = obj.solid_geometry work_geo = obj.solid_geometry
try:
_ = iter(work_geo)
except TypeError:
work_geo = [work_geo]
rest_geo = [] rest_geo = []
tooluid = 1 tooluid = 1
@ -1053,22 +1055,24 @@ class SolderPaste(FlatCAMTool):
"due of inadequate nozzle diameters...") "due of inadequate nozzle diameters...")
return 'fail' return 'fail'
def job_thread(app_obj): if use_thread:
try: def job_thread(app_obj):
app_obj.new_object("geometry", name + "_solderpaste", geo_init) try:
except Exception as e: app_obj.new_object("geometry", name + "_solderpaste", geo_init)
log.error("SolderPaste.on_create_geo() --> %s" % str(e)) except Exception as e:
log.error("SolderPaste.on_create_geo() --> %s" % str(e))
proc.done()
return
proc.done() proc.done()
return
proc.done()
self.app.inform.emit("Generating Solder Paste dispensing geometry...") self.app.inform.emit("Generating Solder Paste dispensing geometry...")
# Promise object with the new name # Promise object with the new name
self.app.collection.promise(name) self.app.collection.promise(name)
# Background # Background
self.app.worker_task.emit({'fcn': job_thread, 'params': [self.app]}) self.app.worker_task.emit({'fcn': job_thread, 'params': [self.app]})
# self.app.ui.notebook.setCurrentWidget(self.app.ui.project_tab) else:
self.app.new_object("geometry", name + "_solderpaste", geo_init)
def on_create_gcode_click(self, signal): def on_create_gcode_click(self, signal):
""" """