- updated the Properties Tool to include more information's, also details if a Geometry is of type MultiGeo or SingleGeo
- remade the Preferences GUI to include the Advanced Options in a separate way so it is obvious which are displayed when App Level is Advanced.
This commit is contained in:
133
FlatCAMApp.py
133
FlatCAMApp.py
@@ -300,6 +300,7 @@ class App(QtCore.QObject):
|
||||
# when adding entries here read the comments in the method found bellow named:
|
||||
# def new_object(self, kind, name, initialize, active=True, fit=True, plot=True)
|
||||
self.defaults_form_fields = {
|
||||
# General App
|
||||
"units": self.ui.general_defaults_form.general_app_group.units_radio,
|
||||
"global_shell_at_startup": self.ui.general_defaults_form.general_app_group.shell_startup_cb,
|
||||
"global_version_check": self.ui.general_defaults_form.general_app_group.version_check_cb,
|
||||
@@ -311,6 +312,7 @@ class App(QtCore.QObject):
|
||||
"global_save_compressed": self.ui.general_defaults_form.general_app_group.save_type_cb,
|
||||
"global_toggle_tooltips": self.ui.general_defaults_form.general_app_group.toggle_tooltips_cb,
|
||||
|
||||
# General GUI
|
||||
"global_gridx": self.ui.general_defaults_form.general_gui_group.gridx_entry,
|
||||
"global_gridy": self.ui.general_defaults_form.general_gui_group.gridy_entry,
|
||||
"global_snap_max": self.ui.general_defaults_form.general_gui_group.snap_max_dist_entry,
|
||||
@@ -343,6 +345,7 @@ class App(QtCore.QObject):
|
||||
"gerber_bboxmargin": self.ui.gerber_defaults_form.gerber_opt_group.bbmargin_entry,
|
||||
"gerber_bboxrounded": self.ui.gerber_defaults_form.gerber_opt_group.bbrounded_cb,
|
||||
|
||||
# Excellon General
|
||||
"excellon_plot": self.ui.excellon_defaults_form.excellon_gen_group.plot_cb,
|
||||
"excellon_solid": self.ui.excellon_defaults_form.excellon_gen_group.solid_cb,
|
||||
"excellon_format_upper_in": self.ui.excellon_defaults_form.excellon_gen_group.excellon_format_upper_in_entry,
|
||||
@@ -353,16 +356,8 @@ class App(QtCore.QObject):
|
||||
"excellon_units": self.ui.excellon_defaults_form.excellon_gen_group.excellon_units_radio,
|
||||
"excellon_optimization_type": self.ui.excellon_defaults_form.excellon_gen_group.excellon_optimization_radio,
|
||||
"excellon_search_time": self.ui.excellon_defaults_form.excellon_gen_group.optimization_time_entry,
|
||||
"excellon_offset": self.ui.excellon_defaults_form.excellon_gen_group.offset_entry,
|
||||
"excellon_toolchangexy": self.ui.excellon_defaults_form.excellon_gen_group.toolchangexy_entry,
|
||||
"excellon_startz": self.ui.excellon_defaults_form.excellon_gen_group.estartz_entry,
|
||||
"excellon_endz": self.ui.excellon_defaults_form.excellon_gen_group.eendz_entry,
|
||||
"excellon_feedrate_rapid": self.ui.excellon_defaults_form.excellon_gen_group.feedrate_rapid_entry,
|
||||
"excellon_z_pdepth": self.ui.excellon_defaults_form.excellon_gen_group.pdepth_entry,
|
||||
"excellon_feedrate_probe": self.ui.excellon_defaults_form.excellon_gen_group.feedrate_probe_entry,
|
||||
"excellon_f_plunge": self.ui.excellon_defaults_form.excellon_gen_group.fplunge_cb,
|
||||
"excellon_f_retract": self.ui.excellon_defaults_form.excellon_gen_group.fretract_cb,
|
||||
|
||||
# Excellon Options
|
||||
"excellon_drillz": self.ui.excellon_defaults_form.excellon_opt_group.cutz_entry,
|
||||
"excellon_travelz": self.ui.excellon_defaults_form.excellon_opt_group.travelz_entry,
|
||||
"excellon_feedrate": self.ui.excellon_defaults_form.excellon_opt_group.feedrate_entry,
|
||||
@@ -376,26 +371,30 @@ class App(QtCore.QObject):
|
||||
"excellon_slot_tooldia": self.ui.excellon_defaults_form.excellon_opt_group.slot_tooldia_entry,
|
||||
"excellon_gcode_type": self.ui.excellon_defaults_form.excellon_opt_group.excellon_gcode_type_radio,
|
||||
|
||||
# Excellon Advanced Options
|
||||
"excellon_offset": self.ui.excellon_defaults_form.excellon_adv_opt_group.offset_entry,
|
||||
"excellon_toolchangexy": self.ui.excellon_defaults_form.excellon_adv_opt_group.toolchangexy_entry,
|
||||
"excellon_startz": self.ui.excellon_defaults_form.excellon_adv_opt_group.estartz_entry,
|
||||
"excellon_endz": self.ui.excellon_defaults_form.excellon_adv_opt_group.eendz_entry,
|
||||
"excellon_feedrate_rapid": self.ui.excellon_defaults_form.excellon_adv_opt_group.feedrate_rapid_entry,
|
||||
"excellon_z_pdepth": self.ui.excellon_defaults_form.excellon_adv_opt_group.pdepth_entry,
|
||||
"excellon_feedrate_probe": self.ui.excellon_defaults_form.excellon_adv_opt_group.feedrate_probe_entry,
|
||||
"excellon_f_plunge": self.ui.excellon_defaults_form.excellon_adv_opt_group.fplunge_cb,
|
||||
"excellon_f_retract": self.ui.excellon_defaults_form.excellon_adv_opt_group.fretract_cb,
|
||||
|
||||
# Excellon Export
|
||||
"excellon_exp_units": self.ui.excellon_defaults_form.excellon_exp_group.excellon_units_radio,
|
||||
"excellon_exp_format": self.ui.excellon_defaults_form.excellon_exp_group.format_radio,
|
||||
"excellon_exp_integer": self.ui.excellon_defaults_form.excellon_exp_group.format_whole_entry,
|
||||
"excellon_exp_decimals": self.ui.excellon_defaults_form.excellon_exp_group.format_dec_entry,
|
||||
"excellon_exp_zeros": self.ui.excellon_defaults_form.excellon_exp_group.zeros_radio,
|
||||
|
||||
# Geometry General
|
||||
"geometry_plot": self.ui.geometry_defaults_form.geometry_gen_group.plot_cb,
|
||||
"geometry_cnctooldia": self.ui.geometry_defaults_form.geometry_gen_group.cnctooldia_entry,
|
||||
"geometry_circle_steps": self.ui.geometry_defaults_form.geometry_gen_group.circle_steps_entry,
|
||||
"geometry_segx": self.ui.geometry_defaults_form.geometry_gen_group.segx_entry,
|
||||
"geometry_segy": self.ui.geometry_defaults_form.geometry_gen_group.segy_entry,
|
||||
"geometry_feedrate_rapid": self.ui.geometry_defaults_form.geometry_gen_group.cncfeedrate_rapid_entry,
|
||||
"geometry_feedrate_probe": self.ui.geometry_defaults_form.geometry_gen_group.feedrate_probe_entry,
|
||||
"geometry_z_pdepth": self.ui.geometry_defaults_form.geometry_gen_group.pdepth_entry,
|
||||
"geometry_f_plunge": self.ui.geometry_defaults_form.geometry_gen_group.fplunge_cb,
|
||||
"geometry_toolchangexy": self.ui.geometry_defaults_form.geometry_gen_group.toolchangexy_entry,
|
||||
"geometry_startz": self.ui.geometry_defaults_form.geometry_gen_group.gstartz_entry,
|
||||
"geometry_endz": self.ui.geometry_defaults_form.geometry_gen_group.gendz_entry,
|
||||
"geometry_extracut": self.ui.geometry_defaults_form.geometry_gen_group.extracut_cb,
|
||||
"geometry_cnctooldia": self.ui.geometry_defaults_form.geometry_gen_group.cnctooldia_entry,
|
||||
|
||||
# Geometry Options
|
||||
"geometry_cutz": self.ui.geometry_defaults_form.geometry_opt_group.cutz_entry,
|
||||
"geometry_travelz": self.ui.geometry_defaults_form.geometry_opt_group.travelz_entry,
|
||||
"geometry_feedrate": self.ui.geometry_defaults_form.geometry_opt_group.cncfeedrate_entry,
|
||||
@@ -409,6 +408,19 @@ class App(QtCore.QObject):
|
||||
"geometry_depthperpass": self.ui.geometry_defaults_form.geometry_opt_group.depthperpass_entry,
|
||||
"geometry_multidepth": self.ui.geometry_defaults_form.geometry_opt_group.multidepth_cb,
|
||||
|
||||
# Geometry Advanced Options
|
||||
"geometry_toolchangexy": self.ui.geometry_defaults_form.geometry_adv_opt_group.toolchangexy_entry,
|
||||
"geometry_startz": self.ui.geometry_defaults_form.geometry_adv_opt_group.gstartz_entry,
|
||||
"geometry_endz": self.ui.geometry_defaults_form.geometry_adv_opt_group.gendz_entry,
|
||||
"geometry_feedrate_rapid": self.ui.geometry_defaults_form.geometry_adv_opt_group.cncfeedrate_rapid_entry,
|
||||
"geometry_extracut": self.ui.geometry_defaults_form.geometry_adv_opt_group.extracut_cb,
|
||||
"geometry_z_pdepth": self.ui.geometry_defaults_form.geometry_adv_opt_group.pdepth_entry,
|
||||
"geometry_feedrate_probe": self.ui.geometry_defaults_form.geometry_adv_opt_group.feedrate_probe_entry,
|
||||
"geometry_f_plunge": self.ui.geometry_defaults_form.geometry_adv_opt_group.fplunge_cb,
|
||||
"geometry_segx": self.ui.geometry_defaults_form.geometry_adv_opt_group.segx_entry,
|
||||
"geometry_segy": self.ui.geometry_defaults_form.geometry_adv_opt_group.segy_entry,
|
||||
|
||||
# CNCJob General
|
||||
"cncjob_plot": self.ui.cncjob_defaults_form.cncjob_gen_group.plot_cb,
|
||||
"cncjob_plot_kind": self.ui.cncjob_defaults_form.cncjob_gen_group.cncplot_method_radio,
|
||||
"cncjob_tooldia": self.ui.cncjob_defaults_form.cncjob_gen_group.tooldia_entry,
|
||||
@@ -419,6 +431,7 @@ class App(QtCore.QObject):
|
||||
"cncjob_prepend": self.ui.cncjob_defaults_form.cncjob_opt_group.prepend_text,
|
||||
"cncjob_append": self.ui.cncjob_defaults_form.cncjob_opt_group.append_text,
|
||||
|
||||
# NCC Tool
|
||||
"tools_ncctools": self.ui.tools_defaults_form.tools_ncc_group.ncc_tool_dia_entry,
|
||||
"tools_nccoverlap": self.ui.tools_defaults_form.tools_ncc_group.ncc_overlap_entry,
|
||||
"tools_nccmargin": self.ui.tools_defaults_form.tools_ncc_group.ncc_margin_entry,
|
||||
@@ -427,12 +440,14 @@ class App(QtCore.QObject):
|
||||
"tools_ncccontour": self.ui.tools_defaults_form.tools_ncc_group.ncc_contour_cb,
|
||||
"tools_nccrest": self.ui.tools_defaults_form.tools_ncc_group.ncc_rest_cb,
|
||||
|
||||
# CutOut Tool
|
||||
"tools_cutouttooldia": self.ui.tools_defaults_form.tools_cutout_group.cutout_tooldia_entry,
|
||||
"tools_cutoutmargin": self.ui.tools_defaults_form.tools_cutout_group.cutout_margin_entry,
|
||||
"tools_cutoutgapsize": self.ui.tools_defaults_form.tools_cutout_group.cutout_gap_entry,
|
||||
"tools_gaps_rect": self.ui.tools_defaults_form.tools_cutout_group.gaps_radio,
|
||||
"tools_gaps_ff": self.ui.tools_defaults_form.tools_cutout_group.gaps_combo,
|
||||
|
||||
# Paint Area Tool
|
||||
"tools_painttooldia": self.ui.tools_defaults_form.tools_paint_group.painttooldia_entry,
|
||||
"tools_paintoverlap": self.ui.tools_defaults_form.tools_paint_group.paintoverlap_entry,
|
||||
"tools_paintmargin": self.ui.tools_defaults_form.tools_paint_group.paintmargin_entry,
|
||||
@@ -441,14 +456,17 @@ class App(QtCore.QObject):
|
||||
"tools_pathconnect": self.ui.tools_defaults_form.tools_paint_group.pathconnect_cb,
|
||||
"tools_paintcontour": self.ui.tools_defaults_form.tools_paint_group.contour_cb,
|
||||
|
||||
# 2-sided Tool
|
||||
"tools_2sided_mirror_axis": self.ui.tools_defaults_form.tools_2sided_group.mirror_axis_radio,
|
||||
"tools_2sided_axis_loc": self.ui.tools_defaults_form.tools_2sided_group.axis_location_radio,
|
||||
"tools_2sided_drilldia": self.ui.tools_defaults_form.tools_2sided_group.drill_dia_entry,
|
||||
|
||||
# Film Tool
|
||||
"tools_film_type": self.ui.tools_defaults_form.tools_film_group.film_type_radio,
|
||||
"tools_film_boundary": self.ui.tools_defaults_form.tools_film_group.film_boundary_entry,
|
||||
"tools_film_scale": self.ui.tools_defaults_form.tools_film_group.film_scale_entry,
|
||||
|
||||
# Panelize Tool
|
||||
"tools_panelize_spacing_columns": self.ui.tools_defaults_form.tools_panelize_group.pspacing_columns,
|
||||
"tools_panelize_spacing_rows": self.ui.tools_defaults_form.tools_panelize_group.pspacing_rows,
|
||||
"tools_panelize_columns": self.ui.tools_defaults_form.tools_panelize_group.pcolumns,
|
||||
@@ -458,6 +476,7 @@ class App(QtCore.QObject):
|
||||
"tools_panelize_constrainy": self.ui.tools_defaults_form.tools_panelize_group.py_height_entry,
|
||||
"tools_panelize_panel_type": self.ui.tools_defaults_form.tools_panelize_group.panel_type_radio,
|
||||
|
||||
# Calculators Tool
|
||||
"tools_calc_vshape_tip_dia": self.ui.tools_defaults_form.tools_calculators_group.tip_dia_entry,
|
||||
"tools_calc_vshape_tip_angle": self.ui.tools_defaults_form.tools_calculators_group.tip_angle_entry,
|
||||
"tools_calc_vshape_cut_z": self.ui.tools_defaults_form.tools_calculators_group.cut_z_entry,
|
||||
@@ -466,6 +485,7 @@ class App(QtCore.QObject):
|
||||
"tools_calc_electro_cdensity": self.ui.tools_defaults_form.tools_calculators_group.cdensity_entry,
|
||||
"tools_calc_electro_growth": self.ui.tools_defaults_form.tools_calculators_group.growth_entry,
|
||||
|
||||
# Transformations Tool
|
||||
"tools_transform_rotate": self.ui.tools_defaults_form.tools_transform_group.rotate_entry,
|
||||
"tools_transform_skew_x": self.ui.tools_defaults_form.tools_transform_group.skewx_entry,
|
||||
"tools_transform_skew_y": self.ui.tools_defaults_form.tools_transform_group.skewy_entry,
|
||||
@@ -478,6 +498,7 @@ class App(QtCore.QObject):
|
||||
"tools_transform_mirror_reference": self.ui.tools_defaults_form.tools_transform_group.mirror_reference_cb,
|
||||
"tools_transform_mirror_point": self.ui.tools_defaults_form.tools_transform_group.flip_ref_entry,
|
||||
|
||||
# SolderPaste Dispensing Tool
|
||||
"tools_solderpaste_tools": self.ui.tools_defaults_form.tools_solderpaste_group.nozzle_tool_dia_entry,
|
||||
"tools_solderpaste_new": self.ui.tools_defaults_form.tools_solderpaste_group.addtool_entry,
|
||||
"tools_solderpaste_z_start": self.ui.tools_defaults_form.tools_solderpaste_group.z_start_entry,
|
||||
@@ -600,6 +621,7 @@ class App(QtCore.QObject):
|
||||
"gerber_circle_steps": 64,
|
||||
"gerber_use_buffer_for_union": True,
|
||||
|
||||
# Excellon General
|
||||
"excellon_plot": True,
|
||||
"excellon_solid": True,
|
||||
"excellon_format_upper_in": 2,
|
||||
@@ -611,59 +633,68 @@ class App(QtCore.QObject):
|
||||
"excellon_optimization_type": 'B',
|
||||
"excellon_search_time": 3,
|
||||
|
||||
# Excellon Options
|
||||
"excellon_drillz": -0.1,
|
||||
"excellon_travelz": 0.1,
|
||||
"excellon_feedrate": 3.0,
|
||||
"excellon_feedrate_rapid": 3.0,
|
||||
"excellon_feedrate_probe": 3.0,
|
||||
"excellon_spindlespeed": None,
|
||||
"excellon_dwell": False,
|
||||
"excellon_dwelltime": 1,
|
||||
"excellon_toolchange": False,
|
||||
"excellon_toolchangez": 1.0,
|
||||
"excellon_toolchangexy": "0.0, 0.0",
|
||||
"excellon_ppname_e": 'default',
|
||||
"excellon_tooldia": 0.016,
|
||||
"excellon_offset": 0.0,
|
||||
"excellon_slot_tooldia": 0.016,
|
||||
"excellon_gcode_type": "drills",
|
||||
|
||||
# Excellon Advanced Options
|
||||
"excellon_offset": 0.0,
|
||||
"excellon_toolchangexy": "0.0, 0.0",
|
||||
"excellon_startz": None,
|
||||
"excellon_endz": 2.0,
|
||||
"excellon_ppname_e": 'default',
|
||||
"excellon_feedrate_rapid": 3.0,
|
||||
"excellon_z_pdepth": -0.02,
|
||||
"excellon_f_plunge": False,
|
||||
"excellon_f_retract": False,
|
||||
"excellon_gcode_type": "drills",
|
||||
|
||||
# Excellon Export
|
||||
"excellon_exp_units": 'INCH',
|
||||
"excellon_exp_format": 'ndec',
|
||||
"excellon_exp_integer": 2,
|
||||
"excellon_exp_decimals": 4,
|
||||
"excellon_exp_zeros": 'LZ',
|
||||
|
||||
# Geometry General
|
||||
"geometry_plot": True,
|
||||
"geometry_segx": 0.0,
|
||||
"geometry_segy": 0.0,
|
||||
"geometry_circle_steps": 64,
|
||||
"geometry_cnctooldia": 0.016,
|
||||
|
||||
# Geometry Options
|
||||
"geometry_cutz": -0.002,
|
||||
"geometry_multidepth": False,
|
||||
"geometry_depthperpass": 0.002,
|
||||
"geometry_travelz": 0.1,
|
||||
"geometry_toolchange": False,
|
||||
"geometry_toolchangez": 1.0,
|
||||
"geometry_toolchangexy": "0.0, 0.0",
|
||||
"geometry_startz": None,
|
||||
"geometry_endz": 2.0,
|
||||
"geometry_feedrate": 3.0,
|
||||
"geometry_feedrate_z": 3.0,
|
||||
"geometry_feedrate_rapid": 3.0,
|
||||
"geometry_feedrate_probe": 3.0,
|
||||
"geometry_cnctooldia": 0.016,
|
||||
"geometry_spindlespeed": None,
|
||||
"geometry_dwell": False,
|
||||
"geometry_dwelltime": 1,
|
||||
"geometry_ppname_g": 'default',
|
||||
|
||||
# Geometry Advanced Options
|
||||
"geometry_toolchangexy": "0.0, 0.0",
|
||||
"geometry_startz": None,
|
||||
"geometry_endz": 2.0,
|
||||
"geometry_feedrate_rapid": 3.0,
|
||||
"geometry_extracut": False,
|
||||
"geometry_z_pdepth": -0.02,
|
||||
"geometry_f_plunge": False,
|
||||
"geometry_depthperpass": 0.002,
|
||||
"geometry_multidepth": False,
|
||||
"geometry_extracut": False,
|
||||
"geometry_circle_steps": 64,
|
||||
"geometry_feedrate_probe": 3.0,
|
||||
"geometry_segx": 0.0,
|
||||
"geometry_segy": 0.0,
|
||||
|
||||
"cncjob_plot": True,
|
||||
"cncjob_plot_kind": 'all',
|
||||
@@ -805,11 +836,6 @@ class App(QtCore.QObject):
|
||||
"excellon_zeros": self.ui.excellon_options_form.excellon_gen_group.excellon_zeros_radio,
|
||||
"excellon_units": self.ui.excellon_options_form.excellon_gen_group.excellon_units_radio,
|
||||
"excellon_optimization_type": self.ui.excellon_options_form.excellon_gen_group.excellon_optimization_radio,
|
||||
"excellon_feedrate_rapid": self.ui.excellon_options_form.excellon_gen_group.feedrate_rapid_entry,
|
||||
"excellon_toolchangexy": self.ui.excellon_options_form.excellon_gen_group.toolchangexy_entry,
|
||||
"excellon_f_plunge": self.ui.excellon_options_form.excellon_gen_group.fplunge_cb,
|
||||
"excellon_startz": self.ui.excellon_options_form.excellon_gen_group.estartz_entry,
|
||||
"excellon_endz": self.ui.excellon_options_form.excellon_gen_group.eendz_entry,
|
||||
|
||||
"excellon_drillz": self.ui.excellon_options_form.excellon_opt_group.cutz_entry,
|
||||
"excellon_travelz": self.ui.excellon_options_form.excellon_opt_group.travelz_entry,
|
||||
@@ -822,16 +848,14 @@ class App(QtCore.QObject):
|
||||
"excellon_tooldia": self.ui.excellon_options_form.excellon_opt_group.tooldia_entry,
|
||||
"excellon_ppname_e": self.ui.excellon_options_form.excellon_opt_group.pp_excellon_name_cb,
|
||||
|
||||
"excellon_feedrate_rapid": self.ui.excellon_options_form.excellon_adv_opt_group.feedrate_rapid_entry,
|
||||
"excellon_toolchangexy": self.ui.excellon_options_form.excellon_adv_opt_group.toolchangexy_entry,
|
||||
"excellon_f_plunge": self.ui.excellon_options_form.excellon_adv_opt_group.fplunge_cb,
|
||||
"excellon_startz": self.ui.excellon_options_form.excellon_adv_opt_group.estartz_entry,
|
||||
"excellon_endz": self.ui.excellon_options_form.excellon_adv_opt_group.eendz_entry,
|
||||
|
||||
"geometry_plot": self.ui.geometry_options_form.geometry_gen_group.plot_cb,
|
||||
"geometry_cnctooldia": self.ui.geometry_options_form.geometry_gen_group.cnctooldia_entry,
|
||||
"geometry_segx": self.ui.geometry_options_form.geometry_gen_group.segx_entry,
|
||||
"geometry_segy": self.ui.geometry_options_form.geometry_gen_group.segy_entry,
|
||||
"geometry_feedrate_rapid": self.ui.geometry_options_form.geometry_gen_group.cncfeedrate_rapid_entry,
|
||||
"geometry_f_plunge": self.ui.geometry_options_form.geometry_gen_group.fplunge_cb,
|
||||
"geometry_toolchangexy": self.ui.geometry_options_form.geometry_gen_group.toolchangexy_entry,
|
||||
"geometry_startz": self.ui.geometry_options_form.geometry_gen_group.gstartz_entry,
|
||||
"geometry_endz": self.ui.geometry_options_form.geometry_gen_group.gendz_entry,
|
||||
"geometry_extracut": self.ui.geometry_options_form.geometry_gen_group.extracut_cb,
|
||||
|
||||
"geometry_cutz": self.ui.geometry_options_form.geometry_opt_group.cutz_entry,
|
||||
"geometry_travelz": self.ui.geometry_options_form.geometry_opt_group.travelz_entry,
|
||||
@@ -846,6 +870,15 @@ class App(QtCore.QObject):
|
||||
"geometry_depthperpass": self.ui.geometry_options_form.geometry_opt_group.depthperpass_entry,
|
||||
"geometry_multidepth": self.ui.geometry_options_form.geometry_opt_group.multidepth_cb,
|
||||
|
||||
"geometry_segx": self.ui.geometry_options_form.geometry_adv_opt_group.segx_entry,
|
||||
"geometry_segy": self.ui.geometry_options_form.geometry_adv_opt_group.segy_entry,
|
||||
"geometry_feedrate_rapid": self.ui.geometry_options_form.geometry_adv_opt_group.cncfeedrate_rapid_entry,
|
||||
"geometry_f_plunge": self.ui.geometry_options_form.geometry_adv_opt_group.fplunge_cb,
|
||||
"geometry_toolchangexy": self.ui.geometry_options_form.geometry_adv_opt_group.toolchangexy_entry,
|
||||
"geometry_startz": self.ui.geometry_options_form.geometry_adv_opt_group.gstartz_entry,
|
||||
"geometry_endz": self.ui.geometry_options_form.geometry_adv_opt_group.gendz_entry,
|
||||
"geometry_extracut": self.ui.geometry_options_form.geometry_adv_opt_group.extracut_cb,
|
||||
|
||||
"cncjob_plot": self.ui.cncjob_options_form.cncjob_gen_group.plot_cb,
|
||||
"cncjob_tooldia": self.ui.cncjob_options_form.cncjob_gen_group.tooldia_entry,
|
||||
|
||||
|
||||
471
FlatCAMGUI.py
471
FlatCAMGUI.py
@@ -2535,10 +2535,16 @@ class ExcellonPreferencesUI(QtWidgets.QWidget):
|
||||
self.excellon_opt_group.setFixedWidth(250)
|
||||
self.excellon_exp_group = ExcellonExpPrefGroupUI()
|
||||
self.excellon_exp_group.setFixedWidth(250)
|
||||
self.excellon_adv_opt_group = ExcellonAdvOptPrefGroupUI()
|
||||
self.excellon_adv_opt_group.setFixedWidth(250)
|
||||
|
||||
self.vlay = QtWidgets.QVBoxLayout()
|
||||
self.vlay.addWidget(self.excellon_opt_group)
|
||||
self.vlay.addWidget(self.excellon_exp_group)
|
||||
|
||||
self.layout.addWidget(self.excellon_gen_group)
|
||||
self.layout.addWidget(self.excellon_opt_group)
|
||||
self.layout.addWidget(self.excellon_exp_group)
|
||||
self.layout.addLayout(self.vlay)
|
||||
self.layout.addWidget(self.excellon_adv_opt_group)
|
||||
|
||||
self.layout.addStretch()
|
||||
|
||||
@@ -2554,9 +2560,13 @@ class GeometryPreferencesUI(QtWidgets.QWidget):
|
||||
self.geometry_gen_group.setFixedWidth(220)
|
||||
self.geometry_opt_group = GeometryOptPrefGroupUI()
|
||||
self.geometry_opt_group.setFixedWidth(250)
|
||||
self.geometry_adv_opt_group = GeometryAdvOptPrefGroupUI()
|
||||
self.geometry_adv_opt_group.setFixedWidth(250)
|
||||
|
||||
self.layout.addWidget(self.geometry_gen_group)
|
||||
self.layout.addWidget(self.geometry_opt_group)
|
||||
self.layout.addWidget(self.geometry_adv_opt_group)
|
||||
|
||||
self.layout.addStretch()
|
||||
|
||||
|
||||
@@ -3618,109 +3628,6 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI):
|
||||
self.optimization_time_label.setDisabled(True)
|
||||
self.optimization_time_entry.setDisabled(True)
|
||||
|
||||
######################
|
||||
## ADVANCED OPTIONS ##
|
||||
######################
|
||||
|
||||
self.cncjob_label = QtWidgets.QLabel('<b>Advanced Options:</b>')
|
||||
self.cncjob_label.setToolTip(
|
||||
"Parameters used to create a CNC Job object\n"
|
||||
"for this drill object that are not changed very often."
|
||||
)
|
||||
self.layout.addWidget(self.cncjob_label)
|
||||
|
||||
grid1 = QtWidgets.QGridLayout()
|
||||
self.layout.addLayout(grid1)
|
||||
|
||||
offsetlabel = QtWidgets.QLabel('Offset Z:')
|
||||
offsetlabel.setToolTip(
|
||||
"Some drill bits (the larger ones) need to drill deeper\n"
|
||||
"to create the desired exit hole diameter due of the tip shape.\n"
|
||||
"The value here can compensate the Cut Z parameter.")
|
||||
grid1.addWidget(offsetlabel, 0, 0)
|
||||
self.offset_entry = LengthEntry()
|
||||
grid1.addWidget(self.offset_entry, 0, 1)
|
||||
|
||||
toolchange_xy_label = QtWidgets.QLabel('Toolchange X,Y:')
|
||||
toolchange_xy_label.setToolTip(
|
||||
"Toolchange X,Y position."
|
||||
)
|
||||
grid1.addWidget(toolchange_xy_label, 1, 0)
|
||||
self.toolchangexy_entry = FCEntry()
|
||||
grid1.addWidget(self.toolchangexy_entry, 1, 1)
|
||||
|
||||
startzlabel = QtWidgets.QLabel('Start move Z:')
|
||||
startzlabel.setToolTip(
|
||||
"Height of the tool just after start.\n"
|
||||
"Delete the value if you don't need this feature."
|
||||
)
|
||||
grid1.addWidget(startzlabel, 2, 0)
|
||||
self.estartz_entry = FloatEntry()
|
||||
grid1.addWidget(self.estartz_entry, 2, 1)
|
||||
|
||||
endzlabel = QtWidgets.QLabel('End move Z:')
|
||||
endzlabel.setToolTip(
|
||||
"Height of the tool after\n"
|
||||
"the last move at the end of the job."
|
||||
)
|
||||
grid1.addWidget(endzlabel, 3, 0)
|
||||
self.eendz_entry = LengthEntry()
|
||||
grid1.addWidget(self.eendz_entry, 3, 1)
|
||||
|
||||
|
||||
fr_rapid_label = QtWidgets.QLabel('Feedrate Rapids:')
|
||||
fr_rapid_label.setToolTip(
|
||||
"Tool speed while drilling\n"
|
||||
"with rapid move\n"
|
||||
"(in units per minute)."
|
||||
)
|
||||
grid1.addWidget(fr_rapid_label, 4, 0)
|
||||
self.feedrate_rapid_entry = LengthEntry()
|
||||
grid1.addWidget(self.feedrate_rapid_entry, 4, 1)
|
||||
|
||||
# Probe depth
|
||||
self.pdepth_label = QtWidgets.QLabel("Probe Z depth:")
|
||||
self.pdepth_label.setToolTip(
|
||||
"The maximum depth that the probe is allowed\n"
|
||||
"to probe. Negative value, in current units."
|
||||
)
|
||||
grid1.addWidget(self.pdepth_label, 5, 0)
|
||||
self.pdepth_entry = FCEntry()
|
||||
grid1.addWidget(self.pdepth_entry, 5, 1)
|
||||
|
||||
# Probe feedrate
|
||||
self.feedrate_probe_label = QtWidgets.QLabel("Feedrate Probe:")
|
||||
self.feedrate_probe_label.setToolTip(
|
||||
"The feedrate used while the probe is probing."
|
||||
)
|
||||
grid1.addWidget(self.feedrate_probe_label, 6, 0)
|
||||
self.feedrate_probe_entry = FCEntry()
|
||||
grid1.addWidget(self.feedrate_probe_entry, 6, 1)
|
||||
|
||||
fplungelabel = QtWidgets.QLabel('Fast Plunge:')
|
||||
fplungelabel.setToolTip(
|
||||
"By checking this, the vertical move from\n"
|
||||
"Z_Toolchange to Z_move is done with G0,\n"
|
||||
"meaning the fastest speed available.\n"
|
||||
"WARNING: the move is done at Toolchange X,Y coords."
|
||||
)
|
||||
self.fplunge_cb = FCCheckBox()
|
||||
grid1.addWidget(fplungelabel, 7, 0)
|
||||
grid1.addWidget(self.fplunge_cb, 7, 1)
|
||||
|
||||
fretractlabel = QtWidgets.QLabel('Fast Retract:')
|
||||
fretractlabel.setToolTip(
|
||||
"Exit hole strategy.\n"
|
||||
" - When uncheked, while exiting the drilled hole the drill bit\n"
|
||||
"will travel slow, with set feedrate (G1), up to zero depth and then\n"
|
||||
"travel as fast as possible (G0) to the Z Move (travel height).\n"
|
||||
" - When checked the travel from Z cut (cut depth) to Z_move\n"
|
||||
"(travel height) is done as fast as possible (G0) in one move."
|
||||
)
|
||||
self.fretract_cb = FCCheckBox()
|
||||
grid1.addWidget(fretractlabel, 8, 0)
|
||||
grid1.addWidget(self.fretract_cb, 8, 1)
|
||||
|
||||
self.layout.addStretch()
|
||||
|
||||
def optimization_selection(self):
|
||||
@@ -3892,6 +3799,119 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI):
|
||||
self.layout.addStretch()
|
||||
|
||||
|
||||
class ExcellonAdvOptPrefGroupUI(OptionsGroupUI):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
# OptionsGroupUI.__init__(self, "Excellon Advanced Options", parent=parent)
|
||||
super(ExcellonAdvOptPrefGroupUI, self).__init__(self)
|
||||
|
||||
self.setTitle(str("Excellon Adv. Options"))
|
||||
|
||||
######################
|
||||
## ADVANCED OPTIONS ##
|
||||
######################
|
||||
|
||||
self.cncjob_label = QtWidgets.QLabel('<b>Advanced Options:</b>')
|
||||
self.cncjob_label.setToolTip(
|
||||
"Parameters used to create a CNC Job object\n"
|
||||
"for this drill object that are shown when App Level is Advanced."
|
||||
)
|
||||
self.layout.addWidget(self.cncjob_label)
|
||||
|
||||
grid1 = QtWidgets.QGridLayout()
|
||||
self.layout.addLayout(grid1)
|
||||
|
||||
offsetlabel = QtWidgets.QLabel('Offset Z:')
|
||||
offsetlabel.setToolTip(
|
||||
"Some drill bits (the larger ones) need to drill deeper\n"
|
||||
"to create the desired exit hole diameter due of the tip shape.\n"
|
||||
"The value here can compensate the Cut Z parameter.")
|
||||
grid1.addWidget(offsetlabel, 0, 0)
|
||||
self.offset_entry = LengthEntry()
|
||||
grid1.addWidget(self.offset_entry, 0, 1)
|
||||
|
||||
toolchange_xy_label = QtWidgets.QLabel('Toolchange X,Y:')
|
||||
toolchange_xy_label.setToolTip(
|
||||
"Toolchange X,Y position."
|
||||
)
|
||||
grid1.addWidget(toolchange_xy_label, 1, 0)
|
||||
self.toolchangexy_entry = FCEntry()
|
||||
grid1.addWidget(self.toolchangexy_entry, 1, 1)
|
||||
|
||||
startzlabel = QtWidgets.QLabel('Start move Z:')
|
||||
startzlabel.setToolTip(
|
||||
"Height of the tool just after start.\n"
|
||||
"Delete the value if you don't need this feature."
|
||||
)
|
||||
grid1.addWidget(startzlabel, 2, 0)
|
||||
self.estartz_entry = FloatEntry()
|
||||
grid1.addWidget(self.estartz_entry, 2, 1)
|
||||
|
||||
endzlabel = QtWidgets.QLabel('End move Z:')
|
||||
endzlabel.setToolTip(
|
||||
"Height of the tool after\n"
|
||||
"the last move at the end of the job."
|
||||
)
|
||||
grid1.addWidget(endzlabel, 3, 0)
|
||||
self.eendz_entry = LengthEntry()
|
||||
grid1.addWidget(self.eendz_entry, 3, 1)
|
||||
|
||||
fr_rapid_label = QtWidgets.QLabel('Feedrate Rapids:')
|
||||
fr_rapid_label.setToolTip(
|
||||
"Tool speed while drilling\n"
|
||||
"with rapid move\n"
|
||||
"(in units per minute)."
|
||||
)
|
||||
grid1.addWidget(fr_rapid_label, 4, 0)
|
||||
self.feedrate_rapid_entry = LengthEntry()
|
||||
grid1.addWidget(self.feedrate_rapid_entry, 4, 1)
|
||||
|
||||
# Probe depth
|
||||
self.pdepth_label = QtWidgets.QLabel("Probe Z depth:")
|
||||
self.pdepth_label.setToolTip(
|
||||
"The maximum depth that the probe is allowed\n"
|
||||
"to probe. Negative value, in current units."
|
||||
)
|
||||
grid1.addWidget(self.pdepth_label, 5, 0)
|
||||
self.pdepth_entry = FCEntry()
|
||||
grid1.addWidget(self.pdepth_entry, 5, 1)
|
||||
|
||||
# Probe feedrate
|
||||
self.feedrate_probe_label = QtWidgets.QLabel("Feedrate Probe:")
|
||||
self.feedrate_probe_label.setToolTip(
|
||||
"The feedrate used while the probe is probing."
|
||||
)
|
||||
grid1.addWidget(self.feedrate_probe_label, 6, 0)
|
||||
self.feedrate_probe_entry = FCEntry()
|
||||
grid1.addWidget(self.feedrate_probe_entry, 6, 1)
|
||||
|
||||
fplungelabel = QtWidgets.QLabel('Fast Plunge:')
|
||||
fplungelabel.setToolTip(
|
||||
"By checking this, the vertical move from\n"
|
||||
"Z_Toolchange to Z_move is done with G0,\n"
|
||||
"meaning the fastest speed available.\n"
|
||||
"WARNING: the move is done at Toolchange X,Y coords."
|
||||
)
|
||||
self.fplunge_cb = FCCheckBox()
|
||||
grid1.addWidget(fplungelabel, 7, 0)
|
||||
grid1.addWidget(self.fplunge_cb, 7, 1)
|
||||
|
||||
fretractlabel = QtWidgets.QLabel('Fast Retract:')
|
||||
fretractlabel.setToolTip(
|
||||
"Exit hole strategy.\n"
|
||||
" - When uncheked, while exiting the drilled hole the drill bit\n"
|
||||
"will travel slow, with set feedrate (G1), up to zero depth and then\n"
|
||||
"travel as fast as possible (G0) to the Z Move (travel height).\n"
|
||||
" - When checked the travel from Z cut (cut depth) to Z_move\n"
|
||||
"(travel height) is done as fast as possible (G0) in one move."
|
||||
)
|
||||
self.fretract_cb = FCCheckBox()
|
||||
grid1.addWidget(fretractlabel, 8, 0)
|
||||
grid1.addWidget(self.fretract_cb, 8, 1)
|
||||
|
||||
self.layout.addStretch()
|
||||
|
||||
|
||||
class ExcellonExpPrefGroupUI(OptionsGroupUI):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
@@ -4065,122 +4085,6 @@ class GeometryGenPrefGroupUI(OptionsGroupUI):
|
||||
self.cnctooldia_entry = LengthEntry()
|
||||
grid0_b.addWidget(self.cnctooldia_entry, 0, 1)
|
||||
|
||||
|
||||
# ------------------------------
|
||||
## Advanced Options
|
||||
# ------------------------------
|
||||
self.cncjob_label = QtWidgets.QLabel('<b>Advanced Options:</b>')
|
||||
self.cncjob_label.setToolTip(
|
||||
"Parameters to create a CNC Job object\n"
|
||||
"tracing the contours of a Geometry object."
|
||||
)
|
||||
self.layout.addWidget(self.cncjob_label)
|
||||
|
||||
grid1 = QtWidgets.QGridLayout()
|
||||
self.layout.addLayout(grid1)
|
||||
|
||||
# Toolchange X,Y
|
||||
toolchange_xy_label = QtWidgets.QLabel('Toolchange X,Y:')
|
||||
toolchange_xy_label.setToolTip(
|
||||
"Toolchange X,Y position."
|
||||
)
|
||||
grid1.addWidget(toolchange_xy_label, 1, 0)
|
||||
self.toolchangexy_entry = FCEntry()
|
||||
grid1.addWidget(self.toolchangexy_entry, 1, 1)
|
||||
|
||||
# Start move Z
|
||||
startzlabel = QtWidgets.QLabel('Start move Z:')
|
||||
startzlabel.setToolTip(
|
||||
"Height of the tool just after starting the work.\n"
|
||||
"Delete the value if you don't need this feature."
|
||||
)
|
||||
grid1.addWidget(startzlabel, 2, 0)
|
||||
self.gstartz_entry = FloatEntry()
|
||||
grid1.addWidget(self.gstartz_entry, 2, 1)
|
||||
|
||||
# End move Z
|
||||
endzlabel = QtWidgets.QLabel('End move Z:')
|
||||
endzlabel.setToolTip(
|
||||
"Height of the tool after\n"
|
||||
"the last move at the end of the job."
|
||||
)
|
||||
grid1.addWidget(endzlabel, 3, 0)
|
||||
self.gendz_entry = LengthEntry()
|
||||
grid1.addWidget(self.gendz_entry, 3, 1)
|
||||
|
||||
# Feedrate rapids
|
||||
fr_rapid_label = QtWidgets.QLabel('Feedrate Rapids:')
|
||||
fr_rapid_label.setToolTip(
|
||||
"Cutting speed in the XY\n"
|
||||
"plane in units per minute"
|
||||
)
|
||||
grid1.addWidget(fr_rapid_label, 4, 0)
|
||||
self.cncfeedrate_rapid_entry = LengthEntry()
|
||||
grid1.addWidget(self.cncfeedrate_rapid_entry, 4, 1)
|
||||
|
||||
# End move extra cut
|
||||
self.extracut_cb = FCCheckBox(label='Re-cut 1st pt.')
|
||||
self.extracut_cb.setToolTip(
|
||||
"In order to remove possible\n"
|
||||
"copper leftovers where first cut\n"
|
||||
"meet with last cut, we generate an\n"
|
||||
"extended cut over the first cut section."
|
||||
)
|
||||
grid1.addWidget(self.extracut_cb, 5, 0)
|
||||
|
||||
# Probe depth
|
||||
self.pdepth_label = QtWidgets.QLabel("Probe Z depth:")
|
||||
self.pdepth_label.setToolTip(
|
||||
"The maximum depth that the probe is allowed\n"
|
||||
"to probe. Negative value, in current units."
|
||||
)
|
||||
grid1.addWidget(self.pdepth_label, 6, 0)
|
||||
self.pdepth_entry = FCEntry()
|
||||
grid1.addWidget(self.pdepth_entry, 6, 1)
|
||||
|
||||
# Probe feedrate
|
||||
self.feedrate_probe_label = QtWidgets.QLabel("Feedrate Probe:")
|
||||
self.feedrate_probe_label.setToolTip(
|
||||
"The feedrate used while the probe is probing."
|
||||
)
|
||||
grid1.addWidget(self.feedrate_probe_label, 7, 0)
|
||||
self.feedrate_probe_entry = FCEntry()
|
||||
grid1.addWidget(self.feedrate_probe_entry, 7, 1)
|
||||
|
||||
# Fast Move from Z Toolchange
|
||||
fplungelabel = QtWidgets.QLabel('Fast Plunge:')
|
||||
fplungelabel.setToolTip(
|
||||
"By checking this, the vertical move from\n"
|
||||
"Z_Toolchange to Z_move is done with G0,\n"
|
||||
"meaning the fastest speed available.\n"
|
||||
"WARNING: the move is done at Toolchange X,Y coords."
|
||||
)
|
||||
self.fplunge_cb = FCCheckBox()
|
||||
grid1.addWidget(fplungelabel, 8, 0)
|
||||
grid1.addWidget(self.fplunge_cb, 8, 1)
|
||||
|
||||
# Size of trace segment on X axis
|
||||
segx_label = QtWidgets.QLabel("Seg. X size:")
|
||||
segx_label.setToolTip(
|
||||
"The size of the trace segment on the X axis.\n"
|
||||
"Useful for auto-leveling.\n"
|
||||
"A value of 0 means no segmentation on the X axis."
|
||||
)
|
||||
grid1.addWidget(segx_label, 9, 0)
|
||||
self.segx_entry = FCEntry()
|
||||
grid1.addWidget(self.segx_entry, 9, 1)
|
||||
|
||||
# Size of trace segment on Y axis
|
||||
segy_label = QtWidgets.QLabel("Seg. Y size:")
|
||||
segy_label.setToolTip(
|
||||
"The size of the trace segment on the Y axis.\n"
|
||||
"Useful for auto-leveling.\n"
|
||||
"A value of 0 means no segmentation on the Y axis."
|
||||
)
|
||||
grid1.addWidget(segy_label, 10, 0)
|
||||
self.segy_entry = FCEntry()
|
||||
grid1.addWidget(self.segy_entry, 10, 1)
|
||||
|
||||
self.layout.addStretch()
|
||||
|
||||
|
||||
@@ -4329,6 +4233,131 @@ class GeometryOptPrefGroupUI(OptionsGroupUI):
|
||||
self.layout.addStretch()
|
||||
|
||||
|
||||
class GeometryAdvOptPrefGroupUI(OptionsGroupUI):
|
||||
def __init__(self, parent=None):
|
||||
# OptionsGroupUI.__init__(self, "Geometry Advanced Options Preferences", parent=parent)
|
||||
super(GeometryAdvOptPrefGroupUI, self).__init__(self)
|
||||
|
||||
self.setTitle(str("Geometry Adv. Options"))
|
||||
|
||||
# ------------------------------
|
||||
## Advanced Options
|
||||
# ------------------------------
|
||||
self.cncjob_label = QtWidgets.QLabel('<b>Advanced Options:</b>')
|
||||
self.cncjob_label.setToolTip(
|
||||
"Parameters to create a CNC Job object\n"
|
||||
"tracing the contours of a Geometry object."
|
||||
)
|
||||
self.layout.addWidget(self.cncjob_label)
|
||||
|
||||
grid1 = QtWidgets.QGridLayout()
|
||||
self.layout.addLayout(grid1)
|
||||
|
||||
# Toolchange X,Y
|
||||
toolchange_xy_label = QtWidgets.QLabel('Toolchange X,Y:')
|
||||
toolchange_xy_label.setToolTip(
|
||||
"Toolchange X,Y position."
|
||||
)
|
||||
grid1.addWidget(toolchange_xy_label, 1, 0)
|
||||
self.toolchangexy_entry = FCEntry()
|
||||
grid1.addWidget(self.toolchangexy_entry, 1, 1)
|
||||
|
||||
# Start move Z
|
||||
startzlabel = QtWidgets.QLabel('Start move Z:')
|
||||
startzlabel.setToolTip(
|
||||
"Height of the tool just after starting the work.\n"
|
||||
"Delete the value if you don't need this feature."
|
||||
)
|
||||
grid1.addWidget(startzlabel, 2, 0)
|
||||
self.gstartz_entry = FloatEntry()
|
||||
grid1.addWidget(self.gstartz_entry, 2, 1)
|
||||
|
||||
# End move Z
|
||||
endzlabel = QtWidgets.QLabel('End move Z:')
|
||||
endzlabel.setToolTip(
|
||||
"Height of the tool after\n"
|
||||
"the last move at the end of the job."
|
||||
)
|
||||
grid1.addWidget(endzlabel, 3, 0)
|
||||
self.gendz_entry = LengthEntry()
|
||||
grid1.addWidget(self.gendz_entry, 3, 1)
|
||||
|
||||
# Feedrate rapids
|
||||
fr_rapid_label = QtWidgets.QLabel('Feedrate Rapids:')
|
||||
fr_rapid_label.setToolTip(
|
||||
"Cutting speed in the XY\n"
|
||||
"plane in units per minute"
|
||||
)
|
||||
grid1.addWidget(fr_rapid_label, 4, 0)
|
||||
self.cncfeedrate_rapid_entry = LengthEntry()
|
||||
grid1.addWidget(self.cncfeedrate_rapid_entry, 4, 1)
|
||||
|
||||
# End move extra cut
|
||||
self.extracut_cb = FCCheckBox(label='Re-cut 1st pt.')
|
||||
self.extracut_cb.setToolTip(
|
||||
"In order to remove possible\n"
|
||||
"copper leftovers where first cut\n"
|
||||
"meet with last cut, we generate an\n"
|
||||
"extended cut over the first cut section."
|
||||
)
|
||||
grid1.addWidget(self.extracut_cb, 5, 0)
|
||||
|
||||
# Probe depth
|
||||
self.pdepth_label = QtWidgets.QLabel("Probe Z depth:")
|
||||
self.pdepth_label.setToolTip(
|
||||
"The maximum depth that the probe is allowed\n"
|
||||
"to probe. Negative value, in current units."
|
||||
)
|
||||
grid1.addWidget(self.pdepth_label, 6, 0)
|
||||
self.pdepth_entry = FCEntry()
|
||||
grid1.addWidget(self.pdepth_entry, 6, 1)
|
||||
|
||||
# Probe feedrate
|
||||
self.feedrate_probe_label = QtWidgets.QLabel("Feedrate Probe:")
|
||||
self.feedrate_probe_label.setToolTip(
|
||||
"The feedrate used while the probe is probing."
|
||||
)
|
||||
grid1.addWidget(self.feedrate_probe_label, 7, 0)
|
||||
self.feedrate_probe_entry = FCEntry()
|
||||
grid1.addWidget(self.feedrate_probe_entry, 7, 1)
|
||||
|
||||
# Fast Move from Z Toolchange
|
||||
fplungelabel = QtWidgets.QLabel('Fast Plunge:')
|
||||
fplungelabel.setToolTip(
|
||||
"By checking this, the vertical move from\n"
|
||||
"Z_Toolchange to Z_move is done with G0,\n"
|
||||
"meaning the fastest speed available.\n"
|
||||
"WARNING: the move is done at Toolchange X,Y coords."
|
||||
)
|
||||
self.fplunge_cb = FCCheckBox()
|
||||
grid1.addWidget(fplungelabel, 8, 0)
|
||||
grid1.addWidget(self.fplunge_cb, 8, 1)
|
||||
|
||||
# Size of trace segment on X axis
|
||||
segx_label = QtWidgets.QLabel("Seg. X size:")
|
||||
segx_label.setToolTip(
|
||||
"The size of the trace segment on the X axis.\n"
|
||||
"Useful for auto-leveling.\n"
|
||||
"A value of 0 means no segmentation on the X axis."
|
||||
)
|
||||
grid1.addWidget(segx_label, 9, 0)
|
||||
self.segx_entry = FCEntry()
|
||||
grid1.addWidget(self.segx_entry, 9, 1)
|
||||
|
||||
# Size of trace segment on Y axis
|
||||
segy_label = QtWidgets.QLabel("Seg. Y size:")
|
||||
segy_label.setToolTip(
|
||||
"The size of the trace segment on the Y axis.\n"
|
||||
"Useful for auto-leveling.\n"
|
||||
"A value of 0 means no segmentation on the Y axis."
|
||||
)
|
||||
grid1.addWidget(segy_label, 10, 0)
|
||||
self.segy_entry = FCEntry()
|
||||
grid1.addWidget(self.segy_entry, 10, 1)
|
||||
|
||||
self.layout.addStretch()
|
||||
|
||||
|
||||
class CNCJobGenPrefGroupUI(OptionsGroupUI):
|
||||
def __init__(self, parent=None):
|
||||
# OptionsGroupUI.__init__(self, "CNC Job General Preferences", parent=None)
|
||||
|
||||
@@ -1135,7 +1135,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon):
|
||||
# store the source file here
|
||||
self.source_file = ""
|
||||
|
||||
self.multigeo = False
|
||||
self.multigeo = True
|
||||
|
||||
# Attributes to be included in serialization
|
||||
# Always append to it because it carries contents
|
||||
|
||||
@@ -12,7 +12,8 @@ CAD program, and create G-Code for Isolation routing.
|
||||
23.02.2019
|
||||
|
||||
- remade the SolderPaste geometry generation function in ToolSoderPaste to work in certain scenarios where the Gerber pads in the SolderPaste mask Gerber may be just pads outlines
|
||||
-
|
||||
- updated the Properties Tool to include more information's, also details if a Geometry is of type MultiGeo or SingleGeo
|
||||
- remade the Preferences GUI to include the Advanced Options in a separate way so it is obvious which are displayed when App Level is Advanced.
|
||||
|
||||
22.02.2019
|
||||
|
||||
|
||||
@@ -3281,6 +3281,7 @@ class Excellon(Geometry):
|
||||
Key Value
|
||||
================ ====================================
|
||||
C Diameter of the tool
|
||||
solid_geometry Geometry list for each tool
|
||||
Others Not supported (Ignored).
|
||||
================ ====================================
|
||||
|
||||
|
||||
@@ -91,14 +91,31 @@ class Properties(FlatCAMTool):
|
||||
obj_type = self.addParent(parent, 'TYPE', expanded=True, color=QtGui.QColor("#000000"), font=font)
|
||||
obj_name = self.addParent(parent, 'NAME', expanded=True, color=QtGui.QColor("#000000"), font=font)
|
||||
dims = self.addParent(parent, 'Dimensions', expanded=True, color=QtGui.QColor("#000000"), font=font)
|
||||
units = self.addParent(parent, 'Units', expanded=True, color=QtGui.QColor("#000000"), font=font)
|
||||
|
||||
options = self.addParent(parent, 'Options', color=QtGui.QColor("#000000"), font=font)
|
||||
if obj.kind.lower() == 'gerber':
|
||||
apertures = self.addParent(parent, 'Apertures', expanded=True, color=QtGui.QColor("#000000"), font=font)
|
||||
else:
|
||||
tools = self.addParent(parent, 'Tools', expanded=True, color=QtGui.QColor("#000000"), font=font)
|
||||
|
||||
separator = self.addParent(parent, '')
|
||||
|
||||
self.addChild(obj_type, [obj.kind.upper()])
|
||||
self.addChild(obj_type, ['Object Type:', ('%s' % (obj.kind.capitalize()))], True)
|
||||
try:
|
||||
self.addChild(obj_type, ['Geo Type:', ('%s' % ({False: "Single-Geo", True: "Multi-Geo"}[obj.multigeo]))], True)
|
||||
except Exception as e:
|
||||
pass
|
||||
|
||||
self.addChild(obj_name, [obj.options['name']])
|
||||
|
||||
# calculate physical dimensions
|
||||
xmin, ymin, xmax, ymax = obj.bounds()
|
||||
try:
|
||||
xmin, ymin, xmax, ymax = obj.bounds()
|
||||
except Exception as e:
|
||||
log.debug("PropertiesTool.addItems() --> %s" % str(e))
|
||||
return
|
||||
|
||||
length = abs(xmax - xmin)
|
||||
width = abs(ymax - ymin)
|
||||
|
||||
@@ -113,11 +130,60 @@ class Properties(FlatCAMTool):
|
||||
area = length * width
|
||||
self.addChild(dims, ['Box Area:', '%.4f %s' % (area, 'in2')], True)
|
||||
|
||||
self.addChild(units,
|
||||
['FlatCAM units:',
|
||||
{
|
||||
'in': 'Inch',
|
||||
'mm': 'Metric'
|
||||
}
|
||||
[str(self.app.ui.general_options_form.general_app_group.units_radio.get_value().lower())]], True)
|
||||
|
||||
for option in obj.options:
|
||||
if option is 'name':
|
||||
continue
|
||||
self.addChild(options, [str(option), str(obj.options[option])], True)
|
||||
|
||||
if obj.kind.lower() == 'gerber':
|
||||
for ap in obj.apertures:
|
||||
self.addChild(apertures, [str(ap), str(obj.apertures[ap])], True)
|
||||
elif obj.kind.lower() == 'excellon':
|
||||
for tool, value in obj.tools.items():
|
||||
self.addChild(tools, [str(tool), str(value['C'])], True)
|
||||
elif obj.kind.lower() == 'geometry':
|
||||
for tool, value in obj.tools.items():
|
||||
geo_tool = self.addParent(tools, str(tool), expanded=True, color=QtGui.QColor("#000000"), font=font)
|
||||
for k, v in value.items():
|
||||
if k == 'solid_geometry':
|
||||
printed_value = 'Present' if v else 'None'
|
||||
self.addChild(geo_tool, [str(k), printed_value], True)
|
||||
elif k == 'data':
|
||||
tool_data = self.addParent(geo_tool, str(k).capilalize(),
|
||||
color=QtGui.QColor("#000000"), font=font)
|
||||
for data_k, data_v in v.items():
|
||||
self.addChild(tool_data, [str(data_k), str(data_v)], True)
|
||||
else:
|
||||
self.addChild(geo_tool, [str(k), str(v)], True)
|
||||
elif obj.kind.lower() == 'cncjob':
|
||||
for tool, value in obj.cnc_tools.items():
|
||||
geo_tool = self.addParent(tools, str(tool), expanded=True, color=QtGui.QColor("#000000"), font=font)
|
||||
for k, v in value.items():
|
||||
if k == 'solid_geometry':
|
||||
printed_value = 'Present' if v else 'None'
|
||||
self.addChild(geo_tool, [str(k), printed_value], True)
|
||||
elif k == 'gcode':
|
||||
printed_value = 'Present' if v != '' else 'None'
|
||||
self.addChild(geo_tool, [str(k), printed_value], True)
|
||||
elif k == 'gcode_parsed':
|
||||
printed_value = 'Present' if v else 'None'
|
||||
self.addChild(geo_tool, [str(k), printed_value], True)
|
||||
elif k == 'data':
|
||||
tool_data = self.addParent(geo_tool, str(k).capitalize(),
|
||||
color=QtGui.QColor("#000000"), font=font)
|
||||
for data_k, data_v in v.items():
|
||||
self.addChild(tool_data, [str(data_k), str(data_v)], True)
|
||||
else:
|
||||
self.addChild(geo_tool, [str(k), str(v)], True)
|
||||
|
||||
self.addChild(separator, [''])
|
||||
|
||||
def addParent(self, parent, title, expanded=False, color=None, font=None):
|
||||
|
||||
Reference in New Issue
Block a user