From 37e7c8167d1d83d22c9f35eb57fe4ebe467a8c05 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Mon, 28 Jan 2019 02:47:53 +0200 Subject: [PATCH] - fixed the FlatCAMGerber.merge() function - added a new menu entry for the Gerber Join function: Edit -> Conversions -> "Join Gerber(s) to Gerber" allowing joining Gerber objects into a final Gerber object --- FlatCAMApp.py | 136 ++++++++++--------- FlatCAMGUI.py | 210 ++++++++++++++++------------- README.md | 4 +- flatcamTools/ToolNonCopperClear.py | 18 +-- flatcamTools/ToolPaint.py | 15 ++- 5 files changed, 210 insertions(+), 173 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index b550d4ac..e53d5d24 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -354,6 +354,7 @@ class App(QtCore.QObject): "excellon_tooldia": self.excellon_defaults_form.excellon_opt_group.tooldia_entry, "excellon_slot_tooldia": self.excellon_defaults_form.excellon_opt_group.slot_tooldia_entry, "excellon_gcode_type": self.excellon_defaults_form.excellon_opt_group.excellon_gcode_type_radio, + "geometry_plot": self.geometry_defaults_form.geometry_group.plot_cb, "geometry_segx": self.geometry_defaults_form.geometry_group.segx_entry, "geometry_segy": self.geometry_defaults_form.geometry_group.segy_entry, @@ -363,16 +364,9 @@ class App(QtCore.QObject): "geometry_feedrate_z": self.geometry_defaults_form.geometry_group.cncplunge_entry, "geometry_feedrate_rapid": self.geometry_defaults_form.geometry_group.cncfeedrate_rapid_entry, "geometry_cnctooldia": self.geometry_defaults_form.geometry_group.cnctooldia_entry, - "geometry_painttooldia": self.geometry_defaults_form.geometry_group.painttooldia_entry, "geometry_spindlespeed": self.geometry_defaults_form.geometry_group.cncspindlespeed_entry, "geometry_dwell": self.geometry_defaults_form.geometry_group.dwell_cb, "geometry_dwelltime": self.geometry_defaults_form.geometry_group.dwelltime_entry, - "geometry_paintoverlap": self.geometry_defaults_form.geometry_group.paintoverlap_entry, - "geometry_paintmargin": self.geometry_defaults_form.geometry_group.paintmargin_entry, - "geometry_paintmethod": self.geometry_defaults_form.geometry_group.paintmethod_combo, - "geometry_selectmethod": self.geometry_defaults_form.geometry_group.selectmethod_combo, - "geometry_pathconnect": self.geometry_defaults_form.geometry_group.pathconnect_cb, - "geometry_paintcontour": self.geometry_defaults_form.geometry_group.contour_cb, "geometry_ppname_g": self.geometry_defaults_form.geometry_group.pp_geometry_name_cb, "geometry_toolchange": self.geometry_defaults_form.geometry_group.toolchange_cb, "geometry_toolchangez": self.geometry_defaults_form.geometry_group.toolchangez_entry, @@ -383,6 +377,7 @@ class App(QtCore.QObject): "geometry_depthperpass": self.geometry_defaults_form.geometry_group.depthperpass_entry, "geometry_extracut": self.geometry_defaults_form.geometry_group.extracut_cb, "geometry_circle_steps": self.geometry_defaults_form.geometry_group.circle_steps_entry, + "cncjob_plot": self.cncjob_defaults_form.cncjob_group.plot_cb, "cncjob_tooldia": self.cncjob_defaults_form.cncjob_group.tooldia_entry, "cncjob_coords_decimals": self.cncjob_defaults_form.cncjob_group.coords_dec_entry, @@ -402,7 +397,15 @@ class App(QtCore.QObject): "tools_cutouttooldia": self.tools_defaults_form.tools_cutout_group.cutout_tooldia_entry, "tools_cutoutmargin": self.tools_defaults_form.tools_cutout_group.cutout_margin_entry, "tools_cutoutgapsize": self.tools_defaults_form.tools_cutout_group.cutout_gap_entry, - "tools_gaps_rect": self.tools_defaults_form.tools_cutout_group.gaps_radio + "tools_gaps_rect": self.tools_defaults_form.tools_cutout_group.gaps_radio, + + "tools_painttooldia": self.tools_defaults_form.tools_paint_group.painttooldia_entry, + "tools_paintoverlap": self.tools_defaults_form.tools_paint_group.paintoverlap_entry, + "tools_paintmargin": self.tools_defaults_form.tools_paint_group.paintmargin_entry, + "tools_paintmethod": self.tools_defaults_form.tools_paint_group.paintmethod_combo, + "tools_selectmethod": self.tools_defaults_form.tools_paint_group.selectmethod_combo, + "tools_pathconnect": self.tools_defaults_form.tools_paint_group.pathconnect_cb, + "tools_paintcontour": self.tools_defaults_form.tools_paint_group.contour_cb } # loads postprocessors self.postprocessors = load_postprocessors(self) @@ -439,6 +442,35 @@ class App(QtCore.QObject): "global_workspaceT": "A4P", "global_toolbar_view": 31, + "global_background_timeout": 300000, # Default value is 5 minutes + "global_verbose_error_level": 0, # Shell verbosity 0 = default + # (python trace only for unknown errors), + # 1 = show trace(show trace allways), + # 2 = (For the future). + + # Persistence + "global_last_folder": None, + "global_last_save_folder": None, + + # Default window geometry + "global_def_win_x": 100, + "global_def_win_y": 100, + "global_def_win_w": 1024, + "global_def_win_h": 650, + + # Constants... + "global_defaults_save_period_ms": 20000, # Time between default saves. + "global_shell_shape": [500, 300], # Shape of the shell in pixels. + "global_shell_at_startup": False, # Show the shell at startup. + "global_recent_limit": 10, # Max. items in recent list. + "fit_key": '1', + "zoom_out_key": '2', + "zoom_in_key": '3', + "grid_toggle_key": 'G', + "zoom_ratio": 1.5, + "global_point_clipboard_format": "(%.4f, %.4f)", + "global_zdownrate": None, + "gerber_plot": True, "gerber_solid": True, "gerber_multicolored": False, @@ -448,14 +480,15 @@ class App(QtCore.QObject): "gerber_combine_passes": False, "gerber_milling_type": "cl", - "gerber_noncoppermargin": 0.0, + "gerber_noncoppermargin": 0.1, "gerber_noncopperrounded": False, - "gerber_bboxmargin": 0.0, + "gerber_bboxmargin": 0.1, "gerber_bboxrounded": False, "gerber_circle_steps": 64, + "gerber_use_buffer_for_union": True, "excellon_plot": True, - "excellon_solid": False, + "excellon_solid": True, "excellon_format_upper_in": 2, "excellon_format_lower_in": 4, "excellon_format_upper_mm": 3, @@ -499,13 +532,6 @@ class App(QtCore.QObject): "geometry_spindlespeed": None, "geometry_dwell": False, "geometry_dwelltime": 1, - "geometry_painttooldia": 0.07, - "geometry_paintoverlap": 0.15, - "geometry_paintmargin": 0.0, - "geometry_paintmethod": "seed", - "geometry_selectmethod": "single", - "geometry_pathconnect": True, - "geometry_paintcontour": True, "geometry_ppname_g": 'default', "geometry_depthperpass": 0.002, "geometry_multidepth": False, @@ -522,45 +548,25 @@ class App(QtCore.QObject): "tools_ncctools": "1.0, 0.5", "tools_nccoverlap": 0.4, - "tools_nccmargin": 1, + "tools_nccmargin": 0.1, "tools_nccmethod": "seed", "tools_nccconnect": True, "tools_ncccontour": True, "tools_nccrest": False, - "tools_cutouttooldia": 0.07, + + "tools_cutouttooldia": 0.1, "tools_cutoutmargin": 0.1, "tools_cutoutgapsize": 0.15, "tools_gaps_rect": "4", - "global_background_timeout": 300000, # Default value is 5 minutes - "global_verbose_error_level": 0, # Shell verbosity 0 = default - # (python trace only for unknown errors), - # 1 = show trace(show trace allways), - # 2 = (For the future). + "tools_painttooldia": 0.07, + "tools_paintoverlap": 0.15, + "tools_paintmargin": 0.0, + "tools_paintmethod": "seed", + "tools_selectmethod": "single", + "tools_pathconnect": True, + "tools_paintcontour": True - # Persistence - "global_last_folder": None, - "global_last_save_folder": None, - - # Default window geometry - "global_def_win_x": 100, - "global_def_win_y": 100, - "global_def_win_w": 1024, - "global_def_win_h": 650, - - # Constants... - "global_defaults_save_period_ms": 20000, # Time between default saves. - "global_shell_shape": [500, 300], # Shape of the shell in pixels. - "global_shell_at_startup": False, # Show the shell at startup. - "global_recent_limit": 10, # Max. items in recent list. - "fit_key": '1', - "zoom_out_key": '2', - "zoom_in_key": '3', - "grid_toggle_key": 'G', - "zoom_ratio": 1.5, - "global_point_clipboard_format": "(%.4f, %.4f)", - "global_zdownrate": None, - "gerber_use_buffer_for_union": True }) ############################### @@ -648,10 +654,6 @@ class App(QtCore.QObject): "geometry_dwell": self.geometry_options_form.geometry_group.dwell_cb, "geometry_dwelltime": self.geometry_options_form.geometry_group.dwelltime_entry, "geometry_cnctooldia": self.geometry_options_form.geometry_group.cnctooldia_entry, - "geometry_painttooldia": self.geometry_options_form.geometry_group.painttooldia_entry, - "geometry_paintoverlap": self.geometry_options_form.geometry_group.paintoverlap_entry, - "geometry_paintmargin": self.geometry_options_form.geometry_group.paintmargin_entry, - "geometry_selectmethod": self.geometry_options_form.geometry_group.selectmethod_combo, "geometry_ppname_g": self.geometry_options_form.geometry_group.pp_geometry_name_cb, "geometry_toolchange": self.geometry_options_form.geometry_group.toolchange_cb, "geometry_toolchangez": self.geometry_options_form.geometry_group.toolchangez_entry, @@ -675,6 +677,14 @@ class App(QtCore.QObject): "tools_cutoutmargin": self.tools_options_form.tools_cutout_group.cutout_margin_entry, "tools_cutoutgapsize": self.tools_options_form.tools_cutout_group.cutout_gap_entry, "tools_gaps": self.tools_options_form.tools_cutout_group.gaps_radio, + + "tools_painttooldia": self.tools_options_form.tools_paint_group.painttooldia_entry, + "tools_paintoverlap": self.tools_options_form.tools_paint_group.paintoverlap_entry, + "tools_paintmargin": self.tools_options_form.tools_paint_group.paintmargin_entry, + "tools_paintmethod": self.tools_options_form.tools_paint_group.paintmethod_combo, + "tools_selectmethod": self.tools_options_form.tools_paint_group.selectmethod_combo, + "tools_pathconnect": self.tools_options_form.tools_paint_group.pathconnect_cb, + "tools_paintcontour": self.tools_options_form.tools_paint_group.contour_cb } for name in list(self.postprocessors.keys()): @@ -687,6 +697,11 @@ class App(QtCore.QObject): "units": "IN", "global_gridx": 1.0, "global_gridy": 1.0, + "global_background_timeout": 300000, # Default value is 5 minutes + "global_verbose_error_level": 0, # Shell verbosity: + # 0 = default(python trace only for unknown errors), + # 1 = show trace(show trace allways), 2 = (For the future). + "gerber_plot": True, "gerber_solid": True, "gerber_multicolored": False, @@ -698,6 +713,7 @@ class App(QtCore.QObject): "gerber_noncopperrounded": False, "gerber_bboxmargin": 0.0, "gerber_bboxrounded": False, + "excellon_plot": True, "excellon_solid": False, "excellon_format_upper_in": 2, @@ -736,10 +752,6 @@ class App(QtCore.QObject): "geometry_dwell": True, "geometry_dwelltime": 1000, "geometry_cnctooldia": 0.016, - "geometry_painttooldia": 0.07, - "geometry_paintoverlap": 0.15, - "geometry_paintmargin": 0.0, - "geometry_selectmethod": "single", "geometry_toolchange": False, "geometry_toolchangez": 2.0, "geometry_toolchangexy": "0.0, 0.0", @@ -763,10 +775,14 @@ class App(QtCore.QObject): "tools_cutoutgapsize": 0.15, "tools_gaps": "4", - "global_background_timeout": 300000, # Default value is 5 minutes - "global_verbose_error_level": 0, # Shell verbosity: - # 0 = default(python trace only for unknown errors), - # 1 = show trace(show trace allways), 2 = (For the future). + "tools_painttooldia": 0.07, + "tools_paintoverlap": 0.15, + "tools_paintmargin": 0.0, + "tools_paintmethod": "seed", + "tools_selectmethod": "single", + "tools_pathconnect": True, + "tools_paintcontour": True + }) self.options.update(self.defaults) # Copy app defaults to project options diff --git a/FlatCAMGUI.py b/FlatCAMGUI.py index 269dcdce..6ad444ad 100644 --- a/FlatCAMGUI.py +++ b/FlatCAMGUI.py @@ -960,10 +960,18 @@ class ToolsPreferencesUI(QtWidgets.QWidget): self.tools_ncc_group = ToolsNCCPrefGroupUI() self.tools_ncc_group.setFixedWidth(260) + self.tools_paint_group = ToolsPaintPrefGroupUI() + self.tools_paint_group.setFixedWidth(260) + self.tools_cutout_group = ToolsCutoutPrefGroupUI() self.tools_cutout_group.setFixedWidth(260) - self.layout.addWidget(self.tools_ncc_group) + self.vlay = QtWidgets.QVBoxLayout() + self.vlay.addWidget(self.tools_ncc_group) + self.vlay.addWidget(self.tools_paint_group) + + self.layout.addLayout(self.vlay) + self.layout.addWidget(self.tools_cutout_group) self.layout.addStretch() @@ -2187,101 +2195,6 @@ class GeometryPrefGroupUI(OptionsGroupUI): self.segy_entry = FCEntry() grid2.addWidget(self.segy_entry, 18, 1) - # ------------------------------ - ## Paint area - # ------------------------------ - self.paint_label = QtWidgets.QLabel('Paint Area:') - self.paint_label.setToolTip( - "Creates tool paths to cover the\n" - "whole area of a polygon (remove\n" - "all copper). You will be asked\n" - "to click on the desired polygon." - ) - self.layout.addWidget(self.paint_label) - - grid4 = QtWidgets.QGridLayout() - self.layout.addLayout(grid4) - - # Tool dia - ptdlabel = QtWidgets.QLabel('Tool dia:') - ptdlabel.setToolTip( - "Diameter of the tool to\n" - "be used in the operation." - ) - grid4.addWidget(ptdlabel, 0, 0) - - self.painttooldia_entry = LengthEntry() - grid4.addWidget(self.painttooldia_entry, 0, 1) - - # Overlap - ovlabel = QtWidgets.QLabel('Overlap:') - ovlabel.setToolTip( - "How much (fraction) of the tool\n" - "width to overlap each tool pass." - ) - grid4.addWidget(ovlabel, 1, 0) - self.paintoverlap_entry = LengthEntry() - grid4.addWidget(self.paintoverlap_entry, 1, 1) - - # Margin - marginlabel = QtWidgets.QLabel('Margin:') - marginlabel.setToolTip( - "Distance by which to avoid\n" - "the edges of the polygon to\n" - "be painted." - ) - grid4.addWidget(marginlabel, 2, 0) - self.paintmargin_entry = LengthEntry() - grid4.addWidget(self.paintmargin_entry, 2, 1) - - # Method - methodlabel = QtWidgets.QLabel('Method:') - methodlabel.setToolTip( - "Algorithm to paint the polygon:
" - "Standard: Fixed step inwards.
" - "Seed-based: Outwards from seed." - ) - grid4.addWidget(methodlabel, 3, 0) - self.paintmethod_combo = RadioSet([ - {"label": "Standard", "value": "standard"}, - {"label": "Seed-based", "value": "seed"}, - {"label": "Straight lines", "value": "lines"} - ], orientation='vertical', stretch=False) - grid4.addWidget(self.paintmethod_combo, 3, 1) - - # Connect lines - pathconnectlabel = QtWidgets.QLabel("Connect:") - pathconnectlabel.setToolTip( - "Draw lines between resulting\n" - "segments to minimize tool lifts." - ) - grid4.addWidget(pathconnectlabel, 4, 0) - self.pathconnect_cb = FCCheckBox() - grid4.addWidget(self.pathconnect_cb, 4, 1) - - # Paint contour - contourlabel = QtWidgets.QLabel("Contour:") - contourlabel.setToolTip( - "Cut around the perimeter of the polygon\n" - "to trim rough edges." - ) - grid4.addWidget(contourlabel, 5, 0) - self.contour_cb = FCCheckBox() - grid4.addWidget(self.contour_cb, 5, 1) - - # Polygon selection - selectlabel = QtWidgets.QLabel('Selection:') - selectlabel.setToolTip( - "How to select the polygons to paint." - ) - grid4.addWidget(selectlabel, 6, 0) - self.selectmethod_combo = RadioSet([ - {"label": "Single", "value": "single"}, - {"label": "All", "value": "all"}, - # {"label": "Rectangle", "value": "rectangle"} - ]) - grid4.addWidget(self.selectmethod_combo, 6, 1) - self.layout.addStretch() @@ -2543,6 +2456,111 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI): self.layout.addStretch() +class ToolsPaintPrefGroupUI(OptionsGroupUI): + def __init__(self, parent=None): + # OptionsGroupUI.__init__(self, "Paint Area Tool Options", parent=parent) + super(ToolsPaintPrefGroupUI, self).__init__(self) + + self.setTitle(str("Paint Area Tool Options")) + + # ------------------------------ + ## Paint area + # ------------------------------ + self.paint_label = QtWidgets.QLabel('Paint Area:') + self.paint_label.setToolTip( + "Creates tool paths to cover the\n" + "whole area of a polygon (remove\n" + "all copper). You will be asked\n" + "to click on the desired polygon." + ) + self.layout.addWidget(self.paint_label) + + grid0 = QtWidgets.QGridLayout() + self.layout.addLayout(grid0) + + # Tool dia + ptdlabel = QtWidgets.QLabel('Tool dia:') + ptdlabel.setToolTip( + "Diameter of the tool to\n" + "be used in the operation." + ) + grid0.addWidget(ptdlabel, 0, 0) + + self.painttooldia_entry = LengthEntry() + grid0.addWidget(self.painttooldia_entry, 0, 1) + + # Overlap + ovlabel = QtWidgets.QLabel('Overlap:') + ovlabel.setToolTip( + "How much (fraction) of the tool\n" + "width to overlap each tool pass." + ) + grid0.addWidget(ovlabel, 1, 0) + self.paintoverlap_entry = LengthEntry() + grid0.addWidget(self.paintoverlap_entry, 1, 1) + + # Margin + marginlabel = QtWidgets.QLabel('Margin:') + marginlabel.setToolTip( + "Distance by which to avoid\n" + "the edges of the polygon to\n" + "be painted." + ) + grid0.addWidget(marginlabel, 2, 0) + self.paintmargin_entry = LengthEntry() + grid0.addWidget(self.paintmargin_entry, 2, 1) + + # Method + methodlabel = QtWidgets.QLabel('Method:') + methodlabel.setToolTip( + "Algorithm to paint the polygon:
" + "Standard: Fixed step inwards.
" + "Seed-based: Outwards from seed." + ) + grid0.addWidget(methodlabel, 3, 0) + self.paintmethod_combo = RadioSet([ + {"label": "Standard", "value": "standard"}, + {"label": "Seed-based", "value": "seed"}, + {"label": "Straight lines", "value": "lines"} + ], orientation='vertical', stretch=False) + grid0.addWidget(self.paintmethod_combo, 3, 1) + + # Connect lines + pathconnectlabel = QtWidgets.QLabel("Connect:") + pathconnectlabel.setToolTip( + "Draw lines between resulting\n" + "segments to minimize tool lifts." + ) + grid0.addWidget(pathconnectlabel, 4, 0) + self.pathconnect_cb = FCCheckBox() + grid0.addWidget(self.pathconnect_cb, 4, 1) + + # Paint contour + contourlabel = QtWidgets.QLabel("Contour:") + contourlabel.setToolTip( + "Cut around the perimeter of the polygon\n" + "to trim rough edges." + ) + grid0.addWidget(contourlabel, 5, 0) + self.contour_cb = FCCheckBox() + grid0.addWidget(self.contour_cb, 5, 1) + + # Polygon selection + selectlabel = QtWidgets.QLabel('Selection:') + selectlabel.setToolTip( + "How to select the polygons to paint." + ) + grid0.addWidget(selectlabel, 6, 0) + self.selectmethod_combo = RadioSet([ + {"label": "Single", "value": "single"}, + {"label": "All", "value": "all"}, + # {"label": "Rectangle", "value": "rectangle"} + ]) + grid0.addWidget(self.selectmethod_combo, 6, 1) + + self.layout.addStretch() + + class FlatCAMActivityView(QtWidgets.QWidget): def __init__(self, parent=None): diff --git a/README.md b/README.md index 6101db65..4cb52c9f 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ CAD program, and create G-Code for Isolation routing. - fixed the FlatCAMGerber.merge() function - added a new menu entry for the Gerber Join function: Edit -> Conversions -> "Join Gerber(s) to Gerber" allowing joining Gerber objects into a final Gerber object - +- moved Paint Tool defaults from Geometry section to the Tools section in Edit -> Preferences 27.01.2018 @@ -23,7 +23,7 @@ CAD program, and create G-Code for Isolation routing. - added options for trace segmentation that can be useful for auto-levelling (code snippet from Lei Zheng from a rejected pull request on FlatCAM https://bitbucket.org/realthunder/ ) - added shortcut key 'L' for creating 'New Excellon' - added shortcut key combo 'SHIFT+S' for Running a Script. -- modified grbl_laser postprocessor file so it includes a Sxxxx command on the line with M02 (laser active) whenever a value is enter in the Spindlespeed entry field +- modified grbl_laser postprocessor file so it includes a Sxxxx command on the line with M03 (laser active) whenever a value is enter in the Spindlespeed entry field - remade the EDIT -> PREFERENCES window, the Excellon and Gerber sections. Created a new section named TOOLS 26.01.2019 diff --git a/flatcamTools/ToolNonCopperClear.py b/flatcamTools/ToolNonCopperClear.py index a603ffe7..7cd4bd70 100644 --- a/flatcamTools/ToolNonCopperClear.py +++ b/flatcamTools/ToolNonCopperClear.py @@ -263,7 +263,6 @@ class NonCopperClear(FlatCAMTool, Gerber): self.default_data.update({ "name": '_ncc', "plot": self.app.defaults["geometry_plot"], - "tooldia": self.app.defaults["geometry_painttooldia"], "cutz": self.app.defaults["geometry_cutz"], "vtipdia": 0.1, "vtipangle": 30, @@ -283,12 +282,15 @@ class NonCopperClear(FlatCAMTool, Gerber): "spindlespeed": self.app.defaults["geometry_spindlespeed"], "toolchangexy": self.app.defaults["geometry_toolchangexy"], "startz": self.app.defaults["geometry_startz"], - "paintmargin": self.app.defaults["geometry_paintmargin"], - "paintmethod": self.app.defaults["geometry_paintmethod"], - "selectmethod": self.app.defaults["geometry_selectmethod"], - "pathconnect": self.app.defaults["geometry_pathconnect"], - "paintcontour": self.app.defaults["geometry_paintcontour"], - "paintoverlap": self.app.defaults["geometry_paintoverlap"], + + "tooldia": self.app.defaults["tools_painttooldia"], + "paintmargin": self.app.defaults["tools_paintmargin"], + "paintmethod": self.app.defaults["tools_paintmethod"], + "selectmethod": self.app.defaults["tools_selectmethod"], + "pathconnect": self.app.defaults["tools_pathconnect"], + "paintcontour": self.app.defaults["tools_paintcontour"], + "paintoverlap": self.app.defaults["tools_paintoverlap"], + "nccoverlap": self.app.defaults["tools_nccoverlap"], "nccmargin": self.app.defaults["tools_nccmargin"], "nccmethod": self.app.defaults["tools_nccmethod"], @@ -298,7 +300,7 @@ class NonCopperClear(FlatCAMTool, Gerber): }) try: - dias = [float(eval(dia)) for dia in self.app.defaults["gerber_ncctools"].split(",")] + dias = [float(eval(dia)) for dia in self.app.defaults["tools_ncctools"].split(",")] except: log.error("At least one tool diameter needed. Verify in Edit -> Preferences -> TOOLS -> NCC Tools.") return diff --git a/flatcamTools/ToolPaint.py b/flatcamTools/ToolPaint.py index 2a14645f..319ac576 100644 --- a/flatcamTools/ToolPaint.py +++ b/flatcamTools/ToolPaint.py @@ -250,7 +250,6 @@ class ToolPaint(FlatCAMTool, Gerber): self.default_data.update({ "name": '_paint', "plot": self.app.defaults["geometry_plot"], - "tooldia": self.app.defaults["geometry_painttooldia"], "cutz": self.app.defaults["geometry_cutz"], "vtipdia": 0.1, "vtipangle": 30, @@ -270,12 +269,14 @@ class ToolPaint(FlatCAMTool, Gerber): "spindlespeed": self.app.defaults["geometry_spindlespeed"], "toolchangexy": self.app.defaults["geometry_toolchangexy"], "startz": self.app.defaults["geometry_startz"], - "paintmargin": self.app.defaults["geometry_paintmargin"], - "paintmethod": self.app.defaults["geometry_paintmethod"], - "selectmethod": self.app.defaults["geometry_selectmethod"], - "pathconnect": self.app.defaults["geometry_pathconnect"], - "paintcontour": self.app.defaults["geometry_paintcontour"], - "paintoverlap": self.app.defaults["geometry_paintoverlap"] + + "tooldia": self.app.defaults["tools_painttooldia"], + "paintmargin": self.app.defaults["tools_paintmargin"], + "paintmethod": self.app.defaults["tools_paintmethod"], + "selectmethod": self.app.defaults["tools_selectmethod"], + "pathconnect": self.app.defaults["tools_pathconnect"], + "paintcontour": self.app.defaults["tools_paintcontour"], + "paintoverlap": self.app.defaults["tools_paintoverlap"] }) self.tool_type_item_options = ["C1", "C2", "C3", "C4", "B", "V"]