From 4f9bb918d50d9b88359ef891c152905cd7e7491e Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Mon, 2 Nov 2020 18:03:13 +0200 Subject: [PATCH] - in Copper Thieving Tool added a new parameter to filter areas too small to be desired in the copper thieving; added it to Preferences too - Copper Thieving Tool added a new parameter to select what extra geometry to include in the Pattern Plating Mask; added it to the Preferences - made a wide change on the spinners GUI ranges: from 9999.9999 all values to 10000.0000 - fixed some late issues in Corner Markers Tool new feature (messages) - upgraded Calculator Tool and added the new parameter is the Preferences - updated translation strings --- CHANGELOG.md | 5 + appDatabase.py | 90 +-- appEditors/AppExcEditor.py | 10 +- appEditors/AppGeoEditor.py | 12 +- appEditors/AppGerberEditor.py | 16 +- appGUI/GUIElements.py | 2 +- appGUI/ObjectUI.py | 60 +- appGUI/preferences/PreferencesUIManager.py | 3 + .../cncjob/CNCJobAdvOptPrefGroupUI.py | 12 +- .../excellon/ExcellonEditorPrefGroupUI.py | 2 +- .../excellon/ExcellonOptPrefGroupUI.py | 2 +- .../general/GeneralAppPrefGroupUI.py | 8 +- .../geometry/GeometryAdvOptPrefGroupUI.py | 12 +- .../geometry/GeometryOptPrefGroupUI.py | 20 +- .../tools/Tools2CThievingPrefGroupUI.py | 161 +++-- .../preferences/tools/Tools2CalPrefGroupUI.py | 6 +- .../tools/Tools2EDrillsPrefGroupUI.py | 12 +- .../tools/Tools2FiducialsPrefGroupUI.py | 4 +- .../tools/Tools2InvertPrefGroupUI.py | 2 +- .../tools/Tools2PunchGerberPrefGroupUI.py | 12 +- .../tools/Tools2sidedPrefGroupUI.py | 2 +- .../tools/ToolsCalculatorsPrefGroupUI.py | 69 +- .../tools/ToolsCornersPrefGroupUI.py | 4 +- .../tools/ToolsCutoutPrefGroupUI.py | 16 +- .../tools/ToolsDrillPrefGroupUI.py | 32 +- .../preferences/tools/ToolsFilmPrefGroupUI.py | 4 +- .../preferences/tools/ToolsISOPrefGroupUI.py | 4 +- .../preferences/tools/ToolsNCCPrefGroupUI.py | 6 +- .../tools/ToolsPaintPrefGroupUI.py | 8 +- .../tools/ToolsPanelizePrefGroupUI.py | 8 +- .../tools/ToolsSolderpastePrefGroupUI.py | 22 +- .../tools/ToolsTransformPrefGroupUI.py | 10 +- appTools/ToolCalculators.py | 277 +++++--- appTools/ToolCalibration.py | 14 +- appTools/ToolCopperThieving.py | 461 ++++++++------ appTools/ToolCorners.py | 15 +- appTools/ToolCutOut.py | 14 +- appTools/ToolDblSided.py | 10 +- appTools/ToolDrilling.py | 32 +- appTools/ToolEtchCompensation.py | 4 +- appTools/ToolExtractDrills.py | 12 +- appTools/ToolFiducials.py | 4 +- appTools/ToolInvertGerber.py | 2 +- appTools/ToolIsolation.py | 6 +- appTools/ToolMilling.py | 36 +- appTools/ToolNCC.py | 10 +- appTools/ToolPaint.py | 6 +- appTools/ToolPunchGerber.py | 12 +- appTools/ToolSolderPaste.py | 22 +- appTools/ToolTransform.py | 2 +- defaults.py | 3 + locale/de/LC_MESSAGES/strings.mo | Bin 366061 -> 366092 bytes locale/de/LC_MESSAGES/strings.po | 598 +++++++++-------- locale/en/LC_MESSAGES/strings.mo | Bin 370932 -> 371630 bytes locale/en/LC_MESSAGES/strings.po | 598 +++++++++-------- locale/es/LC_MESSAGES/strings.mo | Bin 405216 -> 405922 bytes locale/es/LC_MESSAGES/strings.po | 595 +++++++++-------- locale/fr/LC_MESSAGES/strings.mo | Bin 405956 -> 405986 bytes locale/fr/LC_MESSAGES/strings.po | 601 ++++++++++-------- locale/it/LC_MESSAGES/strings.mo | Bin 390717 -> 391431 bytes locale/it/LC_MESSAGES/strings.po | 592 +++++++++-------- locale/pt_BR/LC_MESSAGES/strings.mo | Bin 392022 -> 392732 bytes locale/pt_BR/LC_MESSAGES/strings.po | 595 +++++++++-------- locale/ro/LC_MESSAGES/strings.mo | Bin 400806 -> 401555 bytes locale/ro/LC_MESSAGES/strings.po | 593 +++++++++-------- locale/ru/LC_MESSAGES/strings.mo | Bin 516990 -> 517902 bytes locale/ru/LC_MESSAGES/strings.po | 589 +++++++++-------- locale/tr/LC_MESSAGES/strings.mo | Bin 395948 -> 395994 bytes locale/tr/LC_MESSAGES/strings.po | 601 ++++++++++-------- locale_template/strings.pot | 581 +++++++++-------- 70 files changed, 4150 insertions(+), 3371 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3dd42f94..674ebc0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,11 @@ CHANGELOG for FlatCAM beta - in Corner Markers Tool - the new Gerber object will have also follow_geometry - upgraded the Fiducials Tool to create new objects instead of updating in place the source objects - upgraded the Copper Thieving Tool to create new objects instead of updating in place the source objects +- in Copper Thieving Tool added a new parameter to filter areas too small to be desired in the copper thieving; added it to Preferences too +- Copper Thieving Tool added a new parameter to select what extra geometry to include in the Pattern Plating Mask; added it to the Preferences +- made a wide change on the spinners GUI ranges: from 9999.9999 all values to 10000.0000 +- fixed some late issues in Corner Markers Tool new feature (messages) +- upgraded Calculator Tool and added the new parameter is the Preferences - updated translation strings 1.11.2020 diff --git a/appDatabase.py b/appDatabase.py index d9793347..bea177df 100644 --- a/appDatabase.py +++ b/appDatabase.py @@ -225,7 +225,7 @@ class ToolsDB2UI: _("Tool Diameter.")) self.dia_entry = FCDoubleSpinner() - self.dia_entry.set_range(-9999.9999, 9999.9999) + self.dia_entry.set_range(-10000.0000, 10000.0000) self.dia_entry.set_precision(self.decimals) self.dia_entry.setObjectName('gdb_dia') @@ -247,7 +247,7 @@ class ToolsDB2UI: ) self.tol_min_entry = FCDoubleSpinner(callback=self.confirmation_message) self.tol_min_entry.set_precision(self.decimals) - self.tol_min_entry.set_range(0, 9999.9999) + self.tol_min_entry.set_range(0, 10000.0000) self.tol_min_entry.setSingleStep(0.1) self.tol_min_entry.setObjectName("gdb_tol_min") @@ -261,7 +261,7 @@ class ToolsDB2UI: ) self.tol_max_entry = FCDoubleSpinner(callback=self.confirmation_message) self.tol_max_entry.set_precision(self.decimals) - self.tol_max_entry.set_range(0, 9999.9999) + self.tol_max_entry.set_range(0, 10000.0000) self.tol_max_entry.setSingleStep(0.1) self.tol_max_entry.setObjectName("gdb_tol_max") @@ -313,7 +313,7 @@ class ToolsDB2UI: "Diameter of the tip for V-Shape Tools.")) self.mill_vdia_entry = FCDoubleSpinner() - self.mill_vdia_entry.set_range(0.0000, 9999.9999) + self.mill_vdia_entry.set_range(0.0000, 10000.0000) self.mill_vdia_entry.set_precision(self.decimals) self.mill_vdia_entry.setObjectName('gdb_vdia') @@ -379,7 +379,7 @@ class ToolsDB2UI: "A value to be used as offset from the current path.")) self.mill_custom_offset_entry = FCDoubleSpinner() - self.mill_custom_offset_entry.set_range(-9999.9999, 9999.9999) + self.mill_custom_offset_entry.set_range(-10000.0000, 10000.0000) self.mill_custom_offset_entry.set_precision(self.decimals) self.mill_custom_offset_entry.setObjectName('gdb_custom_offset') @@ -398,7 +398,7 @@ class ToolsDB2UI: "The depth at which to cut into material.")) self.mill_cutz_entry = FCDoubleSpinner() - self.mill_cutz_entry.set_range(-9999.9999, 9999.9999) + self.mill_cutz_entry.set_range(-10000.0000, 10000.0000) self.mill_cutz_entry.set_precision(self.decimals) self.mill_cutz_entry.setObjectName('gdb_cutz') @@ -425,7 +425,7 @@ class ToolsDB2UI: "The value used to cut into material on each pass.")) self.mill_multidepth_entry = FCDoubleSpinner() - self.mill_multidepth_entry.set_range(-9999.9999, 9999.9999) + self.mill_multidepth_entry.set_range(-10000.0000, 10000.0000) self.mill_multidepth_entry.set_precision(self.decimals) self.mill_multidepth_entry.setObjectName('gdb_multidepth_entry') @@ -440,7 +440,7 @@ class ToolsDB2UI: "above the surface of the material, avoiding all fixtures.")) self.mill_travelz_entry = FCDoubleSpinner() - self.mill_travelz_entry.set_range(-9999.9999, 9999.9999) + self.mill_travelz_entry.set_range(-10000.0000, 10000.0000) self.mill_travelz_entry.set_precision(self.decimals) self.mill_travelz_entry.setObjectName('gdb_travelz') @@ -473,7 +473,7 @@ class ToolsDB2UI: "the extra cut.")) self.mill_ecut_length_entry = FCDoubleSpinner() - self.mill_ecut_length_entry.set_range(0.0000, 9999.9999) + self.mill_ecut_length_entry.set_range(0.0000, 10000.0000) self.mill_ecut_length_entry.set_precision(self.decimals) self.mill_ecut_length_entry.setObjectName('gdb_ecut_length') @@ -492,7 +492,7 @@ class ToolsDB2UI: "The speed on XY plane used while cutting into material.")) self.mill_frxy_entry = FCDoubleSpinner() - self.mill_frxy_entry.set_range(-999999.9999, 999999.9999) + self.mill_frxy_entry.set_range(-9910000.0000, 9910000.0000) self.mill_frxy_entry.set_precision(self.decimals) self.mill_frxy_entry.setObjectName('gdb_frxy') @@ -506,7 +506,7 @@ class ToolsDB2UI: "The speed on Z plane.")) self.mill_frz_entry = FCDoubleSpinner() - self.mill_frz_entry.set_range(-999999.9999, 999999.9999) + self.mill_frz_entry.set_range(-9910000.0000, 9910000.0000) self.mill_frz_entry.set_precision(self.decimals) self.mill_frz_entry.setObjectName('gdb_frz') @@ -522,7 +522,7 @@ class ToolsDB2UI: "the G0 g-code command. Mostly 3D printers.")) self.mill_frapids_entry = FCDoubleSpinner() - self.mill_frapids_entry.set_range(0.0000, 9999.9999) + self.mill_frapids_entry.set_range(0.0000, 10000.0000) self.mill_frapids_entry.set_precision(self.decimals) self.mill_frapids_entry.setObjectName('gdb_frapids') @@ -542,7 +542,7 @@ class ToolsDB2UI: "The speed of the spindle in RPM.")) self.mill_spindle_entry = FCDoubleSpinner() - self.mill_spindle_entry.set_range(-999999.9999, 999999.9999) + self.mill_spindle_entry.set_range(-9910000.0000, 9910000.0000) self.mill_spindle_entry.set_precision(self.decimals) self.mill_spindle_entry.setObjectName('gdb_spindle') @@ -569,7 +569,7 @@ class ToolsDB2UI: "A delay used to allow the motor spindle reach its set speed.")) self.mill_dwelltime_entry = FCDoubleSpinner() - self.mill_dwelltime_entry.set_range(0.0000, 9999.9999) + self.mill_dwelltime_entry.set_range(0.0000, 10000.0000) self.mill_dwelltime_entry.set_precision(self.decimals) self.mill_dwelltime_entry.setObjectName('gdb_dwelltime') @@ -652,7 +652,7 @@ class ToolsDB2UI: ) self.ncc_margin_entry = FCDoubleSpinner() self.ncc_margin_entry.set_precision(self.decimals) - self.ncc_margin_entry.set_range(-9999.9999, 9999.9999) + self.ncc_margin_entry.set_range(-10000.0000, 10000.0000) self.ncc_margin_entry.setObjectName("gdb_n_margin") self.grid2.addWidget(nccmarginlabel, 16, 0) @@ -763,7 +763,7 @@ class ToolsDB2UI: ) self.paint_offset_entry = FCDoubleSpinner() self.paint_offset_entry.set_precision(self.decimals) - self.paint_offset_entry.set_range(-9999.9999, 9999.9999) + self.paint_offset_entry.set_range(-10000.0000, 10000.0000) self.paint_offset_entry.setObjectName('gdb_p_offset') self.grid3.addWidget(marginlabel, 2, 0) @@ -927,9 +927,9 @@ class ToolsDB2UI: self.drill_cutz_entry.set_precision(self.decimals) if self.machinist_setting == 0: - self.drill_cutz_entry.set_range(-9999.9999, 0.0000) + self.drill_cutz_entry.set_range(-10000.0000, 0.0000) else: - self.drill_cutz_entry.set_range(-9999.9999, 9999.9999) + self.drill_cutz_entry.set_range(-10000.0000, 10000.0000) self.drill_cutz_entry.setSingleStep(0.1) self.drill_cutz_entry.setObjectName("gdb_e_cutz") @@ -947,7 +947,7 @@ class ToolsDB2UI: self.drill_offset_entry = FCDoubleSpinner(callback=self.confirmation_message) self.drill_offset_entry.set_precision(self.decimals) - self.drill_offset_entry.set_range(-9999.9999, 9999.9999) + self.drill_offset_entry.set_range(-10000.0000, 10000.0000) self.drill_offset_entry.setObjectName("gdb_e_offset") self.grid5.addWidget(self.tool_offset_label, 6, 0) @@ -976,7 +976,7 @@ class ToolsDB2UI: "The value used to cut into material on each pass.")) self.drill_maxdepth_entry = FCDoubleSpinner(callback=self.confirmation_message) self.drill_maxdepth_entry.set_precision(self.decimals) - self.drill_maxdepth_entry.set_range(0, 9999.9999) + self.drill_maxdepth_entry.set_range(0, 10000.0000) self.drill_maxdepth_entry.setSingleStep(0.1) self.drill_maxdepth_entry.setToolTip(_("Depth of each pass (positive).")) @@ -996,9 +996,9 @@ class ToolsDB2UI: self.drill_travelz_entry.set_precision(self.decimals) if self.machinist_setting == 0: - self.drill_travelz_entry.set_range(0.00001, 9999.9999) + self.drill_travelz_entry.set_range(0.00001, 10000.0000) else: - self.drill_travelz_entry.set_range(-9999.9999, 9999.9999) + self.drill_travelz_entry.set_range(-10000.0000, 10000.0000) self.drill_travelz_entry.setSingleStep(0.1) self.drill_travelz_entry.setObjectName("gdb_e_travelz") @@ -1021,7 +1021,7 @@ class ToolsDB2UI: ) self.drill_feedrate_z_entry = FCDoubleSpinner(callback=self.confirmation_message) self.drill_feedrate_z_entry.set_precision(self.decimals) - self.drill_feedrate_z_entry.set_range(0.0, 99999.9999) + self.drill_feedrate_z_entry.set_range(0.0, 910000.0000) self.drill_feedrate_z_entry.setSingleStep(0.1) self.drill_feedrate_z_entry.setObjectName("gdb_e_feedratez") @@ -1039,7 +1039,7 @@ class ToolsDB2UI: ) self.drill_feedrate_rapid_entry = FCDoubleSpinner(callback=self.confirmation_message) self.drill_feedrate_rapid_entry.set_precision(self.decimals) - self.drill_feedrate_rapid_entry.set_range(0.0, 99999.9999) + self.drill_feedrate_rapid_entry.set_range(0.0, 910000.0000) self.drill_feedrate_rapid_entry.setSingleStep(0.1) self.drill_feedrate_rapid_entry.setObjectName("gdb_e_fr_rapid") @@ -1086,7 +1086,7 @@ class ToolsDB2UI: "A delay used to allow the motor spindle reach its set speed.")) self.drill_dwelltime_entry = FCDoubleSpinner(callback=self.confirmation_message) self.drill_dwelltime_entry.set_precision(self.decimals) - self.drill_dwelltime_entry.set_range(0.0, 9999.9999) + self.drill_dwelltime_entry.set_range(0.0, 10000.0000) self.drill_dwelltime_entry.setSingleStep(0.1) self.drill_dwelltime_entry.setObjectName("gdb_e_dwelltime") @@ -1149,7 +1149,7 @@ class ToolsDB2UI: # Margin self.cutout_margin_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.cutout_margin_entry.set_range(-9999.9999, 9999.9999) + self.cutout_margin_entry.set_range(-10000.0000, 10000.0000) self.cutout_margin_entry.setSingleStep(0.1) self.cutout_margin_entry.set_precision(self.decimals) self.cutout_margin_entry.setObjectName('gdb_ct_margin') @@ -1211,9 +1211,9 @@ class ToolsDB2UI: self.cutout_thin_depth_entry.setObjectName('gdb_ct_gap_depth') if self.machinist_setting == 0: - self.cutout_thin_depth_entry.setRange(-9999.9999, -0.00001) + self.cutout_thin_depth_entry.setRange(-10000.0000, -0.00001) else: - self.cutout_thin_depth_entry.setRange(-9999.9999, 9999.9999) + self.cutout_thin_depth_entry.setRange(-10000.0000, 10000.0000) self.cutout_thin_depth_entry.setSingleStep(0.1) self.grid6.addWidget(self.thin_depth_label, 17, 0) @@ -2976,7 +2976,7 @@ class ToolsDB2(QtWidgets.QWidget): # dia_item = FCDoubleSpinner() # dia_item.set_precision(self.decimals) # dia_item.setSingleStep(0.1) -# dia_item.set_range(0.0, 9999.9999) +# dia_item.set_range(0.0, 10000.0000) # dia_item.set_value(float(tooldict['tooldia'])) # widget.setCellWidget(row, 2, dia_item) # @@ -2989,7 +2989,7 @@ class ToolsDB2(QtWidgets.QWidget): # c_offset_item = FCDoubleSpinner() # c_offset_item.set_precision(self.decimals) # c_offset_item.setSingleStep(0.1) -# c_offset_item.set_range(-9999.9999, 9999.9999) +# c_offset_item.set_range(-10000.0000, 10000.0000) # c_offset_item.set_value(float(tooldict['offset_value'])) # widget.setCellWidget(row, 4, c_offset_item) # @@ -3009,9 +3009,9 @@ class ToolsDB2(QtWidgets.QWidget): # cutz_item.set_precision(self.decimals) # cutz_item.setSingleStep(0.1) # if self.app.defaults['global_machinist_setting']: -# cutz_item.set_range(-9999.9999, 9999.9999) +# cutz_item.set_range(-10000.0000, 10000.0000) # else: -# cutz_item.set_range(-9999.9999, -0.0000) +# cutz_item.set_range(-10000.0000, -0.0000) # # cutz_item.set_value(float(data['cutz'])) # widget.setCellWidget(row, 7, cutz_item) @@ -3033,14 +3033,14 @@ class ToolsDB2(QtWidgets.QWidget): # depth_per_pass_item = FCDoubleSpinner() # depth_per_pass_item.set_precision(self.decimals) # depth_per_pass_item.setSingleStep(0.1) -# depth_per_pass_item.set_range(0.0, 9999.9999) +# depth_per_pass_item.set_range(0.0, 10000.0000) # depth_per_pass_item.set_value(float(data['depthperpass'])) # widget.setCellWidget(row, 9, depth_per_pass_item) # # vtip_dia_item = FCDoubleSpinner() # vtip_dia_item.set_precision(self.decimals) # vtip_dia_item.setSingleStep(0.1) -# vtip_dia_item.set_range(0.0, 9999.9999) +# vtip_dia_item.set_range(0.0, 10000.0000) # vtip_dia_item.set_value(float(data['vtipdia'])) # widget.setCellWidget(row, 10, vtip_dia_item) # @@ -3055,28 +3055,28 @@ class ToolsDB2(QtWidgets.QWidget): # travelz_item.set_precision(self.decimals) # travelz_item.setSingleStep(0.1) # if self.app.defaults['global_machinist_setting']: -# travelz_item.set_range(-9999.9999, 9999.9999) +# travelz_item.set_range(-10000.0000, 10000.0000) # else: -# travelz_item.set_range(0.0000, 9999.9999) +# travelz_item.set_range(0.0000, 10000.0000) # # travelz_item.set_value(float(data['travelz'])) # widget.setCellWidget(row, 12, travelz_item) # # fr_item = FCDoubleSpinner() # fr_item.set_precision(self.decimals) -# fr_item.set_range(0.0, 9999.9999) +# fr_item.set_range(0.0, 10000.0000) # fr_item.set_value(float(data['feedrate'])) # widget.setCellWidget(row, 13, fr_item) # # frz_item = FCDoubleSpinner() # frz_item.set_precision(self.decimals) -# frz_item.set_range(0.0, 9999.9999) +# frz_item.set_range(0.0, 10000.0000) # frz_item.set_value(float(data['feedrate_z'])) # widget.setCellWidget(row, 14, frz_item) # # frrapids_item = FCDoubleSpinner() # frrapids_item.set_precision(self.decimals) -# frrapids_item.set_range(0.0, 9999.9999) +# frrapids_item.set_range(0.0, 10000.0000) # frrapids_item.set_value(float(data['feedrate_rapid'])) # widget.setCellWidget(row, 15, frrapids_item) # @@ -3092,7 +3092,7 @@ class ToolsDB2(QtWidgets.QWidget): # # dwelltime_item = FCDoubleSpinner() # dwelltime_item.set_precision(self.decimals) -# dwelltime_item.set_range(0.0000, 9999.9999) +# dwelltime_item.set_range(0.0000, 10000.0000) # dwelltime_item.set_value(float(data['dwelltime'])) # widget.setCellWidget(row, 18, dwelltime_item) # @@ -3108,7 +3108,7 @@ class ToolsDB2(QtWidgets.QWidget): # # ecut_length_item = FCDoubleSpinner() # ecut_length_item.set_precision(self.decimals) -# ecut_length_item.set_range(0.0000, 9999.9999) +# ecut_length_item.set_range(0.0000, 10000.0000) # ecut_length_item.set_value(data['extracut_length']) # widget.setCellWidget(row, 21, ecut_length_item) # @@ -3123,9 +3123,9 @@ class ToolsDB2(QtWidgets.QWidget): # toolchangez_item.set_precision(self.decimals) # toolchangez_item.setSingleStep(0.1) # if self.app.defaults['global_machinist_setting']: -# toolchangez_item.set_range(-9999.9999, 9999.9999) +# toolchangez_item.set_range(-10000.0000, 10000.0000) # else: -# toolchangez_item.set_range(0.0000, 9999.9999) +# toolchangez_item.set_range(0.0000, 10000.0000) # # toolchangez_item.set_value(float(data['toolchangez'])) # widget.setCellWidget(row, 24, toolchangez_item) @@ -3137,9 +3137,9 @@ class ToolsDB2(QtWidgets.QWidget): # endz_item.set_precision(self.decimals) # endz_item.setSingleStep(0.1) # if self.app.defaults['global_machinist_setting']: -# endz_item.set_range(-9999.9999, 9999.9999) +# endz_item.set_range(-10000.0000, 10000.0000) # else: -# endz_item.set_range(0.0000, 9999.9999) +# endz_item.set_range(0.0000, 10000.0000) # # endz_item.set_value(float(data['endz'])) # widget.setCellWidget(row, 26, endz_item) diff --git a/appEditors/AppExcEditor.py b/appEditors/AppExcEditor.py index 929d2263..58ec9ce9 100644 --- a/appEditors/AppExcEditor.py +++ b/appEditors/AppExcEditor.py @@ -3773,7 +3773,7 @@ class AppExcEditorUI: hlay = QtWidgets.QHBoxLayout() self.addtool_entry = FCDoubleSpinner() self.addtool_entry.set_precision(self.decimals) - self.addtool_entry.set_range(0.0000, 9999.9999) + self.addtool_entry.set_range(0.0000, 10000.0000) hlay.addWidget(self.addtool_entry) @@ -3831,7 +3831,7 @@ class AppExcEditorUI: sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred) self.resdrill_entry.setSizePolicy(sizePolicy) self.resdrill_entry.set_precision(self.decimals) - self.resdrill_entry.set_range(0.0000, 9999.9999) + self.resdrill_entry.set_range(0.0000, 10000.0000) hlay2.addWidget(self.resdrill_entry) @@ -3924,7 +3924,7 @@ class AppExcEditorUI: self.drill_pitch_entry = FCDoubleSpinner() self.drill_pitch_entry.set_precision(self.decimals) - self.drill_pitch_entry.set_range(0.0000, 9999.9999) + self.drill_pitch_entry.set_range(0.0000, 10000.0000) self.linear_form.addRow(self.drill_pitch_label, self.drill_pitch_entry) @@ -4018,7 +4018,7 @@ class AppExcEditorUI: self.slot_length_entry = FCDoubleSpinner() self.slot_length_entry.set_precision(self.decimals) self.slot_length_entry.setSingleStep(0.1) - self.slot_length_entry.setRange(0.0000, 9999.9999) + self.slot_length_entry.setRange(0.0000, 10000.0000) self.slot_form.addRow(self.slot_length_label, self.slot_length_entry) @@ -4140,7 +4140,7 @@ class AppExcEditorUI: self.slot_array_pitch_entry = FCDoubleSpinner() self.slot_array_pitch_entry.set_precision(self.decimals) self.slot_array_pitch_entry.setSingleStep(0.1) - self.slot_array_pitch_entry.setRange(0.0000, 9999.9999) + self.slot_array_pitch_entry.setRange(0.0000, 10000.0000) self.slot_array_linear_form.addRow(self.slot_array_pitch_label, self.slot_array_pitch_entry) diff --git a/appEditors/AppGeoEditor.py b/appEditors/AppGeoEditor.py index 2ba27f9c..dc408f06 100644 --- a/appEditors/AppGeoEditor.py +++ b/appEditors/AppGeoEditor.py @@ -83,7 +83,7 @@ class BufferSelectionTool(AppTool): # Buffer distance self.buffer_distance_entry = FCDoubleSpinner() self.buffer_distance_entry.set_precision(self.decimals) - self.buffer_distance_entry.set_range(0.0000, 999999.9999) + self.buffer_distance_entry.set_range(0.0000, 9910000.0000) form_layout.addRow(_("Buffer distance:"), self.buffer_distance_entry) self.buffer_corner_lbl = FCLabel(_("Buffer corner:")) self.buffer_corner_lbl.setToolTip( @@ -445,7 +445,7 @@ class PaintOptionsTool(AppTool): grid.addWidget(ptdlabel, 0, 0) self.painttooldia_entry = FCDoubleSpinner() - self.painttooldia_entry.set_range(-9999.9999, 9999.9999) + self.painttooldia_entry.set_range(-10000.0000, 10000.0000) self.painttooldia_entry.set_precision(self.decimals) grid.addWidget(self.painttooldia_entry, 0, 1) @@ -477,7 +477,7 @@ class PaintOptionsTool(AppTool): "be painted.") ) self.paintmargin_entry = FCDoubleSpinner() - self.paintmargin_entry.set_range(-9999.9999, 9999.9999) + self.paintmargin_entry.set_range(-10000.0000, 10000.0000) self.paintmargin_entry.set_precision(self.decimals) grid.addWidget(marginlabel, 2, 0) @@ -942,7 +942,7 @@ class TransformEditorTool(AppTool): self.buffer_entry.set_precision(self.decimals) self.buffer_entry.setSingleStep(0.1) self.buffer_entry.setWrapping(True) - self.buffer_entry.set_range(-9999.9999, 9999.9999) + self.buffer_entry.set_range(-10000.0000, 10000.0000) self.buffer_button = FCButton(_("Buffer D")) self.buffer_button.setToolTip( @@ -1465,7 +1465,7 @@ class TransformEditorTool(AppTool): val_box = FCInputDialog(title=_("Offset on X axis ..."), text='%s: (%s)' % (_('Enter a distance Value'), str(units)), - min=-9999.9999, max=10000.0000, decimals=self.decimals, + min=-10000.0000, max=10000.0000, decimals=self.decimals, init_val=float(self.app.defaults['tools_transform_offset_x']), parent=self.app.ui) val_box.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/offsetx32.png')) @@ -1483,7 +1483,7 @@ class TransformEditorTool(AppTool): val_box = FCInputDialog(title=_("Offset on Y axis ..."), text='%s: (%s)' % (_('Enter a distance Value'), str(units)), - min=-9999.9999, max=10000.0000, decimals=self.decimals, + min=-10000.0000, max=10000.0000, decimals=self.decimals, init_val=float(self.app.defaults['tools_transform_offset_y']), parent=self.app.ui) val_box.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/offsety32.png')) diff --git a/appEditors/AppGerberEditor.py b/appEditors/AppGerberEditor.py index 7d8f3bda..31647d37 100644 --- a/appEditors/AppGerberEditor.py +++ b/appEditors/AppGerberEditor.py @@ -2620,7 +2620,7 @@ class AppGerberEditor(QtCore.QObject): # Buffer distance self.buffer_distance_entry = FCDoubleSpinner() self.buffer_distance_entry.set_precision(self.decimals) - self.buffer_distance_entry.set_range(-9999.9999, 9999.9999) + self.buffer_distance_entry.set_range(-10000.0000, 10000.0000) buf_form_layout.addRow('%s:' % _("Buffer distance"), self.buffer_distance_entry) self.buffer_corner_lbl = QtWidgets.QLabel('%s:' % _("Buffer corner")) @@ -2672,7 +2672,7 @@ class AppGerberEditor(QtCore.QObject): ) self.scale_factor_entry = FCDoubleSpinner() self.scale_factor_entry.set_precision(self.decimals) - self.scale_factor_entry.set_range(0.0000, 9999.9999) + self.scale_factor_entry.set_range(0.0000, 10000.0000) scale_form_layout.addRow(self.scale_factor_lbl, self.scale_factor_entry) @@ -2708,7 +2708,7 @@ class AppGerberEditor(QtCore.QObject): self.ma_upper_threshold_lbl = QtWidgets.QLabel('%s:' % _("Area UPPER threshold")) self.ma_upper_threshold_lbl.setToolTip( _("The threshold value, all areas less than this are marked.\n" - "Can have a value between 0.0000 and 9999.9999") + "Can have a value between 0.0000 and 10000.0000") ) self.ma_upper_threshold_entry = FCDoubleSpinner() self.ma_upper_threshold_entry.set_precision(self.decimals) @@ -2717,7 +2717,7 @@ class AppGerberEditor(QtCore.QObject): self.ma_lower_threshold_lbl = QtWidgets.QLabel('%s:' % _("Area LOWER threshold")) self.ma_lower_threshold_lbl.setToolTip( _("The threshold value, all areas more than this are marked.\n" - "Can have a value between 0.0000 and 9999.9999") + "Can have a value between 0.0000 and 10000.0000") ) self.ma_lower_threshold_entry = FCDoubleSpinner() self.ma_lower_threshold_entry.set_precision(self.decimals) @@ -2827,7 +2827,7 @@ class AppGerberEditor(QtCore.QObject): self.pad_pitch_entry = FCDoubleSpinner() self.pad_pitch_entry.set_precision(self.decimals) - self.pad_pitch_entry.set_range(0.0000, 9999.9999) + self.pad_pitch_entry.set_range(0.0000, 10000.0000) self.pad_pitch_entry.setSingleStep(0.1) self.linear_form.addRow(self.pad_pitch_label, self.pad_pitch_entry) @@ -5623,7 +5623,7 @@ class TransformEditorTool(AppTool): self.buffer_entry.set_precision(self.decimals) self.buffer_entry.setSingleStep(0.1) self.buffer_entry.setWrapping(True) - self.buffer_entry.set_range(-9999.9999, 9999.9999) + self.buffer_entry.set_range(-10000.0000, 10000.0000) self.buffer_button = FCButton(_("Buffer D")) self.buffer_button.setToolTip( @@ -6198,7 +6198,7 @@ class TransformEditorTool(AppTool): val_box = FCInputDialog(title=_("Offset on X axis ..."), text='%s: (%s)' % (_('Enter a distance Value'), str(units)), - min=-9999.9999, max=10000.0000, decimals=self.decimals, + min=-10000.0000, max=10000.0000, decimals=self.decimals, init_val=float(self.app.defaults['tools_transform_offset_x']), parent=self.app.ui) val_box.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/offsetx32.png')) @@ -6216,7 +6216,7 @@ class TransformEditorTool(AppTool): val_box = FCInputDialog(title=_("Offset on Y axis ..."), text='%s: (%s)' % (_('Enter a distance Value'), str(units)), - min=-9999.9999, max=10000.0000, decimals=self.decimals, + min=-10000.0000, max=10000.0000, decimals=self.decimals, init_val=float(self.app.defaults['tools_transform_offset_y']), parent=self.app.ui) val_box.setWindowIcon(QtGui.QIcon(self.app.resource_location + '/offsety32.png')) diff --git a/appGUI/GUIElements.py b/appGUI/GUIElements.py index 081c47eb..3b597c37 100644 --- a/appGUI/GUIElements.py +++ b/appGUI/GUIElements.py @@ -1160,7 +1160,7 @@ class FCDoubleSlider(QtWidgets.QSlider): class FCSliderWithDoubleSpinner(QtWidgets.QFrame): - def __init__(self, min=0, max=9999.9999, step=1, precision=4, orientation='horizontal', **kwargs): + def __init__(self, min=0, max=10000.0000, step=1, precision=4, orientation='horizontal', **kwargs): super().__init__(**kwargs) self.slider = FCDoubleSlider(orientation=orientation) diff --git a/appGUI/ObjectUI.py b/appGUI/ObjectUI.py index 342bb3eb..d170ce83 100644 --- a/appGUI/ObjectUI.py +++ b/appGUI/ObjectUI.py @@ -451,7 +451,7 @@ class GerberObjectUI(ObjectUI): ) self.noncopper_margin_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.noncopper_margin_entry.set_range(-9999.9999, 9999.9999) + self.noncopper_margin_entry.set_range(-10000.0000, 10000.0000) self.noncopper_margin_entry.set_precision(self.decimals) self.noncopper_margin_entry.setSingleStep(0.1) @@ -489,7 +489,7 @@ class GerberObjectUI(ObjectUI): "to the nearest polygon.") ) self.bbmargin_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.bbmargin_entry.set_range(-9999.9999, 9999.9999) + self.bbmargin_entry.set_range(-10000.0000, 10000.0000) self.bbmargin_entry.set_precision(self.decimals) self.bbmargin_entry.setSingleStep(0.1) @@ -796,7 +796,7 @@ class ExcellonObjectUI(ObjectUI): self.tooldia_entry = FCDoubleSpinner(callback=self.confirmation_message) self.tooldia_entry.set_precision(self.decimals) - self.tooldia_entry.set_range(0.0, 9999.9999) + self.tooldia_entry.set_range(0.0, 10000.0000) self.tooldia_entry.setSingleStep(0.1) self.generate_milling_button = QtWidgets.QPushButton(_('Mill Drills')) @@ -816,7 +816,7 @@ class ExcellonObjectUI(ObjectUI): self.slot_tooldia_entry = FCDoubleSpinner(callback=self.confirmation_message) self.slot_tooldia_entry.set_precision(self.decimals) - self.slot_tooldia_entry.set_range(0.0, 9999.9999) + self.slot_tooldia_entry.set_range(0.0, 10000.0000) self.slot_tooldia_entry.setSingleStep(0.1) self.generate_milling_slots_button = QtWidgets.QPushButton(_('Mill Slots')) @@ -1065,7 +1065,7 @@ class GeometryObjectUI(ObjectUI): ) self.tool_offset_entry = FCDoubleSpinner(callback=self.confirmation_message) self.tool_offset_entry.set_precision(self.decimals) - self.tool_offset_entry.set_range(-9999.9999, 9999.9999) + self.tool_offset_entry.set_range(-10000.0000, 10000.0000) self.tool_offset_entry.setSingleStep(0.1) grid1.addWidget(self.tool_offset_lbl, 0, 0) @@ -1085,7 +1085,7 @@ class GeometryObjectUI(ObjectUI): ) self.addtool_entry = FCDoubleSpinner(callback=self.confirmation_message) self.addtool_entry.set_precision(self.decimals) - self.addtool_entry.set_range(0.00001, 9999.9999) + self.addtool_entry.set_range(0.00001, 10000.0000) self.addtool_entry.setSingleStep(0.1) grid1.addWidget(self.addtool_entry_lbl, 3, 0) @@ -1176,7 +1176,7 @@ class GeometryObjectUI(ObjectUI): ) self.tipdia_entry = FCDoubleSpinner(callback=self.confirmation_message) self.tipdia_entry.set_precision(self.decimals) - self.tipdia_entry.set_range(0.00001, 9999.9999) + self.tipdia_entry.set_range(0.00001, 10000.0000) self.tipdia_entry.setSingleStep(0.1) self.grid3.addWidget(self.tipdialabel, 1, 0) @@ -1210,9 +1210,9 @@ class GeometryObjectUI(ObjectUI): self.cutz_entry.set_precision(self.decimals) if machinist_setting == 0: - self.cutz_entry.set_range(-9999.9999, 0.0000) + self.cutz_entry.set_range(-10000.0000, 0.0000) else: - self.cutz_entry.set_range(-9999.9999, 9999.9999) + self.cutz_entry.set_range(-10000.0000, 10000.0000) self.cutz_entry.setSingleStep(0.1) @@ -1232,7 +1232,7 @@ class GeometryObjectUI(ObjectUI): self.maxdepth_entry = FCDoubleSpinner(callback=self.confirmation_message) self.maxdepth_entry.set_precision(self.decimals) - self.maxdepth_entry.set_range(0, 9999.9999) + self.maxdepth_entry.set_range(0, 10000.0000) self.maxdepth_entry.setSingleStep(0.1) self.maxdepth_entry.setToolTip( @@ -1255,9 +1255,9 @@ class GeometryObjectUI(ObjectUI): self.travelz_entry.set_precision(self.decimals) if machinist_setting == 0: - self.travelz_entry.set_range(0.00001, 9999.9999) + self.travelz_entry.set_range(0.00001, 10000.0000) else: - self.travelz_entry.set_range(-9999.9999, 9999.9999) + self.travelz_entry.set_range(-10000.0000, 10000.0000) self.travelz_entry.setSingleStep(0.1) @@ -1272,7 +1272,7 @@ class GeometryObjectUI(ObjectUI): ) self.cncfeedrate_entry = FCDoubleSpinner(callback=self.confirmation_message) self.cncfeedrate_entry.set_precision(self.decimals) - self.cncfeedrate_entry.set_range(0, 99999.9999) + self.cncfeedrate_entry.set_range(0, 910000.0000) self.cncfeedrate_entry.setSingleStep(0.1) self.grid3.addWidget(self.frlabel, 10, 0) @@ -1287,7 +1287,7 @@ class GeometryObjectUI(ObjectUI): ) self.feedrate_z_entry = FCDoubleSpinner(callback=self.confirmation_message) self.feedrate_z_entry.set_precision(self.decimals) - self.feedrate_z_entry.set_range(0, 99999.9999) + self.feedrate_z_entry.set_range(0, 910000.0000) self.feedrate_z_entry.setSingleStep(0.1) self.grid3.addWidget(self.frzlabel, 11, 0) @@ -1304,7 +1304,7 @@ class GeometryObjectUI(ObjectUI): ) self.feedrate_rapid_entry = FCDoubleSpinner(callback=self.confirmation_message) self.feedrate_rapid_entry.set_precision(self.decimals) - self.feedrate_rapid_entry.set_range(0, 99999.9999) + self.feedrate_rapid_entry.set_range(0, 910000.0000) self.feedrate_rapid_entry.setSingleStep(0.1) self.grid3.addWidget(self.fr_rapidlabel, 12, 0) @@ -1362,7 +1362,7 @@ class GeometryObjectUI(ObjectUI): ) self.dwelltime_entry = FCDoubleSpinner(callback=self.confirmation_message) self.dwelltime_entry.set_precision(self.decimals) - self.dwelltime_entry.set_range(0, 9999.9999) + self.dwelltime_entry.set_range(0, 10000.0000) self.dwelltime_entry.setSingleStep(0.1) self.dwelltime_entry.setToolTip( @@ -1381,7 +1381,7 @@ class GeometryObjectUI(ObjectUI): ) self.pdepth_entry = FCDoubleSpinner(callback=self.confirmation_message) self.pdepth_entry.set_precision(self.decimals) - self.pdepth_entry.set_range(-9999.9999, 9999.9999) + self.pdepth_entry.set_range(-10000.0000, 10000.0000) self.pdepth_entry.setSingleStep(0.1) self.grid3.addWidget(self.pdepth_label, 17, 0) @@ -1397,7 +1397,7 @@ class GeometryObjectUI(ObjectUI): ) self.feedrate_probe_entry = FCDoubleSpinner(callback=self.confirmation_message) self.feedrate_probe_entry.set_precision(self.decimals) - self.feedrate_probe_entry.set_range(0.0, 9999.9999) + self.feedrate_probe_entry.set_range(0.0, 10000.0000) self.feedrate_probe_entry.setSingleStep(0.1) self.grid3.addWidget(self.feedrate_probe_label, 18, 0) @@ -1458,9 +1458,9 @@ class GeometryObjectUI(ObjectUI): ) if machinist_setting == 0: - self.toolchangez_entry.set_range(0, 9999.9999) + self.toolchangez_entry.set_range(0, 10000.0000) else: - self.toolchangez_entry.set_range(-9999.9999, 9999.9999) + self.toolchangez_entry.set_range(-10000.0000, 10000.0000) self.toolchangez_entry.setSingleStep(0.1) self.ois_tcz_geo = OptionalInputSection(self.toolchangeg_cb, [self.toolchangez_entry]) @@ -1489,9 +1489,9 @@ class GeometryObjectUI(ObjectUI): self.endz_entry.set_precision(self.decimals) if machinist_setting == 0: - self.endz_entry.set_range(0, 9999.9999) + self.endz_entry.set_range(0, 10000.0000) else: - self.endz_entry.set_range(-9999.9999, 9999.9999) + self.endz_entry.set_range(-10000.0000, 10000.0000) self.endz_entry.setSingleStep(0.1) @@ -1589,7 +1589,7 @@ class GeometryObjectUI(ObjectUI): self.over_z_label.setToolTip(_("The height Z to which the tool will rise in order to avoid\n" "an interdiction area.")) self.over_z_entry = FCDoubleSpinner() - self.over_z_entry.set_range(0.000, 9999.9999) + self.over_z_entry.set_range(0.000, 10000.0000) self.over_z_entry.set_precision(self.decimals) grid_a1.addWidget(self.over_z_label, 2, 0) @@ -1642,7 +1642,7 @@ class GeometryObjectUI(ObjectUI): ) self.polish_dia_entry = FCDoubleSpinner(callback=self.confirmation_message) self.polish_dia_entry.set_precision(self.decimals) - self.polish_dia_entry.set_range(0.000, 9999.9999) + self.polish_dia_entry.set_range(0.000, 10000.0000) self.polish_dia_entry.setObjectName("g_polish_dia") self.grid4.addWidget(self.polish_dia_lbl, 16, 0) @@ -1671,7 +1671,7 @@ class GeometryObjectUI(ObjectUI): ) self.polish_pressure_entry = FCDoubleSpinner(callback=self.confirmation_message) self.polish_pressure_entry.set_precision(self.decimals) - self.polish_pressure_entry.set_range(-9999.9999, 9999.9999) + self.polish_pressure_entry.set_range(-10000.0000, 10000.0000) self.polish_pressure_entry.setObjectName("g_polish_pressure") self.grid4.addWidget(self.polish_pressure_lbl, 18, 0) @@ -1684,7 +1684,7 @@ class GeometryObjectUI(ObjectUI): ) self.polish_margin_entry = FCDoubleSpinner(callback=self.confirmation_message) self.polish_margin_entry.set_precision(self.decimals) - self.polish_margin_entry.set_range(-9999.9999, 9999.9999) + self.polish_margin_entry.set_range(-10000.0000, 10000.0000) self.polish_margin_entry.setObjectName("g_polish_margin") self.grid4.addWidget(self.polish_margin_lbl, 20, 0) @@ -2046,7 +2046,7 @@ class CNCObjectUI(ObjectUI): self.exc_cnc_tools_table.setColumnHidden(4, True) self.tooldia_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.tooldia_entry.set_range(0, 9999.9999) + self.tooldia_entry.set_range(0, 10000.0000) self.tooldia_entry.set_precision(self.decimals) self.tooldia_entry.setSingleStep(0.1) self.custom_box.addWidget(self.tooldia_entry) @@ -2156,7 +2156,7 @@ class CNCObjectUI(ObjectUI): ) self.ptravelz_entry = FCDoubleSpinner() self.ptravelz_entry.set_precision(self.decimals) - self.ptravelz_entry.set_range(0.0000, 9999.9999) + self.ptravelz_entry.set_range(0.0000, 10000.0000) grid0.addWidget(self.ptravelz_label, 9, 0) grid0.addWidget(self.ptravelz_entry, 9, 1) @@ -2169,7 +2169,7 @@ class CNCObjectUI(ObjectUI): ) self.pdepth_entry = FCDoubleSpinner() self.pdepth_entry.set_precision(self.decimals) - self.pdepth_entry.set_range(-99999.9999, 0.0000) + self.pdepth_entry.set_range(-910000.0000, 0.0000) grid0.addWidget(self.pdepth_label, 11, 0) grid0.addWidget(self.pdepth_entry, 11, 1) @@ -2181,7 +2181,7 @@ class CNCObjectUI(ObjectUI): ) self.feedrate_probe_entry = FCDoubleSpinner() self.feedrate_probe_entry.set_precision(self.decimals) - self.feedrate_probe_entry.set_range(0, 99999.9999) + self.feedrate_probe_entry.set_range(0, 910000.0000) grid0.addWidget(self.feedrate_probe_label, 13, 0) grid0.addWidget(self.feedrate_probe_entry, 13, 1) diff --git a/appGUI/preferences/PreferencesUIManager.py b/appGUI/preferences/PreferencesUIManager.py index ea1cbd17..26fe8312 100644 --- a/appGUI/preferences/PreferencesUIManager.py +++ b/appGUI/preferences/PreferencesUIManager.py @@ -498,6 +498,7 @@ class PreferencesUIManager: "tools_calc_vshape_cut_z": self.ui.tools_defaults_form.tools_calculators_group.cut_z_entry, "tools_calc_electro_length": self.ui.tools_defaults_form.tools_calculators_group.pcblength_entry, "tools_calc_electro_width": self.ui.tools_defaults_form.tools_calculators_group.pcbwidth_entry, + "tools_calc_electro_area": self.ui.tools_defaults_form.tools_calculators_group.area_entry, "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, @@ -596,6 +597,7 @@ class PreferencesUIManager: # Copper Thieving Tool "tools_copper_thieving_clearance": self.ui.tools2_defaults_form.tools2_cfill_group.clearance_entry, "tools_copper_thieving_margin": self.ui.tools2_defaults_form.tools2_cfill_group.margin_entry, + "tools_copper_thieving_area": self.ui.tools2_defaults_form.tools2_cfill_group.area_entry, "tools_copper_thieving_reference": self.ui.tools2_defaults_form.tools2_cfill_group.reference_radio, "tools_copper_thieving_box_type": self.ui.tools2_defaults_form.tools2_cfill_group.bbox_type_radio, "tools_copper_thieving_circle_steps": self.ui.tools2_defaults_form.tools2_cfill_group.circlesteps_entry, @@ -610,6 +612,7 @@ class PreferencesUIManager: "tools_copper_thieving_rb_margin": self.ui.tools2_defaults_form.tools2_cfill_group.rb_margin_entry, "tools_copper_thieving_rb_thickness": self.ui.tools2_defaults_form.tools2_cfill_group.rb_thickness_entry, "tools_copper_thieving_mask_clearance": self.ui.tools2_defaults_form.tools2_cfill_group.clearance_ppm_entry, + "tools_copper_thieving_geo_choice": self.ui.tools2_defaults_form.tools2_cfill_group.ppm_choice_radio, # Fiducials Tool "tools_fiducials_dia": self.ui.tools2_defaults_form.tools2_fiducials_group.dia_entry, diff --git a/appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py b/appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py index 7fa2e4d8..fb10bcbb 100644 --- a/appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py +++ b/appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py @@ -122,7 +122,7 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI): ) self.ptravelz_entry = FCDoubleSpinner() self.ptravelz_entry.set_precision(self.decimals) - self.ptravelz_entry.set_range(0.0000, 9999.9999) + self.ptravelz_entry.set_range(0.0000, 10000.0000) grid0.addWidget(self.ptravelz_label, 14, 0) grid0.addWidget(self.ptravelz_entry, 14, 1) @@ -135,7 +135,7 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI): ) self.pdepth_entry = FCDoubleSpinner() self.pdepth_entry.set_precision(self.decimals) - self.pdepth_entry.set_range(-99999.9999, 0.0000) + self.pdepth_entry.set_range(-910000.0000, 0.0000) grid0.addWidget(self.pdepth_label, 16, 0) grid0.addWidget(self.pdepth_entry, 16, 1) @@ -147,7 +147,7 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI): ) self.feedrate_probe_entry = FCDoubleSpinner() self.feedrate_probe_entry.set_precision(self.decimals) - self.feedrate_probe_entry.set_range(0, 99999.9999) + self.feedrate_probe_entry.set_range(0, 910000.0000) grid0.addWidget(self.feedrate_probe_label, 18, 0) grid0.addWidget(self.feedrate_probe_entry, 18, 1) @@ -176,7 +176,7 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI): self.jog_step_entry = FCDoubleSpinner() self.jog_step_entry.set_precision(self.decimals) - self.jog_step_entry.set_range(0, 99999.9999) + self.jog_step_entry.set_range(0, 910000.0000) grid0.addWidget(self.jog_step_label, 24, 0) grid0.addWidget(self.jog_step_entry, 24, 1) @@ -189,7 +189,7 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI): self.jog_fr_entry = FCDoubleSpinner() self.jog_fr_entry.set_precision(self.decimals) - self.jog_fr_entry.set_range(0, 99999.9999) + self.jog_fr_entry.set_range(0, 910000.0000) grid0.addWidget(self.jog_fr_label, 26, 0) grid0.addWidget(self.jog_fr_entry, 26, 1) @@ -202,7 +202,7 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI): self.jog_travelz_entry = FCDoubleSpinner() self.jog_travelz_entry.set_precision(self.decimals) - self.jog_travelz_entry.set_range(0, 99999.9999) + self.jog_travelz_entry.set_range(0, 910000.0000) grid0.addWidget(self.jog_travelz_label, 28, 0) grid0.addWidget(self.jog_travelz_entry, 28, 1) diff --git a/appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py b/appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py index 83cbb6f7..a28ad9b1 100644 --- a/appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py +++ b/appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py @@ -103,7 +103,7 @@ class ExcellonEditorPrefGroupUI(OptionsGroupUI): ) # self.drill_pitch_label.setMinimumWidth(100) self.drill_pitch_entry = FCDoubleSpinner() - self.drill_pitch_entry.set_range(0, 99999.9999) + self.drill_pitch_entry.set_range(0, 910000.0000) self.drill_pitch_entry.set_precision(self.decimals) grid0.addWidget(self.drill_pitch_label, 5, 0) diff --git a/appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py b/appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py index de1c14c3..6718c103 100644 --- a/appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py +++ b/appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py @@ -84,7 +84,7 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): self.mill_dia_entry = FCDoubleSpinner() self.mill_dia_entry.set_precision(self.decimals) - self.mill_dia_entry.set_range(0.0000, 9999.9999) + self.mill_dia_entry.set_range(0.0000, 10000.0000) grid2.addWidget(self.mill_dia_label, 2, 0) grid2.addWidget(self.mill_dia_entry, 2, 1) diff --git a/appGUI/preferences/general/GeneralAppPrefGroupUI.py b/appGUI/preferences/general/GeneralAppPrefGroupUI.py index d805a072..64a785b6 100644 --- a/appGUI/preferences/general/GeneralAppPrefGroupUI.py +++ b/appGUI/preferences/general/GeneralAppPrefGroupUI.py @@ -316,7 +316,7 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): # Top Margin value self.tmargin_entry = FCDoubleSpinner() self.tmargin_entry.set_precision(self.decimals) - self.tmargin_entry.set_range(0.0000, 9999.9999) + self.tmargin_entry.set_range(0.0000, 10000.0000) self.tmargin_label = QtWidgets.QLabel('%s:' % _("Top Margin")) self.tmargin_label.setToolTip( @@ -329,7 +329,7 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): # Bottom Margin value self.bmargin_entry = FCDoubleSpinner() self.bmargin_entry.set_precision(self.decimals) - self.bmargin_entry.set_range(0.0000, 9999.9999) + self.bmargin_entry.set_range(0.0000, 10000.0000) self.bmargin_label = QtWidgets.QLabel('%s:' % _("Bottom Margin")) self.bmargin_label.setToolTip( @@ -342,7 +342,7 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): # Left Margin value self.lmargin_entry = FCDoubleSpinner() self.lmargin_entry.set_precision(self.decimals) - self.lmargin_entry.set_range(0.0000, 9999.9999) + self.lmargin_entry.set_range(0.0000, 10000.0000) self.lmargin_label = QtWidgets.QLabel('%s:' % _("Left Margin")) self.lmargin_label.setToolTip( @@ -355,7 +355,7 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): # Right Margin value self.rmargin_entry = FCDoubleSpinner() self.rmargin_entry.set_precision(self.decimals) - self.rmargin_entry.set_range(0.0000, 9999.9999) + self.rmargin_entry.set_range(0.0000, 10000.0000) self.rmargin_label = QtWidgets.QLabel('%s:' % _("Right Margin")) self.rmargin_label.setToolTip( diff --git a/appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py b/appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py index 8242e454..7d855248 100644 --- a/appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py +++ b/appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py @@ -73,7 +73,7 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): "ignore for any other cases.") ) self.feedrate_rapid_entry = FCDoubleSpinner() - self.feedrate_rapid_entry.set_range(0, 99999.9999) + self.feedrate_rapid_entry.set_range(0, 910000.0000) self.feedrate_rapid_entry.set_precision(self.decimals) self.feedrate_rapid_entry.setSingleStep(0.1) self.feedrate_rapid_entry.setWrapping(True) @@ -125,7 +125,7 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): _("The feedrate used while the probe is probing.") ) self.feedrate_probe_entry = FCDoubleSpinner() - self.feedrate_probe_entry.set_range(0, 99999.9999) + self.feedrate_probe_entry.set_range(0, 910000.0000) self.feedrate_probe_entry.set_precision(self.decimals) self.feedrate_probe_entry.setSingleStep(0.1) self.feedrate_probe_entry.setWrapping(True) @@ -243,7 +243,7 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): self.over_z_label.setToolTip(_("The height Z to which the tool will rise in order to avoid\n" "an interdiction area.")) self.over_z_entry = FCDoubleSpinner() - self.over_z_entry.set_range(0.000, 9999.9999) + self.over_z_entry.set_range(0.000, 10000.0000) self.over_z_entry.set_precision(self.decimals) grid1.addWidget(self.over_z_label, 18, 0) @@ -271,7 +271,7 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): ) self.polish_dia_entry = FCDoubleSpinner() self.polish_dia_entry.set_precision(self.decimals) - self.polish_dia_entry.set_range(0.000, 9999.9999) + self.polish_dia_entry.set_range(0.000, 10000.0000) grid1.addWidget(self.polish_dia_lbl, 24, 0) grid1.addWidget(self.polish_dia_entry, 24, 1) @@ -298,7 +298,7 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): ) self.polish_pressure_entry = FCDoubleSpinner() self.polish_pressure_entry.set_precision(self.decimals) - self.polish_pressure_entry.set_range(-9999.9999, 9999.9999) + self.polish_pressure_entry.set_range(-10000.0000, 10000.0000) grid1.addWidget(self.polish_pressure_lbl, 28, 0) grid1.addWidget(self.polish_pressure_entry, 28, 1) @@ -310,7 +310,7 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): ) self.polish_margin_entry = FCDoubleSpinner() self.polish_margin_entry.set_precision(self.decimals) - self.polish_margin_entry.set_range(-9999.9999, 9999.9999) + self.polish_margin_entry.set_range(-10000.0000, 10000.0000) grid1.addWidget(self.polish_margin_lbl, 30, 0) grid1.addWidget(self.polish_margin_entry, 30, 1) diff --git a/appGUI/preferences/geometry/GeometryOptPrefGroupUI.py b/appGUI/preferences/geometry/GeometryOptPrefGroupUI.py index e3277e9b..cf5f947a 100644 --- a/appGUI/preferences/geometry/GeometryOptPrefGroupUI.py +++ b/appGUI/preferences/geometry/GeometryOptPrefGroupUI.py @@ -54,9 +54,9 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): self.cutz_entry = FCDoubleSpinner() if machinist_setting == 0: - self.cutz_entry.set_range(-9999.9999, 0.0000) + self.cutz_entry.set_range(-10000.0000, 0.0000) else: - self.cutz_entry.set_range(-9999.9999, 9999.9999) + self.cutz_entry.set_range(-10000.0000, 10000.0000) self.cutz_entry.set_precision(self.decimals) self.cutz_entry.setSingleStep(0.1) @@ -107,9 +107,9 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): self.travelz_entry = FCDoubleSpinner() if machinist_setting == 0: - self.travelz_entry.set_range(0.0001, 9999.9999) + self.travelz_entry.set_range(0.0001, 10000.0000) else: - self.travelz_entry.set_range(-9999.9999, 9999.9999) + self.travelz_entry.set_range(-10000.0000, 10000.0000) self.travelz_entry.set_precision(self.decimals) self.travelz_entry.setSingleStep(0.1) @@ -139,9 +139,9 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): self.toolchangez_entry = FCDoubleSpinner() if machinist_setting == 0: - self.toolchangez_entry.set_range(0.000, 9999.9999) + self.toolchangez_entry.set_range(0.000, 10000.0000) else: - self.toolchangez_entry.set_range(-9999.9999, 9999.9999) + self.toolchangez_entry.set_range(-10000.0000, 10000.0000) self.toolchangez_entry.set_precision(self.decimals) self.toolchangez_entry.setSingleStep(0.1) @@ -159,9 +159,9 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): self.endz_entry = FCDoubleSpinner() if machinist_setting == 0: - self.endz_entry.set_range(0.000, 9999.9999) + self.endz_entry.set_range(0.000, 10000.0000) else: - self.endz_entry.set_range(-9999.9999, 9999.9999) + self.endz_entry.set_range(-10000.0000, 10000.0000) self.endz_entry.set_precision(self.decimals) self.endz_entry.setSingleStep(0.1) @@ -189,7 +189,7 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): "plane in units per minute") ) self.cncfeedrate_entry = FCDoubleSpinner() - self.cncfeedrate_entry.set_range(0, 99999.9999) + self.cncfeedrate_entry.set_range(0, 910000.0000) self.cncfeedrate_entry.set_precision(self.decimals) self.cncfeedrate_entry.setSingleStep(0.1) self.cncfeedrate_entry.setWrapping(True) @@ -205,7 +205,7 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): "It is called also Plunge.") ) self.feedrate_z_entry = FCDoubleSpinner() - self.feedrate_z_entry.set_range(0, 99999.9999) + self.feedrate_z_entry.set_range(0, 910000.0000) self.feedrate_z_entry.set_precision(self.decimals) self.feedrate_z_entry.setSingleStep(0.1) self.feedrate_z_entry.setWrapping(True) diff --git a/appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py b/appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py index 8ffc51f0..f408a51f 100644 --- a/appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py +++ b/appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py @@ -1,7 +1,7 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from appGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet +from appGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet, FCLabel from appGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext @@ -34,7 +34,7 @@ class Tools2CThievingPrefGroupUI(OptionsGroupUI): grid_lay.setColumnStretch(1, 1) # ## Parameters - self.cflabel = QtWidgets.QLabel('%s' % _('Parameters')) + self.cflabel = FCLabel('%s' % _('Parameters')) self.cflabel.setToolTip( _("A tool to generate a Copper Thieving that can be added\n" "to a selected Gerber file.") @@ -42,7 +42,7 @@ class Tools2CThievingPrefGroupUI(OptionsGroupUI): grid_lay.addWidget(self.cflabel, 0, 0, 1, 2) # CIRCLE STEPS - to be used when buffering - self.circle_steps_lbl = QtWidgets.QLabel('%s:' % _("Circle Steps")) + self.circle_steps_lbl = FCLabel('%s:' % _("Circle Steps")) self.circle_steps_lbl.setToolTip( _("Number of steps (lines) used to interpolate circles.") ) @@ -50,11 +50,11 @@ class Tools2CThievingPrefGroupUI(OptionsGroupUI): self.circlesteps_entry = FCSpinner() self.circlesteps_entry.set_range(1, 9999) - grid_lay.addWidget(self.circle_steps_lbl, 1, 0) - grid_lay.addWidget(self.circlesteps_entry, 1, 1) + grid_lay.addWidget(self.circle_steps_lbl, 2, 0) + grid_lay.addWidget(self.circlesteps_entry, 2, 1) # CLEARANCE # - self.clearance_label = QtWidgets.QLabel('%s:' % _("Clearance")) + self.clearance_label = FCLabel('%s:' % _("Clearance")) self.clearance_label.setToolTip( _("This set the distance between the copper Thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -65,11 +65,11 @@ class Tools2CThievingPrefGroupUI(OptionsGroupUI): self.clearance_entry.set_precision(self.decimals) self.clearance_entry.setSingleStep(0.1) - grid_lay.addWidget(self.clearance_label, 2, 0) - grid_lay.addWidget(self.clearance_entry, 2, 1) + grid_lay.addWidget(self.clearance_label, 4, 0) + grid_lay.addWidget(self.clearance_entry, 4, 1) # MARGIN # - self.margin_label = QtWidgets.QLabel('%s:' % _("Margin")) + self.margin_label = FCLabel('%s:' % _("Margin")) self.margin_label.setToolTip( _("Bounding box margin.") ) @@ -78,41 +78,54 @@ class Tools2CThievingPrefGroupUI(OptionsGroupUI): self.margin_entry.set_precision(self.decimals) self.margin_entry.setSingleStep(0.1) - grid_lay.addWidget(self.margin_label, 3, 0) - grid_lay.addWidget(self.margin_entry, 3, 1) + grid_lay.addWidget(self.margin_label, 6, 0) + grid_lay.addWidget(self.margin_entry, 6, 1) + # Area # + self.area_label = FCLabel('%s:' % _("Area")) + self.area_label.setToolTip( + _("Thieving areas with area less then this value will not be added.") + ) + self.area_entry = FCDoubleSpinner() + self.area_entry.set_range(0.0, 10000.0000) + self.area_entry.set_precision(self.decimals) + self.area_entry.setSingleStep(0.1) + + grid_lay.addWidget(self.area_label, 8, 0) + grid_lay.addWidget(self.area_entry, 8, 1) + # Reference # self.reference_radio = RadioSet([ {'label': _('Itself'), 'value': 'itself'}, {"label": _("Area Selection"), "value": "area"}, {'label': _("Reference Object"), 'value': 'box'} ], orientation='vertical', stretch=False) - self.reference_label = QtWidgets.QLabel(_("Reference:")) + self.reference_label = FCLabel(_("Reference:")) self.reference_label.setToolTip( _("- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be filled.\n" "- 'Reference Object' - will do copper thieving within the area specified by another object.") ) - grid_lay.addWidget(self.reference_label, 4, 0) - grid_lay.addWidget(self.reference_radio, 4, 1) + grid_lay.addWidget(self.reference_label, 10, 0) + grid_lay.addWidget(self.reference_radio, 10, 1) # Bounding Box Type # self.bbox_type_radio = RadioSet([ {'label': _('Rectangular'), 'value': 'rect'}, {"label": _("Minimal"), "value": "min"} ], stretch=False) - self.bbox_type_label = QtWidgets.QLabel(_("Box Type:")) + self.bbox_type_label = FCLabel(_("Box Type:")) self.bbox_type_label.setToolTip( _("- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape.") ) - grid_lay.addWidget(self.bbox_type_label, 5, 0) - grid_lay.addWidget(self.bbox_type_radio, 5, 1) + grid_lay.addWidget(self.bbox_type_label, 12, 0) + grid_lay.addWidget(self.bbox_type_radio, 12, 1) separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid_lay.addWidget(separator_line, 6, 0, 1, 2) + grid_lay.addWidget(separator_line, 14, 0, 1, 2) # Fill Type self.fill_type_radio = RadioSet([ @@ -121,154 +134,168 @@ class Tools2CThievingPrefGroupUI(OptionsGroupUI): {"label": _("Squares Grid"), "value": "square"}, {"label": _("Lines Grid"), "value": "line"} ], orientation='vertical', stretch=False) - self.fill_type_label = QtWidgets.QLabel(_("Fill Type:")) + self.fill_type_label = FCLabel(_("Fill Type:")) self.fill_type_label.setToolTip( _("- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" "- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" "- 'Lines Grid' - the empty area will be filled with a pattern of lines.") ) - grid_lay.addWidget(self.fill_type_label, 7, 0) - grid_lay.addWidget(self.fill_type_radio, 7, 1) + grid_lay.addWidget(self.fill_type_label, 16, 0) + grid_lay.addWidget(self.fill_type_radio, 16, 1) - self.dots_label = QtWidgets.QLabel('%s:' % _("Dots Grid Parameters")) - grid_lay.addWidget(self.dots_label, 8, 0, 1, 2) + self.dots_label = FCLabel('%s:' % _("Dots Grid Parameters")) + grid_lay.addWidget(self.dots_label, 18, 0, 1, 2) # Dot diameter # - self.dotdia_label = QtWidgets.QLabel('%s:' % _("Dia")) + self.dotdia_label = FCLabel('%s:' % _("Dia")) self.dotdia_label.setToolTip( _("Dot diameter in Dots Grid.") ) self.dot_dia_entry = FCDoubleSpinner() - self.dot_dia_entry.set_range(0.0, 9999.9999) + self.dot_dia_entry.set_range(0.0, 10000.0000) self.dot_dia_entry.set_precision(self.decimals) self.dot_dia_entry.setSingleStep(0.1) - grid_lay.addWidget(self.dotdia_label, 9, 0) - grid_lay.addWidget(self.dot_dia_entry, 9, 1) + grid_lay.addWidget(self.dotdia_label, 20, 0) + grid_lay.addWidget(self.dot_dia_entry, 20, 1) # Dot spacing # - self.dotspacing_label = QtWidgets.QLabel('%s:' % _("Spacing")) + self.dotspacing_label = FCLabel('%s:' % _("Spacing")) self.dotspacing_label.setToolTip( _("Distance between each two dots in Dots Grid.") ) self.dot_spacing_entry = FCDoubleSpinner() - self.dot_spacing_entry.set_range(0.0, 9999.9999) + self.dot_spacing_entry.set_range(0.0, 10000.0000) self.dot_spacing_entry.set_precision(self.decimals) self.dot_spacing_entry.setSingleStep(0.1) - grid_lay.addWidget(self.dotspacing_label, 10, 0) - grid_lay.addWidget(self.dot_spacing_entry, 10, 1) + grid_lay.addWidget(self.dotspacing_label, 22, 0) + grid_lay.addWidget(self.dot_spacing_entry, 22, 1) - self.squares_label = QtWidgets.QLabel('%s:' % _("Squares Grid Parameters")) - grid_lay.addWidget(self.squares_label, 11, 0, 1, 2) + self.squares_label = FCLabel('%s:' % _("Squares Grid Parameters")) + grid_lay.addWidget(self.squares_label, 24, 0, 1, 2) # Square Size # - self.square_size_label = QtWidgets.QLabel('%s:' % _("Size")) + self.square_size_label = FCLabel('%s:' % _("Size")) self.square_size_label.setToolTip( _("Square side size in Squares Grid.") ) self.square_size_entry = FCDoubleSpinner() - self.square_size_entry.set_range(0.0, 9999.9999) + self.square_size_entry.set_range(0.0, 10000.0000) self.square_size_entry.set_precision(self.decimals) self.square_size_entry.setSingleStep(0.1) - grid_lay.addWidget(self.square_size_label, 12, 0) - grid_lay.addWidget(self.square_size_entry, 12, 1) + grid_lay.addWidget(self.square_size_label, 26, 0) + grid_lay.addWidget(self.square_size_entry, 26, 1) # Squares spacing # - self.squares_spacing_label = QtWidgets.QLabel('%s:' % _("Spacing")) + self.squares_spacing_label = FCLabel('%s:' % _("Spacing")) self.squares_spacing_label.setToolTip( _("Distance between each two squares in Squares Grid.") ) self.squares_spacing_entry = FCDoubleSpinner() - self.squares_spacing_entry.set_range(0.0, 9999.9999) + self.squares_spacing_entry.set_range(0.0, 10000.0000) self.squares_spacing_entry.set_precision(self.decimals) self.squares_spacing_entry.setSingleStep(0.1) - grid_lay.addWidget(self.squares_spacing_label, 13, 0) - grid_lay.addWidget(self.squares_spacing_entry, 13, 1) + grid_lay.addWidget(self.squares_spacing_label, 28, 0) + grid_lay.addWidget(self.squares_spacing_entry, 28, 1) - self.lines_label = QtWidgets.QLabel('%s:' % _("Lines Grid Parameters")) - grid_lay.addWidget(self.lines_label, 14, 0, 1, 2) + self.lines_label = FCLabel('%s:' % _("Lines Grid Parameters")) + grid_lay.addWidget(self.lines_label, 30, 0, 1, 2) # Square Size # - self.line_size_label = QtWidgets.QLabel('%s:' % _("Size")) + self.line_size_label = FCLabel('%s:' % _("Size")) self.line_size_label.setToolTip( _("Line thickness size in Lines Grid.") ) self.line_size_entry = FCDoubleSpinner() - self.line_size_entry.set_range(0.0, 9999.9999) + self.line_size_entry.set_range(0.0, 10000.0000) self.line_size_entry.set_precision(self.decimals) self.line_size_entry.setSingleStep(0.1) - grid_lay.addWidget(self.line_size_label, 15, 0) - grid_lay.addWidget(self.line_size_entry, 15, 1) + grid_lay.addWidget(self.line_size_label, 32, 0) + grid_lay.addWidget(self.line_size_entry, 32, 1) # Lines spacing # - self.lines_spacing_label = QtWidgets.QLabel('%s:' % _("Spacing")) + self.lines_spacing_label = FCLabel('%s:' % _("Spacing")) self.lines_spacing_label.setToolTip( _("Distance between each two lines in Lines Grid.") ) self.lines_spacing_entry = FCDoubleSpinner() - self.lines_spacing_entry.set_range(0.0, 9999.9999) + self.lines_spacing_entry.set_range(0.0, 10000.0000) self.lines_spacing_entry.set_precision(self.decimals) self.lines_spacing_entry.setSingleStep(0.1) - grid_lay.addWidget(self.lines_spacing_label, 16, 0) - grid_lay.addWidget(self.lines_spacing_entry, 16, 1) + grid_lay.addWidget(self.lines_spacing_label, 34, 0) + grid_lay.addWidget(self.lines_spacing_entry, 34, 1) - self.robber_bar_label = QtWidgets.QLabel('%s' % _('Robber Bar Parameters')) + self.robber_bar_label = FCLabel('%s' % _('Robber Bar Parameters')) self.robber_bar_label.setToolTip( _("Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating.") ) - grid_lay.addWidget(self.robber_bar_label, 17, 0, 1, 2) + grid_lay.addWidget(self.robber_bar_label, 36, 0, 1, 2) # ROBBER BAR MARGIN # - self.rb_margin_label = QtWidgets.QLabel('%s:' % _("Margin")) + self.rb_margin_label = FCLabel('%s:' % _("Margin")) self.rb_margin_label.setToolTip( _("Bounding box margin for robber bar.") ) self.rb_margin_entry = FCDoubleSpinner() - self.rb_margin_entry.set_range(-9999.9999, 9999.9999) + self.rb_margin_entry.set_range(-10000.0000, 10000.0000) self.rb_margin_entry.set_precision(self.decimals) self.rb_margin_entry.setSingleStep(0.1) - grid_lay.addWidget(self.rb_margin_label, 18, 0) - grid_lay.addWidget(self.rb_margin_entry, 18, 1) + grid_lay.addWidget(self.rb_margin_label, 38, 0) + grid_lay.addWidget(self.rb_margin_entry, 38, 1) # THICKNESS # - self.rb_thickness_label = QtWidgets.QLabel('%s:' % _("Thickness")) + self.rb_thickness_label = FCLabel('%s:' % _("Thickness")) self.rb_thickness_label.setToolTip( _("The robber bar thickness.") ) self.rb_thickness_entry = FCDoubleSpinner() - self.rb_thickness_entry.set_range(0.0000, 9999.9999) + self.rb_thickness_entry.set_range(0.0000, 10000.0000) self.rb_thickness_entry.set_precision(self.decimals) self.rb_thickness_entry.setSingleStep(0.1) - grid_lay.addWidget(self.rb_thickness_label, 19, 0) - grid_lay.addWidget(self.rb_thickness_entry, 19, 1) + grid_lay.addWidget(self.rb_thickness_label, 40, 0) + grid_lay.addWidget(self.rb_thickness_entry, 40, 1) - self.patern_mask_label = QtWidgets.QLabel('%s' % _('Pattern Plating Mask')) + self.patern_mask_label = FCLabel('%s' % _('Pattern Plating Mask')) self.patern_mask_label.setToolTip( _("Generate a mask for pattern plating.") ) - grid_lay.addWidget(self.patern_mask_label, 20, 0, 1, 2) + grid_lay.addWidget(self.patern_mask_label, 42, 0, 1, 2) # Openings CLEARANCE # - self.clearance_ppm_label = QtWidgets.QLabel('%s:' % _("Clearance")) + self.clearance_ppm_label = FCLabel('%s:' % _("Clearance")) self.clearance_ppm_label.setToolTip( _("The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask.") ) self.clearance_ppm_entry = FCDoubleSpinner() - self.clearance_ppm_entry.set_range(-9999.9999, 9999.9999) + self.clearance_ppm_entry.set_range(-10000.0000, 10000.0000) self.clearance_ppm_entry.set_precision(self.decimals) self.clearance_ppm_entry.setSingleStep(0.1) - grid_lay.addWidget(self.clearance_ppm_label, 21, 0) - grid_lay.addWidget(self.clearance_ppm_entry, 21, 1) + grid_lay.addWidget(self.clearance_ppm_label, 44, 0) + grid_lay.addWidget(self.clearance_ppm_entry, 44, 1) + + # Include geometry + self.ppm_choice_label = FCLabel('%s:' % _("Add")) + self.ppm_choice_label.setToolTip( + _("Choose which additional geometry to include, if available.") + ) + self.ppm_choice_radio = RadioSet([ + {"label": _("Both"), "value": "b"}, + {'label': _('Thieving'), 'value': 't'}, + {"label": _("Robber bar"), "value": "r"}, + {"label": _("None"), "value": "n"} + ], orientation='vertical', stretch=False) + grid_lay.addWidget(self.ppm_choice_label, 46, 0) + grid_lay.addWidget(self.ppm_choice_radio, 46, 1) self.layout.addStretch() diff --git a/appGUI/preferences/tools/Tools2CalPrefGroupUI.py b/appGUI/preferences/tools/Tools2CalPrefGroupUI.py index 23171c24..814b3faf 100644 --- a/appGUI/preferences/tools/Tools2CalPrefGroupUI.py +++ b/appGUI/preferences/tools/Tools2CalPrefGroupUI.py @@ -64,7 +64,7 @@ class Tools2CalPrefGroupUI(OptionsGroupUI): ) self.travelz_entry = FCDoubleSpinner() - self.travelz_entry.set_range(-9999.9999, 9999.9999) + self.travelz_entry.set_range(-10000.0000, 10000.0000) self.travelz_entry.set_precision(self.decimals) self.travelz_entry.setSingleStep(0.1) @@ -78,7 +78,7 @@ class Tools2CalPrefGroupUI(OptionsGroupUI): ) self.verz_entry = FCDoubleSpinner() - self.verz_entry.set_range(-9999.9999, 9999.9999) + self.verz_entry.set_range(-10000.0000, 10000.0000) self.verz_entry.set_precision(self.decimals) self.verz_entry.setSingleStep(0.1) @@ -101,7 +101,7 @@ class Tools2CalPrefGroupUI(OptionsGroupUI): ) self.toolchangez_entry = FCDoubleSpinner() - self.toolchangez_entry.set_range(0.0000, 9999.9999) + self.toolchangez_entry.set_range(0.0000, 10000.0000) self.toolchangez_entry.set_precision(self.decimals) self.toolchangez_entry.setSingleStep(0.1) diff --git a/appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py b/appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py index b3cf9372..266551e0 100644 --- a/appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py +++ b/appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py @@ -126,7 +126,7 @@ class Tools2EDrillsPrefGroupUI(OptionsGroupUI): # Diameter value self.dia_entry = FCDoubleSpinner() self.dia_entry.set_precision(self.decimals) - self.dia_entry.set_range(0.0000, 9999.9999) + self.dia_entry.set_range(0.0000, 10000.0000) self.dia_label = QtWidgets.QLabel('%s:' % _("Value")) self.dia_label.setToolTip( @@ -153,7 +153,7 @@ class Tools2EDrillsPrefGroupUI(OptionsGroupUI): self.circular_ring_entry = FCDoubleSpinner() self.circular_ring_entry.set_precision(self.decimals) - self.circular_ring_entry.set_range(0.0000, 9999.9999) + self.circular_ring_entry.set_range(0.0000, 10000.0000) grid_lay.addWidget(self.circular_ring_label, 14, 0) grid_lay.addWidget(self.circular_ring_entry, 14, 1) @@ -166,7 +166,7 @@ class Tools2EDrillsPrefGroupUI(OptionsGroupUI): self.oblong_ring_entry = FCDoubleSpinner() self.oblong_ring_entry.set_precision(self.decimals) - self.oblong_ring_entry.set_range(0.0000, 9999.9999) + self.oblong_ring_entry.set_range(0.0000, 10000.0000) grid_lay.addWidget(self.oblong_ring_label, 15, 0) grid_lay.addWidget(self.oblong_ring_entry, 15, 1) @@ -179,7 +179,7 @@ class Tools2EDrillsPrefGroupUI(OptionsGroupUI): self.square_ring_entry = FCDoubleSpinner() self.square_ring_entry.set_precision(self.decimals) - self.square_ring_entry.set_range(0.0000, 9999.9999) + self.square_ring_entry.set_range(0.0000, 10000.0000) grid_lay.addWidget(self.square_ring_label, 16, 0) grid_lay.addWidget(self.square_ring_entry, 16, 1) @@ -192,7 +192,7 @@ class Tools2EDrillsPrefGroupUI(OptionsGroupUI): self.rectangular_ring_entry = FCDoubleSpinner() self.rectangular_ring_entry.set_precision(self.decimals) - self.rectangular_ring_entry.set_range(0.0000, 9999.9999) + self.rectangular_ring_entry.set_range(0.0000, 10000.0000) grid_lay.addWidget(self.rectangular_ring_label, 17, 0) grid_lay.addWidget(self.rectangular_ring_entry, 17, 1) @@ -205,7 +205,7 @@ class Tools2EDrillsPrefGroupUI(OptionsGroupUI): self.other_ring_entry = FCDoubleSpinner() self.other_ring_entry.set_precision(self.decimals) - self.other_ring_entry.set_range(0.0000, 9999.9999) + self.other_ring_entry.set_range(0.0000, 10000.0000) grid_lay.addWidget(self.other_ring_label, 18, 0) grid_lay.addWidget(self.other_ring_entry, 18, 1) diff --git a/appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py b/appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py index a480af80..7bac2d80 100644 --- a/appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py +++ b/appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py @@ -61,7 +61,7 @@ class Tools2FiducialsPrefGroupUI(OptionsGroupUI): _("Bounding box margin.") ) self.margin_entry = FCDoubleSpinner() - self.margin_entry.set_range(-9999.9999, 9999.9999) + self.margin_entry.set_range(-10000.0000, 10000.0000) self.margin_entry.set_precision(self.decimals) self.margin_entry.setSingleStep(0.1) @@ -125,7 +125,7 @@ class Tools2FiducialsPrefGroupUI(OptionsGroupUI): _("Bounding box margin.") ) self.line_thickness_entry = FCDoubleSpinner() - self.line_thickness_entry.set_range(0.00001, 9999.9999) + self.line_thickness_entry.set_range(0.00001, 10000.0000) self.line_thickness_entry.set_precision(self.decimals) self.line_thickness_entry.setSingleStep(0.1) diff --git a/appGUI/preferences/tools/Tools2InvertPrefGroupUI.py b/appGUI/preferences/tools/Tools2InvertPrefGroupUI.py index adea3d37..babe1e3e 100644 --- a/appGUI/preferences/tools/Tools2InvertPrefGroupUI.py +++ b/appGUI/preferences/tools/Tools2InvertPrefGroupUI.py @@ -49,7 +49,7 @@ class Tools2InvertPrefGroupUI(OptionsGroupUI): ) self.margin_entry = FCDoubleSpinner() self.margin_entry.set_precision(self.decimals) - self.margin_entry.set_range(0.0000, 9999.9999) + self.margin_entry.set_range(0.0000, 10000.0000) self.margin_entry.setObjectName(_("Margin")) grid0.addWidget(self.margin_label, 2, 0, 1, 2) diff --git a/appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py b/appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py index 99607448..b447a738 100644 --- a/appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py +++ b/appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py @@ -128,7 +128,7 @@ class Tools2PunchGerberPrefGroupUI(OptionsGroupUI): # Diameter value self.dia_entry = FCDoubleSpinner() self.dia_entry.set_precision(self.decimals) - self.dia_entry.set_range(0.0000, 9999.9999) + self.dia_entry.set_range(0.0000, 10000.0000) self.dia_label = QtWidgets.QLabel('%s:' % _("Value")) self.dia_label.setToolTip( @@ -155,7 +155,7 @@ class Tools2PunchGerberPrefGroupUI(OptionsGroupUI): self.circular_ring_entry = FCDoubleSpinner() self.circular_ring_entry.set_precision(self.decimals) - self.circular_ring_entry.set_range(0.0000, 9999.9999) + self.circular_ring_entry.set_range(0.0000, 10000.0000) grid_lay.addWidget(self.circular_ring_label, 14, 0) grid_lay.addWidget(self.circular_ring_entry, 14, 1) @@ -168,7 +168,7 @@ class Tools2PunchGerberPrefGroupUI(OptionsGroupUI): self.oblong_ring_entry = FCDoubleSpinner() self.oblong_ring_entry.set_precision(self.decimals) - self.oblong_ring_entry.set_range(0.0000, 9999.9999) + self.oblong_ring_entry.set_range(0.0000, 10000.0000) grid_lay.addWidget(self.oblong_ring_label, 15, 0) grid_lay.addWidget(self.oblong_ring_entry, 15, 1) @@ -181,7 +181,7 @@ class Tools2PunchGerberPrefGroupUI(OptionsGroupUI): self.square_ring_entry = FCDoubleSpinner() self.square_ring_entry.set_precision(self.decimals) - self.square_ring_entry.set_range(0.0000, 9999.9999) + self.square_ring_entry.set_range(0.0000, 10000.0000) grid_lay.addWidget(self.square_ring_label, 16, 0) grid_lay.addWidget(self.square_ring_entry, 16, 1) @@ -194,7 +194,7 @@ class Tools2PunchGerberPrefGroupUI(OptionsGroupUI): self.rectangular_ring_entry = FCDoubleSpinner() self.rectangular_ring_entry.set_precision(self.decimals) - self.rectangular_ring_entry.set_range(0.0000, 9999.9999) + self.rectangular_ring_entry.set_range(0.0000, 10000.0000) grid_lay.addWidget(self.rectangular_ring_label, 17, 0) grid_lay.addWidget(self.rectangular_ring_entry, 17, 1) @@ -207,7 +207,7 @@ class Tools2PunchGerberPrefGroupUI(OptionsGroupUI): self.other_ring_entry = FCDoubleSpinner() self.other_ring_entry.set_precision(self.decimals) - self.other_ring_entry.set_range(0.0000, 9999.9999) + self.other_ring_entry.set_range(0.0000, 10000.0000) grid_lay.addWidget(self.other_ring_label, 18, 0) grid_lay.addWidget(self.other_ring_entry, 18, 1) diff --git a/appGUI/preferences/tools/Tools2sidedPrefGroupUI.py b/appGUI/preferences/tools/Tools2sidedPrefGroupUI.py index e45602ef..098081f0 100644 --- a/appGUI/preferences/tools/Tools2sidedPrefGroupUI.py +++ b/appGUI/preferences/tools/Tools2sidedPrefGroupUI.py @@ -40,7 +40,7 @@ class Tools2sidedPrefGroupUI(OptionsGroupUI): # ## Drill diameter for alignment holes self.drill_dia_entry = FCDoubleSpinner() - self.drill_dia_entry.set_range(0.000001, 9999.9999) + self.drill_dia_entry.set_range(0.000001, 10000.0000) self.drill_dia_entry.set_precision(self.decimals) self.drill_dia_entry.setSingleStep(0.1) diff --git a/appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py b/appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py index 156a543f..50997829 100644 --- a/appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py +++ b/appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py @@ -1,7 +1,7 @@ from PyQt5 import QtWidgets from PyQt5.QtCore import QSettings -from appGUI.GUIElements import FCDoubleSpinner +from appGUI.GUIElements import FCDoubleSpinner, FCLabel from appGUI.preferences.OptionsGroupUI import OptionsGroupUI import gettext @@ -28,7 +28,7 @@ class ToolsCalculatorsPrefGroupUI(OptionsGroupUI): self.decimals = decimals # ## V-shape Calculator Tool - self.vshape_tool_label = QtWidgets.QLabel("%s:" % _("V-Shape Tool Calculator")) + self.vshape_tool_label = FCLabel("%s:" % _("V-Shape Tool Calculator")) self.vshape_tool_label.setToolTip( _("Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" @@ -43,11 +43,11 @@ class ToolsCalculatorsPrefGroupUI(OptionsGroupUI): # ## Tip Diameter self.tip_dia_entry = FCDoubleSpinner() - self.tip_dia_entry.set_range(0.000001, 9999.9999) + self.tip_dia_entry.set_range(0.000001, 10000.0000) self.tip_dia_entry.set_precision(self.decimals) self.tip_dia_entry.setSingleStep(0.1) - self.tip_dia_label = QtWidgets.QLabel('%s:' % _("Tip Diameter")) + self.tip_dia_label = FCLabel('%s:' % _("Tip Diameter")) self.tip_dia_label.setToolTip( _("This is the tool tip diameter.\n" "It is specified by manufacturer.") @@ -61,30 +61,30 @@ class ToolsCalculatorsPrefGroupUI(OptionsGroupUI): self.tip_angle_entry.set_precision(self.decimals) self.tip_angle_entry.setSingleStep(5) - self.tip_angle_label = QtWidgets.QLabel('%s:' % _("Tip Angle")) + self.tip_angle_label = FCLabel('%s:' % _("Tip Angle")) self.tip_angle_label.setToolTip( _("This is the angle on the tip of the tool.\n" "It is specified by manufacturer.") ) - grid0.addWidget(self.tip_angle_label, 1, 0) - grid0.addWidget(self.tip_angle_entry, 1, 1) + grid0.addWidget(self.tip_angle_label, 2, 0) + grid0.addWidget(self.tip_angle_entry, 2, 1) # ## Depth-of-cut Cut Z self.cut_z_entry = FCDoubleSpinner() - self.cut_z_entry.set_range(-9999.9999, 0.0000) + self.cut_z_entry.set_range(-10000.0000, 0.0000) self.cut_z_entry.set_precision(self.decimals) self.cut_z_entry.setSingleStep(0.01) - self.cut_z_label = QtWidgets.QLabel('%s:' % _("Cut Z")) + self.cut_z_label = FCLabel('%s:' % _("Cut Z")) self.cut_z_label.setToolTip( _("This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter.") ) - grid0.addWidget(self.cut_z_label, 2, 0) - grid0.addWidget(self.cut_z_entry, 2, 1) + grid0.addWidget(self.cut_z_label, 4, 0) + grid0.addWidget(self.cut_z_entry, 4, 1) # ## Electroplating Calculator Tool - self.plate_title_label = QtWidgets.QLabel("%s:" % _("ElectroPlating Calculator")) + self.plate_title_label = FCLabel("%s:" % _("ElectroPlating Calculator")) self.plate_title_label.setToolTip( _("This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium chloride.") @@ -93,50 +93,61 @@ class ToolsCalculatorsPrefGroupUI(OptionsGroupUI): # ## PCB Length self.pcblength_entry = FCDoubleSpinner() - self.pcblength_entry.set_range(0.000001, 9999.9999) + self.pcblength_entry.set_range(0.000001, 10000.0000) self.pcblength_entry.set_precision(self.decimals) self.pcblength_entry.setSingleStep(0.1) - self.pcblengthlabel = QtWidgets.QLabel('%s:' % _("Board Length")) + self.pcblengthlabel = FCLabel('%s:' % _("Board Length")) self.pcblengthlabel.setToolTip(_('This is the board length. In centimeters.')) - grid0.addWidget(self.pcblengthlabel, 4, 0) - grid0.addWidget(self.pcblength_entry, 4, 1) + grid0.addWidget(self.pcblengthlabel, 6, 0) + grid0.addWidget(self.pcblength_entry, 6, 1) # ## PCB Width self.pcbwidth_entry = FCDoubleSpinner() - self.pcbwidth_entry.set_range(0.000001, 9999.9999) + self.pcbwidth_entry.set_range(0.000001, 10000.0000) self.pcbwidth_entry.set_precision(self.decimals) self.pcbwidth_entry.setSingleStep(0.1) - self.pcbwidthlabel = QtWidgets.QLabel('%s:' % _("Board Width")) + self.pcbwidthlabel = FCLabel('%s:' % _("Board Width")) self.pcbwidthlabel.setToolTip(_('This is the board width.In centimeters.')) - grid0.addWidget(self.pcbwidthlabel, 5, 0) - grid0.addWidget(self.pcbwidth_entry, 5, 1) - + grid0.addWidget(self.pcbwidthlabel, 8, 0) + grid0.addWidget(self.pcbwidth_entry, 8, 1) + + # AREA + self.area_label = FCLabel('%s:' % _("Area")) + self.area_label.setToolTip(_('This is the board area.')) + self.area_entry = FCDoubleSpinner() + self.area_entry.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred) + self.area_entry.set_precision(self.decimals) + self.area_entry.set_range(0.0, 10000.0000) + + grid0.addWidget(self.area_label, 10, 0) + grid0.addWidget(self.area_entry, 10, 1) + # ## Current Density - self.cdensity_label = QtWidgets.QLabel('%s:' % _("Current Density")) + self.cdensity_label = FCLabel('%s:' % _("Current Density")) self.cdensity_entry = FCDoubleSpinner() - self.cdensity_entry.set_range(0.000001, 9999.9999) + self.cdensity_entry.set_range(0.000001, 10000.0000) self.cdensity_entry.set_precision(self.decimals) self.cdensity_entry.setSingleStep(0.1) self.cdensity_label.setToolTip(_("Current density to pass through the board. \n" "In Amps per Square Feet ASF.")) - grid0.addWidget(self.cdensity_label, 6, 0) - grid0.addWidget(self.cdensity_entry, 6, 1) + grid0.addWidget(self.cdensity_label, 12, 0) + grid0.addWidget(self.cdensity_entry, 12, 1) # ## PCB Copper Growth - self.growth_label = QtWidgets.QLabel('%s:' % _("Copper Growth")) + self.growth_label = FCLabel('%s:' % _("Copper Growth")) self.growth_entry = FCDoubleSpinner() - self.growth_entry.set_range(0.000001, 9999.9999) + self.growth_entry.set_range(0.000001, 10000.0000) self.growth_entry.set_precision(self.decimals) self.growth_entry.setSingleStep(0.01) self.growth_label.setToolTip(_("How thick the copper growth is intended to be.\n" "In microns.")) - grid0.addWidget(self.growth_label, 7, 0) - grid0.addWidget(self.growth_entry, 7, 1) + grid0.addWidget(self.growth_label, 14, 0) + grid0.addWidget(self.growth_entry, 14, 1) self.layout.addStretch() diff --git a/appGUI/preferences/tools/ToolsCornersPrefGroupUI.py b/appGUI/preferences/tools/ToolsCornersPrefGroupUI.py index 8ed03c9e..978ccf3c 100644 --- a/appGUI/preferences/tools/ToolsCornersPrefGroupUI.py +++ b/appGUI/preferences/tools/ToolsCornersPrefGroupUI.py @@ -72,7 +72,7 @@ class ToolsCornersPrefGroupUI(OptionsGroupUI): _("Bounding box margin.") ) self.margin_entry = FCDoubleSpinner() - self.margin_entry.set_range(-9999.9999, 9999.9999) + self.margin_entry.set_range(-10000.0000, 10000.0000) self.margin_entry.set_precision(self.decimals) self.margin_entry.setSingleStep(0.1) @@ -85,7 +85,7 @@ class ToolsCornersPrefGroupUI(OptionsGroupUI): _("The length of the line that makes the corner marker.") ) self.l_entry = FCDoubleSpinner() - self.l_entry.set_range(-9999.9999, 9999.9999) + self.l_entry.set_range(-10000.0000, 10000.0000) self.l_entry.set_precision(self.decimals) self.l_entry.setSingleStep(10 ** -self.decimals) diff --git a/appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py b/appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py index 34a4a373..f04f1f7e 100644 --- a/appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py +++ b/appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py @@ -47,7 +47,7 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI): ) self.cutout_tooldia_entry = FCDoubleSpinner() - self.cutout_tooldia_entry.set_range(0.000001, 9999.9999) + self.cutout_tooldia_entry.set_range(0.000001, 10000.0000) self.cutout_tooldia_entry.set_precision(self.decimals) self.cutout_tooldia_entry.setSingleStep(0.1) @@ -66,9 +66,9 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI): self.cutz_entry.set_precision(self.decimals) if machinist_setting == 0: - self.cutz_entry.setRange(-9999.9999, 0.0000) + self.cutz_entry.setRange(-10000.0000, 0.0000) else: - self.cutz_entry.setRange(-9999.9999, 9999.9999) + self.cutz_entry.setRange(-10000.0000, 10000.0000) self.cutz_entry.setSingleStep(0.1) @@ -88,7 +88,7 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI): self.maxdepth_entry = FCDoubleSpinner() self.maxdepth_entry.set_precision(self.decimals) - self.maxdepth_entry.setRange(0, 9999.9999) + self.maxdepth_entry.setRange(0, 10000.0000) self.maxdepth_entry.setSingleStep(0.1) self.maxdepth_entry.setToolTip(_("Depth of each pass (positive).")) @@ -120,7 +120,7 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI): ) self.cutout_margin_entry = FCDoubleSpinner() - self.cutout_margin_entry.set_range(-9999.9999, 9999.9999) + self.cutout_margin_entry.set_range(-10000.0000, 10000.0000) self.cutout_margin_entry.set_precision(self.decimals) self.cutout_margin_entry.setSingleStep(0.1) @@ -137,7 +137,7 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI): ) self.cutout_gap_entry = FCDoubleSpinner() - self.cutout_gap_entry.set_range(0.000001, 9999.9999) + self.cutout_gap_entry.set_range(0.000001, 10000.0000) self.cutout_gap_entry.set_precision(self.decimals) self.cutout_gap_entry.setSingleStep(0.1) @@ -174,9 +174,9 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI): self.thin_depth_entry = FCDoubleSpinner() self.thin_depth_entry.set_precision(self.decimals) if machinist_setting == 0: - self.thin_depth_entry.setRange(-9999.9999, -0.00001) + self.thin_depth_entry.setRange(-10000.0000, -0.00001) else: - self.thin_depth_entry.setRange(-9999.9999, 9999.9999) + self.thin_depth_entry.setRange(-10000.0000, 10000.0000) self.thin_depth_entry.setSingleStep(0.1) grid0.addWidget(self.thin_depth_label, 9, 0) diff --git a/appGUI/preferences/tools/ToolsDrillPrefGroupUI.py b/appGUI/preferences/tools/ToolsDrillPrefGroupUI.py index 0e941770..628e24c4 100644 --- a/appGUI/preferences/tools/ToolsDrillPrefGroupUI.py +++ b/appGUI/preferences/tools/ToolsDrillPrefGroupUI.py @@ -63,9 +63,9 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI): self.cutz_entry = FCDoubleSpinner() if machinist_setting == 0: - self.cutz_entry.set_range(-9999.9999, 0.0000) + self.cutz_entry.set_range(-10000.0000, 0.0000) else: - self.cutz_entry.set_range(-9999.9999, 9999.9999) + self.cutz_entry.set_range(-10000.0000, 10000.0000) self.cutz_entry.setSingleStep(0.1) self.cutz_entry.set_precision(self.decimals) @@ -86,7 +86,7 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI): self.maxdepth_entry = FCDoubleSpinner() self.maxdepth_entry.set_precision(self.decimals) - self.maxdepth_entry.set_range(0, 9999.9999) + self.maxdepth_entry.set_range(0, 10000.0000) self.maxdepth_entry.setSingleStep(0.1) self.maxdepth_entry.setToolTip(_("Depth of each pass (positive).")) @@ -105,9 +105,9 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI): self.travelz_entry.set_precision(self.decimals) if machinist_setting == 0: - self.travelz_entry.set_range(0.0001, 9999.9999) + self.travelz_entry.set_range(0.0001, 10000.0000) else: - self.travelz_entry.set_range(-9999.9999, 9999.9999) + self.travelz_entry.set_range(-10000.0000, 10000.0000) grid0.addWidget(travelzlabel, 5, 0) grid0.addWidget(self.travelz_entry, 5, 1, 1, 2) @@ -131,9 +131,9 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI): self.toolchangez_entry.set_precision(self.decimals) if machinist_setting == 0: - self.toolchangez_entry.set_range(0.0001, 9999.9999) + self.toolchangez_entry.set_range(0.0001, 10000.0000) else: - self.toolchangez_entry.set_range(-9999.9999, 9999.9999) + self.toolchangez_entry.set_range(-10000.0000, 10000.0000) grid0.addWidget(toolchangezlabel, 7, 0) grid0.addWidget(self.toolchangez_entry, 7, 1, 1, 2) @@ -148,9 +148,9 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI): self.endz_entry.set_precision(self.decimals) if machinist_setting == 0: - self.endz_entry.set_range(0.0000, 9999.9999) + self.endz_entry.set_range(0.0000, 10000.0000) else: - self.endz_entry.set_range(-9999.9999, 9999.9999) + self.endz_entry.set_range(-10000.0000, 10000.0000) grid0.addWidget(endz_label, 8, 0) grid0.addWidget(self.endz_entry, 8, 1, 1, 2) @@ -177,7 +177,7 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI): ) self.feedrate_z_entry = FCDoubleSpinner() self.feedrate_z_entry.set_precision(self.decimals) - self.feedrate_z_entry.set_range(0, 99999.9999) + self.feedrate_z_entry.set_range(0, 910000.0000) grid0.addWidget(frlabel, 10, 0) grid0.addWidget(self.feedrate_z_entry, 10, 1, 1, 2) @@ -210,7 +210,7 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI): dwelltime.setToolTip(_("Number of time units for spindle to dwell.")) self.dwelltime_entry = FCDoubleSpinner() self.dwelltime_entry.set_precision(self.decimals) - self.dwelltime_entry.set_range(0, 99999.9999) + self.dwelltime_entry.set_range(0, 910000.0000) grid0.addWidget(dwelltime, 13, 0) grid0.addWidget(self.dwelltime_entry, 13, 1, 1, 2) @@ -255,7 +255,7 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI): self.drill_overlap_entry = FCDoubleSpinner() self.drill_overlap_entry.set_precision(self.decimals) - self.drill_overlap_entry.set_range(0.0, 9999.9999) + self.drill_overlap_entry.set_range(0.0, 10000.0000) self.drill_overlap_entry.setSingleStep(0.1) grid0.addWidget(self.drill_overlap_label, 22, 0) @@ -325,7 +325,7 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI): ) self.feedrate_rapid_entry = FCDoubleSpinner() self.feedrate_rapid_entry.set_precision(self.decimals) - self.feedrate_rapid_entry.set_range(0, 99999.9999) + self.feedrate_rapid_entry.set_range(0, 910000.0000) grid0.addWidget(fr_rapid_label, 35, 0) grid0.addWidget(self.feedrate_rapid_entry, 35, 1, 1, 2) @@ -338,7 +338,7 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI): ) self.pdepth_entry = FCDoubleSpinner() self.pdepth_entry.set_precision(self.decimals) - self.pdepth_entry.set_range(-99999.9999, 0.0000) + self.pdepth_entry.set_range(-910000.0000, 0.0000) grid0.addWidget(self.pdepth_label, 37, 0) grid0.addWidget(self.pdepth_entry, 37, 1, 1, 2) @@ -350,7 +350,7 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI): ) self.feedrate_probe_entry = FCDoubleSpinner() self.feedrate_probe_entry.set_precision(self.decimals) - self.feedrate_probe_entry.set_range(0, 99999.9999) + self.feedrate_probe_entry.set_range(0, 910000.0000) grid0.addWidget(self.feedrate_probe_label, 38, 0) grid0.addWidget(self.feedrate_probe_entry, 38, 1, 1, 2) @@ -444,7 +444,7 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI): self.over_z_label.setToolTip(_("The height Z to which the tool will rise in order to avoid\n" "an interdiction area.")) self.over_z_entry = FCDoubleSpinner() - self.over_z_entry.set_range(0.000, 9999.9999) + self.over_z_entry.set_range(0.000, 10000.0000) self.over_z_entry.set_precision(self.decimals) grid0.addWidget(self.over_z_label, 55, 0) diff --git a/appGUI/preferences/tools/ToolsFilmPrefGroupUI.py b/appGUI/preferences/tools/ToolsFilmPrefGroupUI.py index eff982f8..5a6fe0c4 100644 --- a/appGUI/preferences/tools/ToolsFilmPrefGroupUI.py +++ b/appGUI/preferences/tools/ToolsFilmPrefGroupUI.py @@ -65,7 +65,7 @@ class ToolsFilmPrefGroupUI(OptionsGroupUI): # Film Border self.film_boundary_entry = FCDoubleSpinner() self.film_boundary_entry.set_precision(self.decimals) - self.film_boundary_entry.set_range(0, 9999.9999) + self.film_boundary_entry.set_range(0, 10000.0000) self.film_boundary_entry.setSingleStep(0.1) self.film_boundary_label = FCLabel('%s:' % _("Border")) @@ -84,7 +84,7 @@ class ToolsFilmPrefGroupUI(OptionsGroupUI): self.film_scale_stroke_entry = FCDoubleSpinner() self.film_scale_stroke_entry.set_precision(self.decimals) - self.film_scale_stroke_entry.set_range(0, 9999.9999) + self.film_scale_stroke_entry.set_range(0, 10000.0000) self.film_scale_stroke_entry.setSingleStep(0.1) self.film_scale_stroke_label = FCLabel('%s:' % _("Scale Stroke")) diff --git a/appGUI/preferences/tools/ToolsISOPrefGroupUI.py b/appGUI/preferences/tools/ToolsISOPrefGroupUI.py index d63fcb19..55d823d8 100644 --- a/appGUI/preferences/tools/ToolsISOPrefGroupUI.py +++ b/appGUI/preferences/tools/ToolsISOPrefGroupUI.py @@ -119,7 +119,7 @@ class ToolsISOPrefGroupUI(OptionsGroupUI): ) self.cutz_entry = FCDoubleSpinner() self.cutz_entry.set_precision(self.decimals) - self.cutz_entry.set_range(-9999.9999, 0.0000) + self.cutz_entry.set_range(-10000.0000, 0.0000) self.cutz_entry.setSingleStep(0.1) self.cutz_entry.setToolTip( @@ -139,7 +139,7 @@ class ToolsISOPrefGroupUI(OptionsGroupUI): ) self.newdia_entry = FCDoubleSpinner() self.newdia_entry.set_precision(self.decimals) - self.newdia_entry.set_range(0.0001, 9999.9999) + self.newdia_entry.set_range(0.0001, 10000.0000) self.newdia_entry.setSingleStep(0.1) grid0.addWidget(self.newdialabel, 6, 0) diff --git a/appGUI/preferences/tools/ToolsNCCPrefGroupUI.py b/appGUI/preferences/tools/ToolsNCCPrefGroupUI.py index b3d50e37..e58707c0 100644 --- a/appGUI/preferences/tools/ToolsNCCPrefGroupUI.py +++ b/appGUI/preferences/tools/ToolsNCCPrefGroupUI.py @@ -102,7 +102,7 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI): ) self.cutz_entry = FCDoubleSpinner() self.cutz_entry.set_precision(self.decimals) - self.cutz_entry.set_range(-9999.9999, 0.0000) + self.cutz_entry.set_range(-10000.0000, 0.0000) self.cutz_entry.setSingleStep(0.1) self.cutz_entry.setToolTip( @@ -122,7 +122,7 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI): ) self.newdia_entry = FCDoubleSpinner() self.newdia_entry.set_precision(self.decimals) - self.newdia_entry.set_range(0.0001, 9999.9999) + self.newdia_entry.set_range(0.0001, 10000.0000) self.newdia_entry.setSingleStep(0.1) grid0.addWidget(self.newdialabel, 5, 0) @@ -271,7 +271,7 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI): "The value can be between 0.0 and 9999.9 FlatCAM units.") ) self.ncc_offset_spinner = FCDoubleSpinner() - self.ncc_offset_spinner.set_range(0.00, 9999.9999) + self.ncc_offset_spinner.set_range(0.00, 10000.0000) self.ncc_offset_spinner.set_precision(self.decimals) self.ncc_offset_spinner.setWrapping(True) self.ncc_offset_spinner.setSingleStep(0.1) diff --git a/appGUI/preferences/tools/ToolsPaintPrefGroupUI.py b/appGUI/preferences/tools/ToolsPaintPrefGroupUI.py index 6d997ce1..b3e64b3d 100644 --- a/appGUI/preferences/tools/ToolsPaintPrefGroupUI.py +++ b/appGUI/preferences/tools/ToolsPaintPrefGroupUI.py @@ -78,7 +78,7 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): _("The tip diameter for V-Shape Tool")) self.tipdia_entry = FCDoubleSpinner() self.tipdia_entry.set_precision(self.decimals) - self.tipdia_entry.set_range(0.0000, 9999.9999) + self.tipdia_entry.set_range(0.0000, 10000.0000) self.tipdia_entry.setSingleStep(0.1) self.tipdia_entry.setObjectName(_("V-Tip Dia")) @@ -107,7 +107,7 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): ) self.cutz_entry = FCDoubleSpinner() self.cutz_entry.set_precision(self.decimals) - self.cutz_entry.set_range(-99999.9999, 0.0000) + self.cutz_entry.set_range(-910000.0000, 0.0000) self.cutz_entry.setObjectName(_("Cut Z")) self.cutz_entry.setToolTip( @@ -126,7 +126,7 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): ) self.newdia_entry = FCDoubleSpinner() self.newdia_entry.set_precision(self.decimals) - self.newdia_entry.set_range(0.000, 9999.9999) + self.newdia_entry.set_range(0.000, 10000.0000) self.newdia_entry.setObjectName(_("Tool Dia")) grid0.addWidget(self.newdialabel, 5, 0) @@ -185,7 +185,7 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): "be painted.") ) self.paintmargin_entry = FCDoubleSpinner() - self.paintmargin_entry.set_range(-9999.9999, 9999.9999) + self.paintmargin_entry.set_range(-10000.0000, 10000.0000) self.paintmargin_entry.set_precision(self.decimals) self.paintmargin_entry.setSingleStep(0.1) diff --git a/appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py b/appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py index 69aff8d4..005a2684 100644 --- a/appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py +++ b/appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py @@ -43,7 +43,7 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI): # ## Spacing Columns self.pspacing_columns = FCDoubleSpinner() - self.pspacing_columns.set_range(0.000001, 9999.9999) + self.pspacing_columns.set_range(0.000001, 10000.0000) self.pspacing_columns.set_precision(self.decimals) self.pspacing_columns.setSingleStep(0.1) @@ -57,7 +57,7 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI): # ## Spacing Rows self.pspacing_rows = FCDoubleSpinner() - self.pspacing_rows.set_range(0.000001, 9999.9999) + self.pspacing_rows.set_range(0.000001, 10000.0000) self.pspacing_rows.set_precision(self.decimals) self.pspacing_rows.setSingleStep(0.1) @@ -128,7 +128,7 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI): grid0.addWidget(self.pconstrain_cb, 10, 0, 1, 2) self.px_width_entry = FCDoubleSpinner() - self.px_width_entry.set_range(0.000001, 9999.9999) + self.px_width_entry.set_range(0.000001, 10000.0000) self.px_width_entry.set_precision(self.decimals) self.px_width_entry.setSingleStep(0.1) @@ -141,7 +141,7 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI): grid0.addWidget(self.px_width_entry, 12, 1) self.py_height_entry = FCDoubleSpinner() - self.py_height_entry.set_range(0.000001, 9999.9999) + self.py_height_entry.set_range(0.000001, 10000.0000) self.py_height_entry.set_precision(self.decimals) self.py_height_entry.setSingleStep(0.1) diff --git a/appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py b/appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py index 3c6f3f88..6773b178 100644 --- a/appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py +++ b/appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py @@ -57,7 +57,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): ) self.addtool_entry = FCDoubleSpinner() self.addtool_entry.set_precision(self.decimals) - self.addtool_entry.set_range(0.0000001, 9999.9999) + self.addtool_entry.set_range(0.0000001, 10000.0000) self.addtool_entry.setSingleStep(0.1) grid0.addWidget(self.addtool_entry_lbl, 1, 0) @@ -66,7 +66,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Z dispense start self.z_start_entry = FCDoubleSpinner() self.z_start_entry.set_precision(self.decimals) - self.z_start_entry.set_range(0.0000001, 9999.9999) + self.z_start_entry.set_range(0.0000001, 10000.0000) self.z_start_entry.setSingleStep(0.1) self.z_start_label = QtWidgets.QLabel('%s:' % _("Z Dispense Start")) @@ -79,7 +79,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Z dispense self.z_dispense_entry = FCDoubleSpinner() self.z_dispense_entry.set_precision(self.decimals) - self.z_dispense_entry.set_range(0.0000001, 9999.9999) + self.z_dispense_entry.set_range(0.0000001, 10000.0000) self.z_dispense_entry.setSingleStep(0.1) self.z_dispense_label = QtWidgets.QLabel('%s:' % _("Z Dispense")) @@ -92,7 +92,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Z dispense stop self.z_stop_entry = FCDoubleSpinner() self.z_stop_entry.set_precision(self.decimals) - self.z_stop_entry.set_range(0.0000001, 9999.9999) + self.z_stop_entry.set_range(0.0000001, 10000.0000) self.z_stop_entry.setSingleStep(0.1) self.z_stop_label = QtWidgets.QLabel('%s:' % _("Z Dispense Stop")) @@ -105,7 +105,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Z travel self.z_travel_entry = FCDoubleSpinner() self.z_travel_entry.set_precision(self.decimals) - self.z_travel_entry.set_range(0.0000001, 9999.9999) + self.z_travel_entry.set_range(0.0000001, 10000.0000) self.z_travel_entry.setSingleStep(0.1) self.z_travel_label = QtWidgets.QLabel('%s:' % _("Z Travel")) @@ -119,7 +119,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Z toolchange location self.z_toolchange_entry = FCDoubleSpinner() self.z_toolchange_entry.set_precision(self.decimals) - self.z_toolchange_entry.set_range(0.0000001, 9999.9999) + self.z_toolchange_entry.set_range(0.0000001, 10000.0000) self.z_toolchange_entry.setSingleStep(0.1) self.z_toolchange_label = QtWidgets.QLabel('%s:' % _("Z Toolchange")) @@ -142,7 +142,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Feedrate X-Y self.frxy_entry = FCDoubleSpinner() self.frxy_entry.set_precision(self.decimals) - self.frxy_entry.set_range(0.0000001, 99999.9999) + self.frxy_entry.set_range(0.0000001, 910000.0000) self.frxy_entry.setSingleStep(0.1) self.frxy_label = QtWidgets.QLabel('%s:' % _("Feedrate X-Y")) @@ -155,7 +155,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Feedrate Z self.frz_entry = FCDoubleSpinner() self.frz_entry.set_precision(self.decimals) - self.frz_entry.set_range(0.0000001, 99999.9999) + self.frz_entry.set_range(0.0000001, 910000.0000) self.frz_entry.setSingleStep(0.1) self.frz_label = QtWidgets.QLabel('%s:' % _("Feedrate Z")) @@ -169,7 +169,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Feedrate Z Dispense self.frz_dispense_entry = FCDoubleSpinner() self.frz_dispense_entry.set_precision(self.decimals) - self.frz_dispense_entry.set_range(0.0000001, 99999.9999) + self.frz_dispense_entry.set_range(0.0000001, 910000.0000) self.frz_dispense_entry.setSingleStep(0.1) self.frz_dispense_label = QtWidgets.QLabel('%s:' % _("Feedrate Z Dispense")) @@ -196,7 +196,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Dwell Forward self.dwellfwd_entry = FCDoubleSpinner() self.dwellfwd_entry.set_precision(self.decimals) - self.dwellfwd_entry.set_range(0.0000001, 9999.9999) + self.dwellfwd_entry.set_range(0.0000001, 10000.0000) self.dwellfwd_entry.setSingleStep(0.1) self.dwellfwd_label = QtWidgets.QLabel('%s:' % _("Dwell FWD")) @@ -222,7 +222,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Dwell Reverse self.dwellrev_entry = FCDoubleSpinner() self.dwellrev_entry.set_precision(self.decimals) - self.dwellrev_entry.set_range(0.0000001, 9999.9999) + self.dwellrev_entry.set_range(0.0000001, 10000.0000) self.dwellrev_entry.setSingleStep(0.1) self.dwellrev_label = QtWidgets.QLabel('%s:' % _("Dwell REV")) diff --git a/appGUI/preferences/tools/ToolsTransformPrefGroupUI.py b/appGUI/preferences/tools/ToolsTransformPrefGroupUI.py index d5338735..8fe70d6b 100644 --- a/appGUI/preferences/tools/ToolsTransformPrefGroupUI.py +++ b/appGUI/preferences/tools/ToolsTransformPrefGroupUI.py @@ -155,7 +155,7 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.scale_link_cb, 12, 1) self.scalex_entry = FCDoubleSpinner() - self.scalex_entry.set_range(0, 9999.9999) + self.scalex_entry.set_range(0, 10000.0000) self.scalex_entry.set_precision(self.decimals) self.scalex_entry.setSingleStep(0.1) @@ -168,7 +168,7 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI): # ## Scale factor on X axis self.scaley_entry = FCDoubleSpinner() - self.scaley_entry.set_range(0, 9999.9999) + self.scaley_entry.set_range(0, 10000.0000) self.scaley_entry.set_precision(self.decimals) self.scaley_entry.setSingleStep(0.1) @@ -184,7 +184,7 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI): grid0.addWidget(offset_title_lbl, 20, 0, 1, 2) self.offx_entry = FCDoubleSpinner() - self.offx_entry.set_range(-9999.9999, 9999.9999) + self.offx_entry.set_range(-10000.0000, 10000.0000) self.offx_entry.set_precision(self.decimals) self.offx_entry.setSingleStep(0.1) @@ -197,7 +197,7 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI): # ## Offset distance on Y axis self.offy_entry = FCDoubleSpinner() - self.offy_entry.set_range(-9999.9999, 9999.9999) + self.offy_entry.set_range(-10000.0000, 10000.0000) self.offy_entry.set_precision(self.decimals) self.offy_entry.setSingleStep(0.1) @@ -235,7 +235,7 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI): self.buffer_entry.set_precision(self.decimals) self.buffer_entry.setSingleStep(0.1) self.buffer_entry.setWrapping(True) - self.buffer_entry.set_range(-9999.9999, 9999.9999) + self.buffer_entry.set_range(-10000.0000, 10000.0000) grid0.addWidget(self.buffer_label, 28, 0) grid0.addWidget(self.buffer_entry, 28, 1) diff --git a/appTools/ToolCalculators.py b/appTools/ToolCalculators.py index 26efd73c..f1343c23 100644 --- a/appTools/ToolCalculators.py +++ b/appTools/ToolCalculators.py @@ -7,7 +7,7 @@ from PyQt5 import QtWidgets, QtGui from appTool import AppTool -from appGUI.GUIElements import FCSpinner, FCDoubleSpinner, NumericalEvalEntry +from appGUI.GUIElements import FCSpinner, FCDoubleSpinner, NumericalEvalEntry, FCLabel, RadioSet, FCButton import math import gettext @@ -48,6 +48,8 @@ class ToolCalculator(AppTool): self.ui.calculate_plate_button.clicked.connect(self.on_calculate_eplate) self.ui.reset_button.clicked.connect(self.set_tool_ui) + self.ui.area_sel_radio.activated_custom.connect(self.on_area_calculation_radio) + def run(self, toggle=True): self.app.defaults.report_usage("ToolCalculators()") @@ -80,7 +82,7 @@ class ToolCalculator(AppTool): AppTool.install(self, icon, separator, shortcut='Alt+C', **kwargs) def set_tool_ui(self): - self.units = self.app.defaults['units'].upper() + self.units = self.app.defaults['units'].lower() # ## Initialize form self.ui.mm_entry.set_value('%.*f' % (self.decimals, 0)) @@ -90,8 +92,10 @@ class ToolCalculator(AppTool): width = self.app.defaults["tools_calc_electro_width"] density = self.app.defaults["tools_calc_electro_cdensity"] growth = self.app.defaults["tools_calc_electro_growth"] + self.ui.pcblength_entry.set_value(length) self.ui.pcbwidth_entry.set_value(width) + self.ui.area_entry.set_value(self.app.defaults["tools_calc_electro_area"]) self.ui.cdensity_entry.set_value(density) self.ui.growth_entry.set_value(growth) self.ui.cvalue_entry.set_value(0.00) @@ -106,6 +110,35 @@ class ToolCalculator(AppTool): self.ui.cutDepth_entry.set_value(cut_z) self.ui.effectiveToolDia_entry.set_value('0.0000') + self.ui.area_sel_radio.set_value('d') + self.on_area_calculation_radio(val='d') + + def on_area_calculation_radio(self, val): + if val == 'a': + self.ui.pcbwidthlabel.hide() + self.ui.pcbwidth_entry.hide() + self.ui.width_unit.hide() + + self.ui.pcblengthlabel.hide() + self.ui.pcblength_entry.hide() + self.ui.length_unit.hide() + + self.ui.area_label.show() + self.ui.area_entry.show() + self.ui.area_unit.show() + else: + self.ui.pcbwidthlabel.show() + self.ui.pcbwidth_entry.show() + self.ui.width_unit.show() + + self.ui.pcblengthlabel.show() + self.ui.pcblength_entry.show() + self.ui.length_unit.show() + + self.ui.area_label.hide() + self.ui.area_entry.hide() + self.ui.area_unit.hide() + def on_calculate_tool_dia(self): # Calculation: # Manufacturer gives total angle of the the tip but we need only half of it @@ -123,23 +156,29 @@ class ToolCalculator(AppTool): cut_depth = -cut_depth if cut_depth < 0 else cut_depth tool_diameter = tip_diameter + (2 * cut_depth * math.tan(math.radians(half_tip_angle))) - self.ui.effectiveToolDia_entry.set_value("%.*f" % (self.decimals, tool_diameter)) + self.ui.effectiveToolDia_entry.set_value(self.app.dec_format(tool_diameter, self.decimals)) def on_calculate_inch_units(self): - mm_val = float(self.mm_entry.get_value()) + mm_val = float(self.ui.mm_entry.get_value()) self.ui.inch_entry.set_value('%.*f' % (self.decimals, (mm_val / 25.4))) def on_calculate_mm_units(self): - inch_val = float(self.inch_entry.get_value()) + inch_val = float(self.ui.inch_entry.get_value()) self.ui.mm_entry.set_value('%.*f' % (self.decimals, (inch_val * 25.4))) def on_calculate_eplate(self): - length = float(self.ui.pcblength_entry.get_value()) - width = float(self.ui.pcbwidth_entry.get_value()) - density = float(self.ui.cdensity_entry.get_value()) - copper = float(self.ui.growth_entry.get_value()) + area_calc_sel = self.ui.area_sel_radio.get_value() + length = self.ui.pcblength_entry.get_value() + width = self.ui.pcbwidth_entry.get_value() + area = self.ui.area_entry.get_value() - calculated_current = (length * width * density) * 0.0021527820833419 + density = self.ui.cdensity_entry.get_value() + copper = self.ui.growth_entry.get_value() + + if area_calc_sel == 'd': + calculated_current = (length * width * density) * 0.0021527820833419 + else: + calculated_current = (area * density) * 0.0021527820833419 calculated_time = copper * 2.142857142857143 * float(20 / density) self.ui.cvalue_entry.set_value('%.2f' % calculated_current) @@ -157,9 +196,10 @@ class CalcUI: self.app = app self.decimals = self.app.decimals self.layout = layout + self.units = self.app.defaults['units'].lower() # ## Title - title_label = QtWidgets.QLabel("%s" % self.toolName) + title_label = FCLabel("%s" % self.toolName) title_label.setStyleSheet(""" QLabel { @@ -173,19 +213,19 @@ class CalcUI: # ## Units Calculator # # ##################### - self.unists_spacer_label = QtWidgets.QLabel(" ") + self.unists_spacer_label = FCLabel(" ") self.layout.addWidget(self.unists_spacer_label) # ## Title of the Units Calculator - units_label = QtWidgets.QLabel("%s" % self.unitsName) + units_label = FCLabel("%s" % self.unitsName) self.layout.addWidget(units_label) # Grid Layout grid_units_layout = QtWidgets.QGridLayout() self.layout.addLayout(grid_units_layout) - inch_label = QtWidgets.QLabel(_("INCH")) - mm_label = QtWidgets.QLabel(_("MM")) + inch_label = FCLabel(_("INCH")) + mm_label = FCLabel(_("MM")) grid_units_layout.addWidget(mm_label, 0, 0) grid_units_layout.addWidget(inch_label, 0, 1) @@ -206,21 +246,21 @@ class CalcUI: # ############################## # ## V-shape Tool Calculator ### # ############################## - self.v_shape_spacer_label = QtWidgets.QLabel(" ") + self.v_shape_spacer_label = FCLabel(" ") self.layout.addWidget(self.v_shape_spacer_label) # ## Title of the V-shape Tools Calculator - v_shape_title_label = QtWidgets.QLabel("%s" % self.v_shapeName) + v_shape_title_label = FCLabel("%s" % self.v_shapeName) self.layout.addWidget(v_shape_title_label) # ## Form Layout form_layout = QtWidgets.QFormLayout() self.layout.addLayout(form_layout) - self.tipDia_label = QtWidgets.QLabel('%s:' % _("Tip Diameter")) + self.tipDia_label = FCLabel('%s:' % _("Tip Diameter")) self.tipDia_entry = FCDoubleSpinner(callback=self.confirmation_message) self.tipDia_entry.set_precision(self.decimals) - self.tipDia_entry.set_range(0.0, 9999.9999) + self.tipDia_entry.set_range(0.0, 10000.0000) self.tipDia_entry.setSingleStep(0.1) # self.tipDia_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) @@ -228,7 +268,7 @@ class CalcUI: _("This is the tool tip diameter.\n" "It is specified by manufacturer.") ) - self.tipAngle_label = QtWidgets.QLabel('%s:' % _("Tip Angle")) + self.tipAngle_label = FCLabel('%s:' % _("Tip Angle")) self.tipAngle_entry = FCSpinner(callback=self.confirmation_message_int) self.tipAngle_entry.set_range(0, 180) self.tipAngle_entry.set_step(5) @@ -237,16 +277,16 @@ class CalcUI: self.tipAngle_label.setToolTip(_("This is the angle of the tip of the tool.\n" "It is specified by manufacturer.")) - self.cutDepth_label = QtWidgets.QLabel('%s:' % _("Cut Z")) + self.cutDepth_label = FCLabel('%s:' % _("Cut Z")) self.cutDepth_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.cutDepth_entry.set_range(-9999.9999, 9999.9999) + self.cutDepth_entry.set_range(-10000.0000, 10000.0000) self.cutDepth_entry.set_precision(self.decimals) # self.cutDepth_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.cutDepth_label.setToolTip(_("This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter.")) - self.effectiveToolDia_label = QtWidgets.QLabel('%s:' % _("Tool Diameter")) + self.effectiveToolDia_label = FCLabel('%s:' % _("Tool Diameter")) self.effectiveToolDia_entry = FCDoubleSpinner(callback=self.confirmation_message) self.effectiveToolDia_entry.set_precision(self.decimals) @@ -262,8 +302,9 @@ class CalcUI: form_layout.addRow(self.effectiveToolDia_label, self.effectiveToolDia_entry) # ## Buttons - self.calculate_vshape_button = QtWidgets.QPushButton(_("Calculate")) - # self.calculate_button.setFixedWidth(70) + self.calculate_vshape_button = FCButton(_("Calculate")) + self.calculate_vshape_button.setIcon(QtGui.QIcon(self.app.resource_location + '/calculator16.png')) + self.calculate_vshape_button.setToolTip( _("Calculate either the Cut Z or the effective tool diameter,\n " "depending on which is desired and which is known. ") @@ -275,11 +316,10 @@ class CalcUI: # ## ElectroPlating Tool Calculator ## # #################################### - self.plate_spacer_label = QtWidgets.QLabel(" ") - self.layout.addWidget(self.plate_spacer_label) + self.layout.addWidget(FCLabel("")) # ## Title of the ElectroPlating Tools Calculator - plate_title_label = QtWidgets.QLabel("%s" % self.eplateName) + plate_title_label = FCLabel("%s" % self.eplateName) plate_title_label.setToolTip( _("This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium chloride.") @@ -287,79 +327,168 @@ class CalcUI: self.layout.addWidget(plate_title_label) # ## Plate Form Layout - plate_form_layout = QtWidgets.QFormLayout() - self.layout.addLayout(plate_form_layout) + grid2 = QtWidgets.QGridLayout() + grid2.setColumnStretch(0, 0) + grid2.setColumnStretch(1, 1) + self.layout.addLayout(grid2) - self.pcblengthlabel = QtWidgets.QLabel('%s:' % _("Board Length")) - self.pcblength_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.pcblength_entry.set_precision(self.decimals) - self.pcblength_entry.set_range(0.0, 9999.9999) + # Area Calculation + self.area_sel_label = FCLabel('%s:' % _("Area Calculation")) + self.area_sel_label.setToolTip( + _("Choose how to calculate the board area.") + ) + self.area_sel_radio = RadioSet([ + {'label': _('Dimensions'), 'value': 'd'}, + {"label": _("Area"), "value": "a"} + ], stretch=False) - # self.pcblength_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) + grid2.addWidget(self.area_sel_label, 0, 0) + grid2.addWidget(self.area_sel_radio, 1, 0, 1, 2) + + # BOARD LENGTH + self.pcblengthlabel = FCLabel('%s:' % _("Board Length")) self.pcblengthlabel.setToolTip(_('This is the board length. In centimeters.')) + self.pcblength_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.pcblength_entry.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred) + self.pcblength_entry.set_precision(self.decimals) + self.pcblength_entry.set_range(0.0, 10000.0000) - self.pcbwidthlabel = QtWidgets.QLabel('%s:' % _("Board Width")) - self.pcbwidth_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.pcbwidth_entry.set_precision(self.decimals) - self.pcbwidth_entry.set_range(0.0, 9999.9999) + self.length_unit = FCLabel('%s' % _("cm")) + self.length_unit.setMinimumWidth(25) - # self.pcbwidth_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) + l_hlay = QtWidgets.QHBoxLayout() + l_hlay.addWidget(self.pcblength_entry) + l_hlay.addWidget(self.length_unit) + + grid2.addWidget(self.pcblengthlabel, 2, 0) + grid2.addLayout(l_hlay, 2, 1) + + # BOARD WIDTH + self.pcbwidthlabel = FCLabel('%s:' % _("Board Width")) self.pcbwidthlabel.setToolTip(_('This is the board width.In centimeters.')) + self.pcbwidth_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.pcbwidth_entry.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred) + self.pcbwidth_entry.set_precision(self.decimals) + self.pcbwidth_entry.set_range(0.0, 10000.0000) - self.cdensity_label = QtWidgets.QLabel('%s:' % _("Current Density")) - self.cdensity_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.cdensity_entry.set_precision(self.decimals) - self.cdensity_entry.set_range(0.0, 9999.9999) - self.cdensity_entry.setSingleStep(0.1) + self.width_unit = FCLabel('%s' % _("cm")) + self.width_unit.setMinimumWidth(25) - # self.cdensity_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) + w_hlay = QtWidgets.QHBoxLayout() + w_hlay.addWidget(self.pcbwidth_entry) + w_hlay.addWidget(self.width_unit) + + grid2.addWidget(self.pcbwidthlabel, 4, 0) + grid2.addLayout(w_hlay, 4, 1) + + # AREA + self.area_label = FCLabel('%s:' % _("Area")) + self.area_label.setToolTip(_('This is the board area.')) + self.area_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.area_entry.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred) + self.area_entry.set_precision(self.decimals) + self.area_entry.set_range(0.0, 10000.0000) + + self.area_unit = FCLabel('%s2' % _("cm")) + self.area_unit.setMinimumWidth(25) + + a_hlay = QtWidgets.QHBoxLayout() + a_hlay.addWidget(self.area_entry) + a_hlay.addWidget(self.area_unit) + + grid2.addWidget(self.area_label, 6, 0) + grid2.addLayout(a_hlay, 6, 1) + + separator_line = QtWidgets.QFrame() + separator_line.setFrameShape(QtWidgets.QFrame.HLine) + separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) + grid2.addWidget(separator_line, 7, 0, 1, 2) + + # DENSITY + self.cdensity_label = FCLabel('%s:' % _("Current Density")) self.cdensity_label.setToolTip(_("Current density to pass through the board. \n" "In Amps per Square Feet ASF.")) + self.cdensity_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.cdensity_entry.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred) + self.cdensity_entry.set_precision(self.decimals) + self.cdensity_entry.set_range(0.0, 10000.0000) + self.cdensity_entry.setSingleStep(0.1) - self.growth_label = QtWidgets.QLabel('%s:' % _("Copper Growth")) - self.growth_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.growth_entry.set_precision(self.decimals) - self.growth_entry.set_range(0.0, 9999.9999) - self.growth_entry.setSingleStep(0.01) + density_unit = FCLabel('%s' % "ASF") + density_unit.setMinimumWidth(25) - # self.growth_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) + d_hlay = QtWidgets.QHBoxLayout() + d_hlay.addWidget(self.cdensity_entry) + d_hlay.addWidget(density_unit) + + grid2.addWidget(self.cdensity_label, 8, 0) + grid2.addLayout(d_hlay, 8, 1) + + # COPPER GROWTH + self.growth_label = FCLabel('%s:' % _("Copper Growth")) self.growth_label.setToolTip(_("How thick the copper growth is intended to be.\n" "In microns.")) + self.growth_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.growth_entry.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred) + self.growth_entry.set_precision(self.decimals) + self.growth_entry.set_range(0.0, 10000.0000) + self.growth_entry.setSingleStep(0.01) - # self.growth_entry.setEnabled(False) + growth_unit = FCLabel('%s' % _("um")) + growth_unit.setMinimumWidth(25) - self.cvaluelabel = QtWidgets.QLabel('%s:' % _("Current Value")) - self.cvalue_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.cvalue_entry.set_precision(self.decimals) - self.cvalue_entry.set_range(0.0, 9999.9999) - self.cvalue_entry.setSingleStep(0.1) + g_hlay = QtWidgets.QHBoxLayout() + g_hlay.addWidget(self.growth_entry) + g_hlay.addWidget(growth_unit) - # self.cvalue_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) + grid2.addWidget(self.growth_label, 10, 0) + grid2.addLayout(g_hlay, 10, 1) + + # CURRENT + self.cvaluelabel = FCLabel('%s:' % _("Current Value")) self.cvaluelabel.setToolTip(_('This is the current intensity value\n' 'to be set on the Power Supply. In Amps.')) + self.cvalue_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.cvalue_entry.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred) + self.cvalue_entry.set_precision(self.decimals) + self.cvalue_entry.set_range(0.0, 10000.0000) + self.cvalue_entry.setSingleStep(0.1) + + current_unit = FCLabel('%s' % "A") + current_unit.setMinimumWidth(25) self.cvalue_entry.setReadOnly(True) - self.timelabel = QtWidgets.QLabel('%s:' % _("Time")) - self.time_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.time_entry.set_precision(self.decimals) - self.time_entry.set_range(0.0, 9999.9999) - self.time_entry.setSingleStep(0.1) + c_hlay = QtWidgets.QHBoxLayout() + c_hlay.addWidget(self.cvalue_entry) + c_hlay.addWidget(current_unit) - # self.time_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) + grid2.addWidget(self.cvaluelabel, 12, 0) + grid2.addLayout(c_hlay, 12, 1) + + # TIME + self.timelabel = FCLabel('%s:' % _("Time")) self.timelabel.setToolTip(_('This is the calculated time required for the procedure.\n' 'In minutes.')) + self.time_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.time_entry.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred) + self.time_entry.set_precision(self.decimals) + self.time_entry.set_range(0.0, 10000.0000) + self.time_entry.setSingleStep(0.1) + + time_unit = FCLabel('%s' % "min") + time_unit.setMinimumWidth(25) self.time_entry.setReadOnly(True) - plate_form_layout.addRow(self.pcblengthlabel, self.pcblength_entry) - plate_form_layout.addRow(self.pcbwidthlabel, self.pcbwidth_entry) - plate_form_layout.addRow(self.cdensity_label, self.cdensity_entry) - plate_form_layout.addRow(self.growth_label, self.growth_entry) - plate_form_layout.addRow(self.cvaluelabel, self.cvalue_entry) - plate_form_layout.addRow(self.timelabel, self.time_entry) + t_hlay = QtWidgets.QHBoxLayout() + t_hlay.addWidget(self.time_entry) + t_hlay.addWidget(time_unit) + + grid2.addWidget(self.timelabel, 14, 0) + grid2.addLayout(t_hlay, 14, 1) # ## Buttons - self.calculate_plate_button = QtWidgets.QPushButton(_("Calculate")) - # self.calculate_button.setFixedWidth(70) + self.calculate_plate_button = FCButton(_("Calculate")) + self.calculate_plate_button.setIcon(QtGui.QIcon(self.app.resource_location + '/calculator16.png')) self.calculate_plate_button.setToolTip( _("Calculate the current intensity value and the procedure time,\n" "depending on the parameters above") @@ -369,7 +498,7 @@ class CalcUI: self.layout.addStretch() # ## Reset Tool - self.reset_button = QtWidgets.QPushButton(_("Reset Tool")) + self.reset_button = FCButton(_("Reset Tool")) self.reset_button.setIcon(QtGui.QIcon(self.app.resource_location + '/reset32.png')) self.reset_button.setToolTip( _("Will reset the tool parameters.") diff --git a/appTools/ToolCalibration.py b/appTools/ToolCalibration.py index 9a19c577..371e329d 100644 --- a/appTools/ToolCalibration.py +++ b/appTools/ToolCalibration.py @@ -772,7 +772,7 @@ class CalibUI: ) self.travelz_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.travelz_entry.set_range(-9999.9999, 9999.9999) + self.travelz_entry.set_range(-10000.0000, 10000.0000) self.travelz_entry.set_precision(self.decimals) self.travelz_entry.setSingleStep(0.1) @@ -786,7 +786,7 @@ class CalibUI: ) self.verz_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.verz_entry.set_range(-9999.9999, 9999.9999) + self.verz_entry.set_range(-10000.0000, 10000.0000) self.verz_entry.set_precision(self.decimals) self.verz_entry.setSingleStep(0.1) @@ -809,7 +809,7 @@ class CalibUI: ) self.toolchangez_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.toolchangez_entry.set_range(0.0000, 9999.9999) + self.toolchangez_entry.set_range(0.0000, 10000.0000) self.toolchangez_entry.set_precision(self.decimals) self.toolchangez_entry.setSingleStep(0.1) @@ -1164,7 +1164,7 @@ class CalibUI: _("Factor for Scale action over X axis.") ) self.scalex_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.scalex_entry.set_range(0, 9999.9999) + self.scalex_entry.set_range(0, 10000.0000) self.scalex_entry.set_precision(self.decimals) self.scalex_entry.setSingleStep(0.1) @@ -1176,7 +1176,7 @@ class CalibUI: _("Factor for Scale action over Y axis.") ) self.scaley_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.scaley_entry.set_range(0, 9999.9999) + self.scaley_entry.set_range(0, 10000.0000) self.scaley_entry.set_precision(self.decimals) self.scaley_entry.setSingleStep(0.1) @@ -1245,7 +1245,7 @@ class CalibUI: # _("Final factor for Scale action over X axis.") # ) # self.fin_scalex_entry = FCDoubleSpinner(callback=self.confirmation_message) - # self.fin_scalex_entry.set_range(0, 9999.9999) + # self.fin_scalex_entry.set_range(0, 10000.0000) # self.fin_scalex_entry.set_precision(self.decimals) # self.fin_scalex_entry.setSingleStep(0.1) # @@ -1257,7 +1257,7 @@ class CalibUI: # _("Final factor for Scale action over Y axis.") # ) # self.fin_scaley_entry = FCDoubleSpinner(callback=self.confirmation_message) - # self.fin_scaley_entry.set_range(0, 9999.9999) + # self.fin_scaley_entry.set_range(0, 10000.0000) # self.fin_scaley_entry.set_precision(self.decimals) # self.fin_scaley_entry.setSingleStep(0.1) # diff --git a/appTools/ToolCopperThieving.py b/appTools/ToolCopperThieving.py index a9731b56..d7564198 100644 --- a/appTools/ToolCopperThieving.py +++ b/appTools/ToolCopperThieving.py @@ -9,7 +9,7 @@ from PyQt5 import QtWidgets, QtCore, QtGui from camlib import grace from appTool import AppTool -from appGUI.GUIElements import FCDoubleSpinner, RadioSet, FCEntry, FCComboBox +from appGUI.GUIElements import FCDoubleSpinner, RadioSet, FCEntry, FCComboBox, FCLabel import shapely.geometry.base as base from shapely.ops import unary_union @@ -77,7 +77,7 @@ class ToolCopperThieving(AppTool): self.geo_steps_per_circle = 128 # Thieving geometry storage - self.new_solid_geometry = [] + self.thief_solid_geometry = [] # Robber bar geometry storage self.robber_geo = None @@ -138,6 +138,7 @@ class ToolCopperThieving(AppTool): self.ui.bbox_type_radio.set_value(self.app.defaults["tools_copper_thieving_box_type"]) self.ui.fill_type_radio.set_value(self.app.defaults["tools_copper_thieving_fill_type"]) + self.ui.area_entry.set_value(self.app.defaults["tools_copper_thieving_area"]) self.ui.dot_dia_entry.set_value(self.app.defaults["tools_copper_thieving_dots_dia"]) self.ui.dot_spacing_entry.set_value(self.app.defaults["tools_copper_thieving_dots_spacing"]) self.ui.square_size_entry.set_value(self.app.defaults["tools_copper_thieving_squares_size"]) @@ -148,12 +149,13 @@ class ToolCopperThieving(AppTool): self.ui.rb_margin_entry.set_value(self.app.defaults["tools_copper_thieving_rb_margin"]) self.ui.rb_thickness_entry.set_value(self.app.defaults["tools_copper_thieving_rb_thickness"]) self.ui.clearance_ppm_entry.set_value(self.app.defaults["tools_copper_thieving_mask_clearance"]) + self.ui.ppm_choice_radio.set_value(self.app.defaults["tools_copper_thieving_geo_choice"]) # INIT SECTION self.handlers_connected = False self.robber_geo = None self.robber_line = None - self.new_solid_geometry = None + self.thief_solid_geometry = [] def on_ref_combo_type_change(self): obj_type = self.ui.ref_combo_type.currentIndex() @@ -207,6 +209,7 @@ class ToolCopperThieving(AppTool): if self.ui.reference_radio.get_value() != 'itself': self.ui.reference_radio.set_value('itself') self.app.inform.emit('[WARNING_NOTCL] %s' % _("Lines Grid works only for 'itself' reference ...")) + self.ui.dots_frame.hide() self.ui.squares_frame.hide() self.ui.lines_frame.show() @@ -334,7 +337,7 @@ class ToolCopperThieving(AppTool): self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), str(e))) return "Could not retrieve object: %s" % self.obj_name - self.on_copper_thieving( + self.copper_thieving( thieving_obj=self.grb_object, c_val=self.clearance_val, margin=self.margin_val @@ -354,7 +357,7 @@ class ToolCopperThieving(AppTool): self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), bound_obj_name)) return - self.on_copper_thieving( + self.copper_thieving( thieving_obj=self.grb_object, ref_obj=self.ref_obj, c_val=self.clearance_val, @@ -422,7 +425,7 @@ class ToolCopperThieving(AppTool): if not isinstance(self.sel_rect, Iterable): self.sel_rect = [self.sel_rect] - self.on_copper_thieving( + self.copper_thieving( thieving_obj=self.grb_object, ref_obj=self.sel_rect, c_val=self.clearance_val, @@ -481,7 +484,7 @@ class ToolCopperThieving(AppTool): self.app.draw_moving_selection_shape(old_coords=(self.cursor_pos[0], self.cursor_pos[1]), coords=(curr_pos[0], curr_pos[1])) - def on_copper_thieving(self, thieving_obj, ref_obj=None, c_val=None, margin=None, run_threaded=True): + def copper_thieving(self, thieving_obj, ref_obj=None, c_val=None, margin=None, run_threaded=True): """ :param thieving_obj: @@ -511,6 +514,7 @@ class ToolCopperThieving(AppTool): c_val = float(self.app.defaults["tools_copper_thieving_clearance"]) if margin is None: margin = float(self.app.defaults["tools_copper_thieving_margin"]) + min_area = self.ui.area_entry.get_value() fill_type = self.ui.fill_type_radio.get_value() dot_dia = self.ui.dot_dia_entry.get_value() @@ -540,6 +544,9 @@ class ToolCopperThieving(AppTool): old_disp_number = 0 pol_nr = 0 + # ######################################################################################################### + # apply the clearance value to the geometry + # ######################################################################################################### clearance_geometry = [] try: for pol in tool_obj.grb_object.solid_geometry: @@ -580,7 +587,7 @@ class ToolCopperThieving(AppTool): else: working_obj = ref_obj except Exception as e: - log.debug("ToolCopperThieving.on_copper_thieving() --> %s" % str(e)) + log.debug("ToolCopperThieving.copper_thieving() --> %s" % str(e)) return 'fail' tool_obj.app.proc_container.update_view_text(' %s' % _("Working...")) @@ -621,7 +628,7 @@ class ToolCopperThieving(AppTool): return 'fail' except Exception as e: - log.debug("ToolCopperFIll.on_copper_thieving() 'itself' --> %s" % str(e)) + log.debug("ToolCopperFIll.copper_thieving() 'itself' --> %s" % str(e)) tool_obj.app.inform.emit('[ERROR_NOTCL] %s' % _("No object available.")) return 'fail' elif ref_selected == 'area': @@ -643,7 +650,7 @@ class ToolCopperThieving(AppTool): try: __ = iter(geo_n) except Exception as e: - log.debug("ToolCopperFIll.on_copper_thieving() 'box' --> %s" % str(e)) + log.debug("ToolCopperFIll.copper_thieving() 'box' --> %s" % str(e)) geo_n = [geo_n] geo_buff_list = [] @@ -667,20 +674,20 @@ class ToolCopperThieving(AppTool): tool_obj.app.inform.emit(_("Copper Thieving Tool. Appending new geometry and buffering.")) # ######################################################################################################### - # ########## Generate filling geometry. + # Generate solid filling geometry. Effectively it's a NEGATIVE of the source object # ######################################################################################################### + tool_obj.thief_solid_geometry = bounding_box.difference(clearance_geometry) - tool_obj.new_solid_geometry = bounding_box.difference(clearance_geometry) + temp_geo = [] + try: + for s_geo in tool_obj.thief_solid_geometry: + if s_geo.area >= min_area: + temp_geo.append(s_geo) + except TypeError: + if tool_obj.thief_solid_geometry.area >= min_area: + temp_geo.append(tool_obj.thief_solid_geometry) - # determine the bounding box polygon for the entire Gerber object to which we add copper thieving - # if isinstance(geo_n, list): - # env_obj = unary_union(geo_n).buffer(distance=margin, join_style=base.JOIN_STYLE.mitre) - # else: - # env_obj = geo_n.buffer(distance=margin, join_style=base.JOIN_STYLE.mitre) - # - # x0, y0, x1, y1 = env_obj.bounds - # bounding_box = box(x0, y0, x1, y1) - tool_obj.app.proc_container.update_view_text(' %s' % _("Create geometry")) + tool_obj.thief_solid_geometry = temp_geo # ######################################################################################################### # apply the 'margin' to the bounding box geometry @@ -700,6 +707,8 @@ class ToolCopperThieving(AppTool): # ######################################################################################################### # add Thieving geometry # ######################################################################################################### + tool_obj.app.proc_container.update_view_text(' %s' % _("Create geometry")) + if fill_type == 'dot' or fill_type == 'square': # build the MultiPolygon of dots/squares that will fill the entire bounding box thieving_list = [] @@ -734,11 +743,6 @@ class ToolCopperThieving(AppTool): thieving_box_geo = affinity.translate(thieving_box_geo, xoff=dx, yoff=dy) - try: - _it = iter(tool_obj.new_solid_geometry) - except TypeError: - tool_obj.new_solid_geometry = [tool_obj.new_solid_geometry] - try: _it = iter(thieving_box_geo) except TypeError: @@ -746,11 +750,11 @@ class ToolCopperThieving(AppTool): thieving_geo = [] for dot_geo in thieving_box_geo: - for geo_t in tool_obj.new_solid_geometry: + for geo_t in tool_obj.thief_solid_geometry: if dot_geo.within(geo_t): thieving_geo.append(dot_geo) - tool_obj.new_solid_geometry = thieving_geo + tool_obj.thief_solid_geometry = thieving_geo if fill_type == 'line': half_thick_line = line_size / 2.0 @@ -838,13 +842,16 @@ class ToolCopperThieving(AppTool): rest_line = line_poly.difference(clearance_geometry) diff_lines_geo.append(rest_line) tool_obj.flatten([outline_geometry, box_outline_geometry, diff_lines_geo]) - tool_obj.new_solid_geometry = tool_obj.flat_geometry + tool_obj.thief_solid_geometry = tool_obj.flat_geometry tool_obj.app.proc_container.update_view_text(' %s' % _("Append geometry")) + # create a list of the source geometry geo_list = deepcopy(tool_obj.grb_object.solid_geometry) if isinstance(tool_obj.grb_object.solid_geometry, MultiPolygon): geo_list = list(geo_list.geoms) + # create a new dictionary to hold the source object apertures allowing us to tamper with without altering + # the original source object's apertures new_apertures = deepcopy(tool_obj.grb_object.apertures) if '0' not in new_apertures: new_apertures['0'] = { @@ -853,8 +860,9 @@ class ToolCopperThieving(AppTool): 'geometry': [] } + # add the thieving geometry in the '0' aperture of the new_apertures dict try: - for poly in tool_obj.new_solid_geometry: + for poly in tool_obj.thief_solid_geometry: # append to the new solid geometry geo_list.append(poly) @@ -863,12 +871,13 @@ class ToolCopperThieving(AppTool): new_apertures['0']['geometry'].append(deepcopy(geo_elem)) except TypeError: # append to the new solid geometry - geo_list.append(tool_obj.new_solid_geometry) + geo_list.append(tool_obj.thief_solid_geometry) # append into the '0' aperture geo_elem = {'solid': tool_obj.new_solid_geometry, 'follow': tool_obj.new_solid_geometry.exterior} new_apertures['0']['geometry'].append(deepcopy(geo_elem)) + # prepare also the solid_geometry for the new object having the thieving geometry new_solid_geo = MultiPolygon(geo_list).buffer(0.0000001).buffer(-0.0000001) outname = '%s_%s' % (str(self.grb_object.options['name']), 'thief') @@ -923,6 +932,7 @@ class ToolCopperThieving(AppTool): def on_new_pattern_plating_object(self): ppm_clearance = self.ui.clearance_ppm_entry.get_value() + geo_choice = self.ui.ppm_choice_radio.get_value() rb_thickness = self.rb_thickness # get the Gerber object on which the Copper thieving will be inserted @@ -937,32 +947,133 @@ class ToolCopperThieving(AppTool): return self.app.proc_container.update_view_text(' %s' % _("Append PP-M geometry")) - geo_list = self.sm_object.solid_geometry - if isinstance(self.sm_object.solid_geometry, MultiPolygon): - geo_list = list(self.sm_object.solid_geometry.geoms) + geo_list = deepcopy(self.sm_object.solid_geometry) + if isinstance(geo_list, MultiPolygon): + geo_list = list(geo_list.geoms) - # if the clearance is negative apply it to the original soldermask too + # create a copy of the source apertures so we can manipulate them without altering the source object + new_apertures = deepcopy(self.sm_object.apertures) + + # if the clearance is negative apply it to the original soldermask geometry too if ppm_clearance < 0: temp_geo_list = [] for geo in geo_list: temp_geo_list.append(geo.buffer(ppm_clearance)) geo_list = temp_geo_list + # squash former geometry in apertures + for ap_id in new_apertures: + for k in new_apertures[ap_id]: + if k == 'geometry': + new_apertures[ap_id]['geometry'] = [] + + # then add a buffered geometry + for ap_id in new_apertures: + if 'geometry' in self.sm_object.apertures[ap_id]: + new_geo_list = [] + for geo_el in self.sm_object.apertures[ap_id]['geometry']: + new_el = { + 'solid': geo_el['solid'].buffer(ppm_clearance) if 'solid' in geo_el else [], + 'follow': geo_el['follow'] if 'follow' in geo_el else [], + 'clear': geo_el['clear'] if 'clear' in geo_el else [] + } + new_geo_list.append(deepcopy(new_el)) + new_apertures[ap_id]['geometry'] = deepcopy(new_geo_list) + + # calculate its own plated area (from the solder mask object) plated_area = 0.0 for geo in geo_list: plated_area += geo.area - if self.new_solid_geometry: - for geo in self.new_solid_geometry: - plated_area += geo.area - if self.robber_geo: - plated_area += self.robber_geo.area - self.ui.plated_area_entry.set_value(plated_area) - - thieving_solid_geo = deepcopy(self.new_solid_geometry) + thieving_solid_geo = deepcopy(self.thief_solid_geometry) robber_solid_geo = deepcopy(self.robber_geo) robber_line = deepcopy(self.robber_line) + # store here the chosen follow geometry + new_follow_geo = deepcopy(self.sm_object.follow_geometry) + + # if we have copper thieving geometry, add it + if thieving_solid_geo and geo_choice in ['b', 't']: + # add to the total the thieving geometry area, if chosen + for geo in thieving_solid_geo: + plated_area += geo.area + + if '0' not in new_apertures: + new_apertures['0'] = { + 'type': 'REG', + 'size': 0.0, + 'geometry': [] + } + + try: + for poly in thieving_solid_geo: + poly_b = poly.buffer(ppm_clearance) + + # append to the new solid geometry + geo_list.append(poly_b) + + # append into the '0' aperture + geo_elem = { + 'solid': poly_b, + 'follow': poly_b.exterior + } + new_apertures['0']['geometry'].append(deepcopy(geo_elem)) + except TypeError: + # append to the new solid geometry + assert isinstance(thieving_solid_geo, Polygon) + geo_list.append(thieving_solid_geo.buffer(ppm_clearance)) + + # append into the '0' aperture + geo_elem = { + 'solid': thieving_solid_geo.buffer(ppm_clearance), + 'follow': thieving_solid_geo.buffer(ppm_clearance).exterior + } + new_apertures['0']['geometry'].append(deepcopy(geo_elem)) + + # if we have robber bar geometry, add it + if robber_solid_geo and geo_choice in ['b', 'r']: + # add to the total the robber bar geometry are, if chose + plated_area += robber_solid_geo.area + + # add to the follow_geomery + new_follow_geo.append(robber_line) + + aperture_found = None + for ap_id, ap_val in new_apertures.items(): + if ap_val['type'] == 'C' and ap_val['size'] == self.rb_thickness + ppm_clearance: + aperture_found = ap_id + break + + if aperture_found: + geo_elem = {'solid': robber_solid_geo, 'follow': robber_line} + new_apertures[aperture_found]['geometry'].append(deepcopy(geo_elem)) + else: + ap_keys = list(new_apertures.keys()) + max_apid = int(max(ap_keys)) + if ap_keys and max_apid != 0: + new_apid = str(max_apid + 1) + else: + new_apid = '10' + + new_apertures[new_apid] = { + 'type': 'C', + 'size': rb_thickness + ppm_clearance, + 'geometry': [] + } + + geo_elem = { + 'solid': robber_solid_geo.buffer(ppm_clearance), + 'follow': deepcopy(robber_line) + } + new_apertures[new_apid]['geometry'].append(deepcopy(geo_elem)) + + geo_list.append(robber_solid_geo.buffer(ppm_clearance)) + + # and then set the total plated area value to the GUI element + self.ui.plated_area_entry.set_value(plated_area) + + new_solid_geometry = MultiPolygon(geo_list).buffer(0.0000001).buffer(-0.0000001) + def obj_init(grb_obj, app_obj): grb_obj.options = {} for opt in self.sm_object.options: @@ -973,77 +1084,9 @@ class ToolCopperThieving(AppTool): grb_obj.source_file = [] grb_obj.multigeo = False grb_obj.follow = False - grb_obj.apertures = {} - grb_obj.solid_geometry = [] - - # if we have copper thieving geometry, add it - if thieving_solid_geo: - if '0' not in grb_obj.apertures: - grb_obj.apertures['0'] = { - 'type': 'REG', - 'size': 0.0, - 'geometry': [] - } - - try: - for poly in thieving_solid_geo: - poly_b = poly.buffer(ppm_clearance) - - # append to the new solid geometry - geo_list.append(poly_b) - - # append into the '0' aperture - geo_elem = { - 'solid': poly_b, - 'follow': poly_b.exterior - } - grb_obj.apertures['0']['geometry'].append(deepcopy(geo_elem)) - except TypeError: - # append to the new solid geometry - assert isinstance(thieving_solid_geo, Polygon) - geo_list.append(thieving_solid_geo.buffer(ppm_clearance)) - - # append into the '0' aperture - geo_elem = { - 'solid': thieving_solid_geo.buffer(ppm_clearance), - 'follow': thieving_solid_geo.buffer(ppm_clearance).exterior - } - grb_obj.apertures['0']['geometry'].append(deepcopy(geo_elem)) - - # if we have robber bar geometry, add it - if robber_solid_geo: - aperture_found = None - for ap_id, ap_val in grb_obj.apertures.items(): - if ap_val['type'] == 'C' and ap_val['size'] == app_obj.rb_thickness + ppm_clearance: - aperture_found = ap_id - break - - if aperture_found: - geo_elem = {'solid': robber_solid_geo, 'follow': robber_line} - grb_obj.apertures[aperture_found]['geometry'].append(deepcopy(geo_elem)) - else: - ap_keys = list(grb_obj.apertures.keys()) - max_apid = int(max(ap_keys)) - if ap_keys and max_apid != 0: - new_apid = str(max_apid + 1) - else: - new_apid = '10' - - grb_obj.apertures[new_apid] = { - 'type': 'C', - 'size': rb_thickness + ppm_clearance, - 'geometry': [] - } - - geo_elem = { - 'solid': robber_solid_geo.buffer(ppm_clearance), - 'follow': Polygon(robber_line).buffer(ppm_clearance / 2.0).exterior - } - grb_obj.apertures[new_apid]['geometry'].append(deepcopy(geo_elem)) - - geo_list.append(robber_solid_geo.buffer(ppm_clearance)) - - grb_obj.solid_geometry = MultiPolygon(geo_list).buffer(0.0000001).buffer(-0.0000001) + grb_obj.follow_geometry = deepcopy(new_follow_geo) + grb_obj.apertures = deepcopy(new_apertures) + grb_obj.solid_geometry = deepcopy(new_solid_geometry) app_obj.proc_container.update_view_text(' %s' % _("Append source file")) # update the source file with the new geometry: @@ -1174,7 +1217,7 @@ class ThievingUI: self.layout = layout # ## Title - title_label = QtWidgets.QLabel("%s" % self.toolName) + title_label = FCLabel("%s" % self.toolName) title_label.setStyleSheet(""" QLabel { @@ -1183,7 +1226,7 @@ class ThievingUI: } """) self.layout.addWidget(title_label) - self.layout.addWidget(QtWidgets.QLabel("")) + self.layout.addWidget(FCLabel("")) # ## Grid Layout i_grid_lay = QtWidgets.QGridLayout() @@ -1197,7 +1240,7 @@ class ThievingUI: self.grb_object_combo.is_last = True self.grb_object_combo.obj_type = 'Gerber' - self.grbobj_label = QtWidgets.QLabel("%s:" % _("GERBER")) + self.grbobj_label = FCLabel("%s:" % _("GERBER")) self.grbobj_label.setToolTip( _("Gerber Object to which will be added a copper thieving.") ) @@ -1216,39 +1259,62 @@ class ThievingUI: grid_lay.setColumnStretch(0, 0) grid_lay.setColumnStretch(1, 1) - self.copper_fill_label = QtWidgets.QLabel('%s' % _('Parameters')) + self.copper_fill_label = FCLabel('%s' % _('Parameters')) self.copper_fill_label.setToolTip( _("Parameters used for this tool.") ) grid_lay.addWidget(self.copper_fill_label, 0, 0, 1, 2) # CLEARANCE # - self.clearance_label = QtWidgets.QLabel('%s:' % _("Clearance")) + self.clearance_label = FCLabel('%s:' % _("Clearance")) self.clearance_label.setToolTip( _("This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" "and the copper traces in the Gerber file.") ) self.clearance_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.clearance_entry.set_range(0.00001, 9999.9999) + self.clearance_entry.set_range(0.00001, 10000.0000) self.clearance_entry.set_precision(self.decimals) self.clearance_entry.setSingleStep(0.1) - grid_lay.addWidget(self.clearance_label, 1, 0) - grid_lay.addWidget(self.clearance_entry, 1, 1) + grid_lay.addWidget(self.clearance_label, 2, 0) + grid_lay.addWidget(self.clearance_entry, 2, 1) # MARGIN # - self.margin_label = QtWidgets.QLabel('%s:' % _("Margin")) + self.margin_label = FCLabel('%s:' % _("Margin")) self.margin_label.setToolTip( _("Bounding box margin.") ) self.margin_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.margin_entry.set_range(0.0, 9999.9999) + self.margin_entry.set_range(0.0, 10000.0000) self.margin_entry.set_precision(self.decimals) self.margin_entry.setSingleStep(0.1) - grid_lay.addWidget(self.margin_label, 2, 0) - grid_lay.addWidget(self.margin_entry, 2, 1) + grid_lay.addWidget(self.margin_label, 4, 0) + grid_lay.addWidget(self.margin_entry, 4, 1) + + # Area # + area_hlay = QtWidgets.QHBoxLayout() + self.area_label = FCLabel('%s:' % _("Area")) + self.area_label.setToolTip( + _("Thieving areas with area less then this value will not be added.") + ) + self.area_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.area_entry.set_range(0.0, 10000.0000) + self.area_entry.set_precision(self.decimals) + self.area_entry.setSingleStep(0.1) + self.area_entry.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Preferred) + + if self.units.upper() == 'MM': + units_area_label = FCLabel('%s2' % _("mm")) + else: + units_area_label = FCLabel('%s2' % _("in")) + + area_hlay.addWidget(self.area_entry) + area_hlay.addWidget(units_area_label) + + grid_lay.addWidget(self.area_label, 6, 0) + grid_lay.addLayout(area_hlay, 6, 1) # Reference # self.reference_radio = RadioSet([ @@ -1256,16 +1322,16 @@ class ThievingUI: {"label": _("Area Selection"), "value": "area"}, {'label': _("Reference Object"), 'value': 'box'} ], orientation='vertical', stretch=False) - self.reference_label = QtWidgets.QLabel(_("Reference:")) + self.reference_label = FCLabel(_("Reference:")) self.reference_label.setToolTip( _("- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be filled.\n" "- 'Reference Object' - will do copper thieving within the area specified by another object.") ) - grid_lay.addWidget(self.reference_label, 3, 0) - grid_lay.addWidget(self.reference_radio, 3, 1) + grid_lay.addWidget(self.reference_label, 8, 0) + grid_lay.addWidget(self.reference_radio, 8, 1) - self.ref_combo_type_label = QtWidgets.QLabel('%s:' % _("Ref. Type")) + self.ref_combo_type_label = FCLabel('%s:' % _("Ref. Type")) self.ref_combo_type_label.setToolTip( _("The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry.") @@ -1273,10 +1339,10 @@ class ThievingUI: self.ref_combo_type = FCComboBox() self.ref_combo_type.addItems([_("Gerber"), _("Excellon"), _("Geometry")]) - grid_lay.addWidget(self.ref_combo_type_label, 4, 0) - grid_lay.addWidget(self.ref_combo_type, 4, 1) + grid_lay.addWidget(self.ref_combo_type_label, 10, 0) + grid_lay.addWidget(self.ref_combo_type, 10, 1) - self.ref_combo_label = QtWidgets.QLabel('%s:' % _("Ref. Object")) + self.ref_combo_label = FCLabel('%s:' % _("Ref. Object")) self.ref_combo_label.setToolTip( _("The FlatCAM object to be used as non copper clearing reference.") ) @@ -1288,8 +1354,8 @@ class ThievingUI: _("Gerber"): "Gerber", _("Excellon"): "Excellon", _("Geometry"): "Geometry" }[self.ref_combo_type.get_value()] - grid_lay.addWidget(self.ref_combo_label, 5, 0) - grid_lay.addWidget(self.ref_combo, 5, 1) + grid_lay.addWidget(self.ref_combo_label, 12, 0) + grid_lay.addWidget(self.ref_combo, 12, 1) self.ref_combo.hide() self.ref_combo_label.hide() @@ -1297,24 +1363,25 @@ class ThievingUI: self.ref_combo_type_label.hide() # Bounding Box Type # - self.bbox_type_radio = RadioSet([ - {'label': _('Rectangular'), 'value': 'rect'}, - {"label": _("Minimal"), "value": "min"} - ], stretch=False) - self.bbox_type_label = QtWidgets.QLabel(_("Box Type:")) + self.bbox_type_label = FCLabel(_("Box Type:")) self.bbox_type_label.setToolTip( _("- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape.") ) - grid_lay.addWidget(self.bbox_type_label, 6, 0) - grid_lay.addWidget(self.bbox_type_radio, 6, 1) + self.bbox_type_radio = RadioSet([ + {'label': _('Rectangular'), 'value': 'rect'}, + {"label": _("Minimal"), "value": "min"} + ], stretch=False) + + grid_lay.addWidget(self.bbox_type_label, 14, 0) + grid_lay.addWidget(self.bbox_type_radio, 14, 1) self.bbox_type_label.hide() self.bbox_type_radio.hide() separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid_lay.addWidget(separator_line, 7, 0, 1, 2) + grid_lay.addWidget(separator_line, 16, 0, 1, 2) # Fill Type self.fill_type_radio = RadioSet([ @@ -1323,15 +1390,15 @@ class ThievingUI: {"label": _("Squares Grid"), "value": "square"}, {"label": _("Lines Grid"), "value": "line"} ], orientation='vertical', stretch=False) - self.fill_type_label = QtWidgets.QLabel(_("Fill Type:")) + self.fill_type_label = FCLabel(_("Fill Type:")) self.fill_type_label.setToolTip( _("- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" "- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" "- 'Lines Grid' - the empty area will be filled with a pattern of lines.") ) - grid_lay.addWidget(self.fill_type_label, 8, 0) - grid_lay.addWidget(self.fill_type_radio, 8, 1) + grid_lay.addWidget(self.fill_type_label, 18, 0) + grid_lay.addWidget(self.fill_type_radio, 18, 1) # DOTS FRAME self.dots_frame = QtWidgets.QFrame() @@ -1344,16 +1411,16 @@ class ThievingUI: self.dots_frame.setLayout(dots_grid) self.dots_frame.hide() - self.dots_label = QtWidgets.QLabel('%s:' % _("Dots Grid Parameters")) + self.dots_label = FCLabel('%s:' % _("Dots Grid Parameters")) dots_grid.addWidget(self.dots_label, 0, 0, 1, 2) # Dot diameter # - self.dotdia_label = QtWidgets.QLabel('%s:' % _("Dia")) + self.dotdia_label = FCLabel('%s:' % _("Dia")) self.dotdia_label.setToolTip( _("Dot diameter in Dots Grid.") ) self.dot_dia_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.dot_dia_entry.set_range(0.0, 9999.9999) + self.dot_dia_entry.set_range(0.0, 10000.0000) self.dot_dia_entry.set_precision(self.decimals) self.dot_dia_entry.setSingleStep(0.1) @@ -1361,12 +1428,12 @@ class ThievingUI: dots_grid.addWidget(self.dot_dia_entry, 1, 1) # Dot spacing # - self.dotspacing_label = QtWidgets.QLabel('%s:' % _("Spacing")) + self.dotspacing_label = FCLabel('%s:' % _("Spacing")) self.dotspacing_label.setToolTip( _("Distance between each two dots in Dots Grid.") ) self.dot_spacing_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.dot_spacing_entry.set_range(0.0, 9999.9999) + self.dot_spacing_entry.set_range(0.0, 10000.0000) self.dot_spacing_entry.set_precision(self.decimals) self.dot_spacing_entry.setSingleStep(0.1) @@ -1384,16 +1451,16 @@ class ThievingUI: self.squares_frame.setLayout(squares_grid) self.squares_frame.hide() - self.squares_label = QtWidgets.QLabel('%s:' % _("Squares Grid Parameters")) + self.squares_label = FCLabel('%s:' % _("Squares Grid Parameters")) squares_grid.addWidget(self.squares_label, 0, 0, 1, 2) # Square Size # - self.square_size_label = QtWidgets.QLabel('%s:' % _("Size")) + self.square_size_label = FCLabel('%s:' % _("Size")) self.square_size_label.setToolTip( _("Square side size in Squares Grid.") ) self.square_size_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.square_size_entry.set_range(0.0, 9999.9999) + self.square_size_entry.set_range(0.0, 10000.0000) self.square_size_entry.set_precision(self.decimals) self.square_size_entry.setSingleStep(0.1) @@ -1401,12 +1468,12 @@ class ThievingUI: squares_grid.addWidget(self.square_size_entry, 1, 1) # Squares spacing # - self.squares_spacing_label = QtWidgets.QLabel('%s:' % _("Spacing")) + self.squares_spacing_label = FCLabel('%s:' % _("Spacing")) self.squares_spacing_label.setToolTip( _("Distance between each two squares in Squares Grid.") ) self.squares_spacing_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.squares_spacing_entry.set_range(0.0, 9999.9999) + self.squares_spacing_entry.set_range(0.0, 10000.0000) self.squares_spacing_entry.set_precision(self.decimals) self.squares_spacing_entry.setSingleStep(0.1) @@ -1424,16 +1491,16 @@ class ThievingUI: self.lines_frame.setLayout(lines_grid) self.lines_frame.hide() - self.lines_label = QtWidgets.QLabel('%s:' % _("Lines Grid Parameters")) + self.lines_label = FCLabel('%s:' % _("Lines Grid Parameters")) lines_grid.addWidget(self.lines_label, 0, 0, 1, 2) # Square Size # - self.line_size_label = QtWidgets.QLabel('%s:' % _("Size")) + self.line_size_label = FCLabel('%s:' % _("Size")) self.line_size_label.setToolTip( _("Line thickness size in Lines Grid.") ) self.line_size_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.line_size_entry.set_range(0.0, 9999.9999) + self.line_size_entry.set_range(0.0, 10000.0000) self.line_size_entry.set_precision(self.decimals) self.line_size_entry.setSingleStep(0.1) @@ -1441,12 +1508,12 @@ class ThievingUI: lines_grid.addWidget(self.line_size_entry, 1, 1) # Lines spacing # - self.lines_spacing_label = QtWidgets.QLabel('%s:' % _("Spacing")) + self.lines_spacing_label = FCLabel('%s:' % _("Spacing")) self.lines_spacing_label.setToolTip( _("Distance between each two lines in Lines Grid.") ) self.lines_spacing_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.lines_spacing_entry.set_range(0.0, 9999.9999) + self.lines_spacing_entry.set_range(0.0, 10000.0000) self.lines_spacing_entry.set_precision(self.decimals) self.lines_spacing_entry.setSingleStep(0.1) @@ -1480,40 +1547,40 @@ class ThievingUI: separator_line_1.setFrameShadow(QtWidgets.QFrame.Sunken) grid_lay_1.addWidget(separator_line_1, 0, 0, 1, 3) - grid_lay_1.addWidget(QtWidgets.QLabel('')) + grid_lay_1.addWidget(FCLabel('')) - self.robber_bar_label = QtWidgets.QLabel('%s' % _('Robber Bar Parameters')) + self.robber_bar_label = FCLabel('%s' % _('Robber Bar Parameters')) self.robber_bar_label.setToolTip( _("Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating.") ) - grid_lay_1.addWidget(self.robber_bar_label, 1, 0, 1, 3) + grid_lay_1.addWidget(self.robber_bar_label, 2, 0, 1, 3) # ROBBER BAR MARGIN # - self.rb_margin_label = QtWidgets.QLabel('%s:' % _("Margin")) + self.rb_margin_label = FCLabel('%s:' % _("Margin")) self.rb_margin_label.setToolTip( _("Bounding box margin for robber bar.") ) self.rb_margin_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.rb_margin_entry.set_range(-9999.9999, 9999.9999) + self.rb_margin_entry.set_range(-10000.0000, 10000.0000) self.rb_margin_entry.set_precision(self.decimals) self.rb_margin_entry.setSingleStep(0.1) - grid_lay_1.addWidget(self.rb_margin_label, 2, 0) - grid_lay_1.addWidget(self.rb_margin_entry, 2, 1, 1, 2) + grid_lay_1.addWidget(self.rb_margin_label, 4, 0) + grid_lay_1.addWidget(self.rb_margin_entry, 4, 1, 1, 2) # THICKNESS # - self.rb_thickness_label = QtWidgets.QLabel('%s:' % _("Thickness")) + self.rb_thickness_label = FCLabel('%s:' % _("Thickness")) self.rb_thickness_label.setToolTip( _("The robber bar thickness.") ) self.rb_thickness_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.rb_thickness_entry.set_range(0.0000, 9999.9999) + self.rb_thickness_entry.set_range(0.0000, 10000.0000) self.rb_thickness_entry.set_precision(self.decimals) self.rb_thickness_entry.setSingleStep(0.1) - grid_lay_1.addWidget(self.rb_thickness_label, 3, 0) - grid_lay_1.addWidget(self.rb_thickness_entry, 3, 1, 1, 2) + grid_lay_1.addWidget(self.rb_thickness_label, 6, 0) + grid_lay_1.addWidget(self.rb_thickness_entry, 6, 1, 1, 2) # ## Insert Robber Bar self.rb_button = QtWidgets.QPushButton(_("Insert Robber Bar")) @@ -1530,20 +1597,20 @@ class ThievingUI: font-weight: bold; } """) - grid_lay_1.addWidget(self.rb_button, 4, 0, 1, 3) + grid_lay_1.addWidget(self.rb_button, 8, 0, 1, 3) separator_line_2 = QtWidgets.QFrame() separator_line_2.setFrameShape(QtWidgets.QFrame.HLine) separator_line_2.setFrameShadow(QtWidgets.QFrame.Sunken) - grid_lay_1.addWidget(separator_line_2, 5, 0, 1, 3) + grid_lay_1.addWidget(separator_line_2, 10, 0, 1, 3) - self.patern_mask_label = QtWidgets.QLabel('%s' % _('Pattern Plating Mask')) + self.patern_mask_label = FCLabel('%s' % _('Pattern Plating Mask')) self.patern_mask_label.setToolTip( _("Generate a mask for pattern plating.") ) - grid_lay_1.addWidget(self.patern_mask_label, 6, 0, 1, 3) + grid_lay_1.addWidget(self.patern_mask_label, 12, 0, 1, 3) - self.sm_obj_label = QtWidgets.QLabel("%s:" % _("Select Soldermask object")) + self.sm_obj_label = FCLabel("%s:" % _("Select Soldermask object")) self.sm_obj_label.setToolTip( _("Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -1556,25 +1623,25 @@ class ThievingUI: self.sm_object_combo.is_last = True self.sm_object_combo.obj_type = 'Gerber' - grid_lay_1.addWidget(self.sm_obj_label, 7, 0, 1, 3) - grid_lay_1.addWidget(self.sm_object_combo, 8, 0, 1, 3) + grid_lay_1.addWidget(self.sm_obj_label, 14, 0, 1, 3) + grid_lay_1.addWidget(self.sm_object_combo, 16, 0, 1, 3) # Openings CLEARANCE # - self.clearance_ppm_label = QtWidgets.QLabel('%s:' % _("Clearance")) + self.clearance_ppm_label = FCLabel('%s:' % _("Clearance")) self.clearance_ppm_label.setToolTip( _("The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask.") ) self.clearance_ppm_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.clearance_ppm_entry.set_range(-9999.9999, 9999.9999) + self.clearance_ppm_entry.set_range(-10000.0000, 10000.0000) self.clearance_ppm_entry.set_precision(self.decimals) self.clearance_ppm_entry.setSingleStep(0.1) - grid_lay_1.addWidget(self.clearance_ppm_label, 9, 0) - grid_lay_1.addWidget(self.clearance_ppm_entry, 9, 1, 1, 2) + grid_lay_1.addWidget(self.clearance_ppm_label, 18, 0) + grid_lay_1.addWidget(self.clearance_ppm_entry, 18, 1, 1, 2) # Plated area - self.plated_area_label = QtWidgets.QLabel('%s:' % _("Plated area")) + self.plated_area_label = FCLabel('%s:' % _("Plated area")) self.plated_area_label.setToolTip( _("The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n\n" @@ -1587,13 +1654,27 @@ class ThievingUI: self.plated_area_entry.setDisabled(True) if self.units.upper() == 'MM': - self.units_area_label = QtWidgets.QLabel('%s2' % _("mm")) + self.units_area_label = FCLabel('%s2' % _("mm")) else: - self.units_area_label = QtWidgets.QLabel('%s2' % _("in")) + self.units_area_label = FCLabel('%s2' % _("in")) - grid_lay_1.addWidget(self.plated_area_label, 10, 0) - grid_lay_1.addWidget(self.plated_area_entry, 10, 1) - grid_lay_1.addWidget(self.units_area_label, 10, 2) + grid_lay_1.addWidget(self.plated_area_label, 20, 0) + grid_lay_1.addWidget(self.plated_area_entry, 20, 1) + grid_lay_1.addWidget(self.units_area_label, 20, 2) + + # Include geometry + self.ppm_choice_label = FCLabel('%s:' % _("Add")) + self.ppm_choice_label.setToolTip( + _("Choose which additional geometry to include, if available.") + ) + self.ppm_choice_radio = RadioSet([ + {"label": _("Both"), "value": "b"}, + {'label': _('Thieving'), 'value': 't'}, + {"label": _("Robber bar"), "value": "r"}, + {"label": _("None"), "value": "n"} + ], orientation='vertical', stretch=False) + grid_lay_1.addWidget(self.ppm_choice_label, 22, 0) + grid_lay_1.addWidget(self.ppm_choice_radio, 22, 1, 1, 2) # ## Pattern Plating Mask self.ppm_button = QtWidgets.QPushButton(_("Generate pattern plating mask")) @@ -1609,7 +1690,7 @@ class ThievingUI: font-weight: bold; } """) - grid_lay_1.addWidget(self.ppm_button, 11, 0, 1, 3) + grid_lay_1.addWidget(self.ppm_button, 24, 0, 1, 3) self.layout.addStretch() diff --git a/appTools/ToolCorners.py b/appTools/ToolCorners.py index 02a9800a..f50c8bdc 100644 --- a/appTools/ToolCorners.py +++ b/appTools/ToolCorners.py @@ -339,9 +339,6 @@ class ToolCorners(AppTool): bl_state = self.ui.bl_cb.get_value() br_state = self.ui.br_cb.get_value() - if not tl_state and not tr_state and not bl_state and not br_state: - self.app.inform.emit("[ERROR_NOTCL] %s." % _("Please select at least a location")) - # get the Gerber object on which the corner marker will be inserted selection_index = self.ui.object_combo.currentIndex() model_index = self.app.collection.index(selection_index, 0, self.ui.object_combo.rootModelIndex()) @@ -354,6 +351,11 @@ class ToolCorners(AppTool): self.app.call_source = "app" return + if tl_state is False and tr_state is False and bl_state is False and br_state is False: + self.app.inform.emit("[ERROR_NOTCL] %s." % _("Please select at least a location")) + self.app.call_source = "app" + return + xmin, ymin, xmax, ymax = self.grb_object.bounds() # list of (x,y) tuples. Store here the drill coordinates @@ -393,6 +395,9 @@ class ToolCorners(AppTool): tools[1]['solid_geometry'] = [] def obj_init(obj_inst, app_inst): + obj_inst.options.update({ + 'name': outname + }) obj_inst.tools = deepcopy(tools) obj_inst.create_geometry() obj_inst.source_file = app_inst.f_handlers.export_excellon(obj_name=obj_inst.options['name'], @@ -401,12 +406,10 @@ class ToolCorners(AppTool): use_thread=False) outname = '%s_%s' % (str(self.grb_object.options['name']), 'corner_drills') - ret_val = self.app.app_obj.new_object("excellon", outname, obj_init) self.app.call_source = "app" - - if not ret_val == 'fail': + if ret_val == 'fail': self.app.inform.emit('[ERROR_NOTCL] %s' % _("Failed.")) else: self.app.inform.emit('[success] %s' % _("Excellon object with corner drills created.")) diff --git a/appTools/ToolCutOut.py b/appTools/ToolCutOut.py index cb34fabe..80411fe9 100644 --- a/appTools/ToolCutOut.py +++ b/appTools/ToolCutOut.py @@ -2072,7 +2072,7 @@ class CutoutUI: # Tool Diameter self.dia = FCDoubleSpinner(callback=self.confirmation_message) self.dia.set_precision(self.decimals) - self.dia.set_range(0.0000, 9999.9999) + self.dia.set_range(0.0000, 10000.0000) self.dia_label = QtWidgets.QLabel('%s:' % _("Tool Dia")) self.dia_label.setToolTip( @@ -2129,9 +2129,9 @@ class CutoutUI: self.cutz_entry.set_precision(self.decimals) if machinist_setting == 0: - self.cutz_entry.setRange(-9999.9999, -0.00001) + self.cutz_entry.setRange(-10000.0000, -0.00001) else: - self.cutz_entry.setRange(-9999.9999, 9999.9999) + self.cutz_entry.setRange(-10000.0000, 10000.0000) self.cutz_entry.setSingleStep(0.1) @@ -2151,7 +2151,7 @@ class CutoutUI: self.maxdepth_entry = FCDoubleSpinner(callback=self.confirmation_message) self.maxdepth_entry.set_precision(self.decimals) - self.maxdepth_entry.setRange(0, 9999.9999) + self.maxdepth_entry.setRange(0, 10000.0000) self.maxdepth_entry.setSingleStep(0.1) self.maxdepth_entry.setToolTip( @@ -2167,7 +2167,7 @@ class CutoutUI: # Margin self.margin = FCDoubleSpinner(callback=self.confirmation_message) - self.margin.set_range(-9999.9999, 9999.9999) + self.margin.set_range(-10000.0000, 10000.0000) self.margin.setSingleStep(0.1) self.margin.set_precision(self.decimals) @@ -2225,9 +2225,9 @@ class CutoutUI: self.thin_depth_entry = FCDoubleSpinner(callback=self.confirmation_message) self.thin_depth_entry.set_precision(self.decimals) if machinist_setting == 0: - self.thin_depth_entry.setRange(-9999.9999, -0.00001) + self.thin_depth_entry.setRange(-10000.0000, -0.00001) else: - self.thin_depth_entry.setRange(-9999.9999, 9999.9999) + self.thin_depth_entry.setRange(-10000.0000, 10000.0000) self.thin_depth_entry.setSingleStep(0.1) grid0.addWidget(self.thin_depth_label, 32, 0) diff --git a/appTools/ToolDblSided.py b/appTools/ToolDblSided.py index f4bdbd45..c1d54fa5 100644 --- a/appTools/ToolDblSided.py +++ b/appTools/ToolDblSided.py @@ -565,7 +565,7 @@ class DsidedUI: # Xmin value self.xmin_entry = FCDoubleSpinner(callback=self.confirmation_message) self.xmin_entry.set_precision(self.decimals) - self.xmin_entry.set_range(-9999.9999, 9999.9999) + self.xmin_entry.set_range(-10000.0000, 10000.0000) self.xmin_btn = FCButton('%s:' % _("X min")) self.xmin_btn.setToolTip( @@ -579,7 +579,7 @@ class DsidedUI: # Ymin value self.ymin_entry = FCDoubleSpinner(callback=self.confirmation_message) self.ymin_entry.set_precision(self.decimals) - self.ymin_entry.set_range(-9999.9999, 9999.9999) + self.ymin_entry.set_range(-10000.0000, 10000.0000) self.ymin_btn = FCButton('%s:' % _("Y min")) self.ymin_btn.setToolTip( @@ -593,7 +593,7 @@ class DsidedUI: # Xmax value self.xmax_entry = FCDoubleSpinner(callback=self.confirmation_message) self.xmax_entry.set_precision(self.decimals) - self.xmax_entry.set_range(-9999.9999, 9999.9999) + self.xmax_entry.set_range(-10000.0000, 10000.0000) self.xmax_btn = FCButton('%s:' % _("X max")) self.xmax_btn.setToolTip( @@ -607,7 +607,7 @@ class DsidedUI: # Ymax value self.ymax_entry = FCDoubleSpinner(callback=self.confirmation_message) self.ymax_entry.set_precision(self.decimals) - self.ymax_entry.set_range(-9999.9999, 9999.9999) + self.ymax_entry.set_range(-10000.0000, 10000.0000) self.ymax_btn = FCButton('%s:' % _("Y max")) self.ymax_btn.setToolTip( @@ -834,7 +834,7 @@ class DsidedUI: _("Diameter of the drill for the alignment holes.") ) self.drill_dia.set_precision(self.decimals) - self.drill_dia.set_range(0.0000, 9999.9999) + self.drill_dia.set_range(0.0000, 10000.0000) grid4.addWidget(self.dt_label, 2, 0) grid4.addWidget(self.drill_dia, 2, 1) diff --git a/appTools/ToolDrilling.py b/appTools/ToolDrilling.py index c2f6dde7..b9f25578 100644 --- a/appTools/ToolDrilling.py +++ b/appTools/ToolDrilling.py @@ -2150,9 +2150,9 @@ class DrillingUI: self.cutz_entry.set_precision(self.decimals) if machinist_setting == 0: - self.cutz_entry.set_range(-9999.9999, 0.0000) + self.cutz_entry.set_range(-10000.0000, 0.0000) else: - self.cutz_entry.set_range(-9999.9999, 9999.9999) + self.cutz_entry.set_range(-10000.0000, 10000.0000) self.cutz_entry.setSingleStep(0.1) self.cutz_entry.setObjectName("e_cutz") @@ -2174,7 +2174,7 @@ class DrillingUI: self.maxdepth_entry = FCDoubleSpinner(callback=self.confirmation_message) self.maxdepth_entry.set_precision(self.decimals) - self.maxdepth_entry.set_range(0, 9999.9999) + self.maxdepth_entry.set_range(0, 10000.0000) self.maxdepth_entry.setSingleStep(0.1) self.maxdepth_entry.setToolTip(_("Depth of each pass (positive).")) @@ -2196,9 +2196,9 @@ class DrillingUI: self.travelz_entry.set_precision(self.decimals) if machinist_setting == 0: - self.travelz_entry.set_range(0.00001, 9999.9999) + self.travelz_entry.set_range(0.00001, 10000.0000) else: - self.travelz_entry.set_range(-9999.9999, 9999.9999) + self.travelz_entry.set_range(-10000.0000, 10000.0000) self.travelz_entry.setSingleStep(0.1) self.travelz_entry.setObjectName("e_travelz") @@ -2216,7 +2216,7 @@ class DrillingUI: ) self.feedrate_z_entry = FCDoubleSpinner(callback=self.confirmation_message) self.feedrate_z_entry.set_precision(self.decimals) - self.feedrate_z_entry.set_range(0.0, 99999.9999) + self.feedrate_z_entry.set_range(0.0, 910000.0000) self.feedrate_z_entry.setSingleStep(0.1) self.feedrate_z_entry.setObjectName("e_feedratez") @@ -2234,7 +2234,7 @@ class DrillingUI: ) self.feedrate_rapid_entry = FCDoubleSpinner(callback=self.confirmation_message) self.feedrate_rapid_entry.set_precision(self.decimals) - self.feedrate_rapid_entry.set_range(0.0, 99999.9999) + self.feedrate_rapid_entry.set_range(0.0, 910000.0000) self.feedrate_rapid_entry.setSingleStep(0.1) self.feedrate_rapid_entry.setObjectName("e_fr_rapid") @@ -2271,7 +2271,7 @@ class DrillingUI: # Dwelltime self.dwelltime_entry = FCDoubleSpinner(callback=self.confirmation_message) self.dwelltime_entry.set_precision(self.decimals) - self.dwelltime_entry.set_range(0.0, 9999.9999) + self.dwelltime_entry.set_range(0.0, 10000.0000) self.dwelltime_entry.setSingleStep(0.1) self.dwelltime_entry.setToolTip( @@ -2294,7 +2294,7 @@ class DrillingUI: self.offset_entry = FCDoubleSpinner(callback=self.confirmation_message) self.offset_entry.set_precision(self.decimals) - self.offset_entry.set_range(-9999.9999, 9999.9999) + self.offset_entry.set_range(-10000.0000, 10000.0000) self.offset_entry.setObjectName("e_offset") self.grid1.addWidget(self.tool_offset_label, 25, 0) @@ -2402,9 +2402,9 @@ class DrillingUI: self.toolchangez_entry.setObjectName("e_toolchangez") if machinist_setting == 0: - self.toolchangez_entry.set_range(0.0, 9999.9999) + self.toolchangez_entry.set_range(0.0, 10000.0000) else: - self.toolchangez_entry.set_range(-9999.9999, 9999.9999) + self.toolchangez_entry.set_range(-10000.0000, 10000.0000) self.toolchangez_entry.setSingleStep(0.1) @@ -2434,9 +2434,9 @@ class DrillingUI: self.endz_entry.setObjectName("e_endz") if machinist_setting == 0: - self.endz_entry.set_range(0.0, 9999.9999) + self.endz_entry.set_range(0.0, 10000.0000) else: - self.endz_entry.set_range(-9999.9999, 9999.9999) + self.endz_entry.set_range(-10000.0000, 10000.0000) self.endz_entry.setSingleStep(0.1) @@ -2466,7 +2466,7 @@ class DrillingUI: self.pdepth_entry = FCDoubleSpinner(callback=self.confirmation_message) self.pdepth_entry.set_precision(self.decimals) - self.pdepth_entry.set_range(-9999.9999, 9999.9999) + self.pdepth_entry.set_range(-10000.0000, 10000.0000) self.pdepth_entry.setSingleStep(0.1) self.pdepth_entry.setObjectName("e_depth_probe") @@ -2484,7 +2484,7 @@ class DrillingUI: self.feedrate_probe_entry = FCDoubleSpinner(callback=self.confirmation_message) self.feedrate_probe_entry.set_precision(self.decimals) - self.feedrate_probe_entry.set_range(0.0, 9999.9999) + self.feedrate_probe_entry.set_range(0.0, 10000.0000) self.feedrate_probe_entry.setSingleStep(0.1) self.feedrate_probe_entry.setObjectName("e_fr_probe") @@ -2573,7 +2573,7 @@ class DrillingUI: self.over_z_label.setToolTip(_("The height Z to which the tool will rise in order to avoid\n" "an interdiction area.")) self.over_z_entry = FCDoubleSpinner() - self.over_z_entry.set_range(0.000, 9999.9999) + self.over_z_entry.set_range(0.000, 10000.0000) self.over_z_entry.set_precision(self.decimals) self.over_z_entry.setObjectName("e_area_overz") diff --git a/appTools/ToolEtchCompensation.py b/appTools/ToolEtchCompensation.py index d515eeb7..3baf4bfe 100644 --- a/appTools/ToolEtchCompensation.py +++ b/appTools/ToolEtchCompensation.py @@ -366,7 +366,7 @@ class EtchUI: ) self.thick_entry = FCDoubleSpinner(callback=self.confirmation_message) self.thick_entry.set_precision(self.decimals) - self.thick_entry.set_range(0.0000, 9999.9999) + self.thick_entry.set_range(0.0000, 10000.0000) self.thick_entry.setObjectName(_("Thickness")) grid0.addWidget(self.thick_label, 12, 0) @@ -421,7 +421,7 @@ class EtchUI: ) self.offset_entry = FCDoubleSpinner(callback=self.confirmation_message) self.offset_entry.set_precision(self.decimals) - self.offset_entry.set_range(-9999.9999, 9999.9999) + self.offset_entry.set_range(-10000.0000, 10000.0000) self.offset_entry.setObjectName(_("Offset")) grid0.addWidget(self.offset_label, 20, 0) diff --git a/appTools/ToolExtractDrills.py b/appTools/ToolExtractDrills.py index 622c0cab..575240b4 100644 --- a/appTools/ToolExtractDrills.py +++ b/appTools/ToolExtractDrills.py @@ -552,7 +552,7 @@ class ExtractDrillsUI: # Diameter value self.dia_entry = FCDoubleSpinner(callback=self.confirmation_message) self.dia_entry.set_precision(self.decimals) - self.dia_entry.set_range(0.0000, 9999.9999) + self.dia_entry.set_range(0.0000, 10000.0000) self.dia_label = QtWidgets.QLabel('%s:' % _("Value")) self.dia_label.setToolTip( @@ -593,7 +593,7 @@ class ExtractDrillsUI: self.circular_ring_entry = FCDoubleSpinner(callback=self.confirmation_message) self.circular_ring_entry.set_precision(self.decimals) - self.circular_ring_entry.set_range(0.0000, 9999.9999) + self.circular_ring_entry.set_range(0.0000, 10000.0000) grid2.addWidget(self.circular_ring_label, 1, 0) grid2.addWidget(self.circular_ring_entry, 1, 1) @@ -606,7 +606,7 @@ class ExtractDrillsUI: self.oblong_ring_entry = FCDoubleSpinner(callback=self.confirmation_message) self.oblong_ring_entry.set_precision(self.decimals) - self.oblong_ring_entry.set_range(0.0000, 9999.9999) + self.oblong_ring_entry.set_range(0.0000, 10000.0000) grid2.addWidget(self.oblong_ring_label, 2, 0) grid2.addWidget(self.oblong_ring_entry, 2, 1) @@ -619,7 +619,7 @@ class ExtractDrillsUI: self.square_ring_entry = FCDoubleSpinner(callback=self.confirmation_message) self.square_ring_entry.set_precision(self.decimals) - self.square_ring_entry.set_range(0.0000, 9999.9999) + self.square_ring_entry.set_range(0.0000, 10000.0000) grid2.addWidget(self.square_ring_label, 3, 0) grid2.addWidget(self.square_ring_entry, 3, 1) @@ -632,7 +632,7 @@ class ExtractDrillsUI: self.rectangular_ring_entry = FCDoubleSpinner(callback=self.confirmation_message) self.rectangular_ring_entry.set_precision(self.decimals) - self.rectangular_ring_entry.set_range(0.0000, 9999.9999) + self.rectangular_ring_entry.set_range(0.0000, 10000.0000) grid2.addWidget(self.rectangular_ring_label, 4, 0) grid2.addWidget(self.rectangular_ring_entry, 4, 1) @@ -645,7 +645,7 @@ class ExtractDrillsUI: self.other_ring_entry = FCDoubleSpinner(callback=self.confirmation_message) self.other_ring_entry.set_precision(self.decimals) - self.other_ring_entry.set_range(0.0000, 9999.9999) + self.other_ring_entry.set_range(0.0000, 10000.0000) grid2.addWidget(self.other_ring_label, 5, 0) grid2.addWidget(self.other_ring_entry, 5, 1) diff --git a/appTools/ToolFiducials.py b/appTools/ToolFiducials.py index cfc4cd8a..d62d9574 100644 --- a/appTools/ToolFiducials.py +++ b/appTools/ToolFiducials.py @@ -817,7 +817,7 @@ class FidoUI: _("Bounding box margin.") ) self.margin_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.margin_entry.set_range(-9999.9999, 9999.9999) + self.margin_entry.set_range(-10000.0000, 10000.0000) self.margin_entry.set_precision(self.decimals) self.margin_entry.setSingleStep(0.1) @@ -880,7 +880,7 @@ class FidoUI: _("Thickness of the line that makes the fiducial.") ) self.line_thickness_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.line_thickness_entry.set_range(0.00001, 9999.9999) + self.line_thickness_entry.set_range(0.00001, 10000.0000) self.line_thickness_entry.set_precision(self.decimals) self.line_thickness_entry.setSingleStep(0.1) diff --git a/appTools/ToolInvertGerber.py b/appTools/ToolInvertGerber.py index 51185de6..439212e1 100644 --- a/appTools/ToolInvertGerber.py +++ b/appTools/ToolInvertGerber.py @@ -235,7 +235,7 @@ class InvertUI: ) self.margin_entry = FCDoubleSpinner(callback=self.confirmation_message) self.margin_entry.set_precision(self.decimals) - self.margin_entry.set_range(0.0000, 9999.9999) + self.margin_entry.set_range(0.0000, 10000.0000) self.margin_entry.setObjectName(_("Margin")) grid0.addWidget(self.margin_label, 5, 0, 1, 2) diff --git a/appTools/ToolIsolation.py b/appTools/ToolIsolation.py index b5b376cf..4cd119f6 100644 --- a/appTools/ToolIsolation.py +++ b/appTools/ToolIsolation.py @@ -782,12 +782,12 @@ class ToolIsolation(AppTool, Gerber): def on_add_tool_by_key(self): # tool_add_popup = FCInputDialog(title='%s...' % _("New Tool"), # text='%s:' % _('Enter a Tool Diameter'), - # min=0.0001, max=9999.9999, decimals=self.decimals) + # min=0.0001, max=10000.0000, decimals=self.decimals) btn_icon = QtGui.QIcon(self.app.resource_location + '/open_excellon32.png') tool_add_popup = FCInputDialogSpinnerButton(title='%s...' % _("New Tool"), text='%s:' % _('Enter a Tool Diameter'), - min=0.0001, max=9999.9999, decimals=self.decimals, + min=0.0001, max=10000.0000, decimals=self.decimals, button_icon=btn_icon, callback=self.on_find_optimal_tooldia, parent=self.app.ui) @@ -3111,7 +3111,7 @@ class IsoUI: self.new_tooldia_entry = FCDoubleSpinner(callback=self.confirmation_message) self.new_tooldia_entry.set_precision(self.decimals) - self.new_tooldia_entry.set_range(0.000, 9999.9999) + self.new_tooldia_entry.set_range(0.000, 10000.0000) self.new_tooldia_entry.setObjectName("i_new_tooldia") new_tool_lay.addWidget(self.new_tooldia_entry) diff --git a/appTools/ToolMilling.py b/appTools/ToolMilling.py index 02e7ac46..7a494305 100644 --- a/appTools/ToolMilling.py +++ b/appTools/ToolMilling.py @@ -1783,7 +1783,7 @@ class MillingUI: self.mill_dia_entry = FCDoubleSpinner(callback=self.confirmation_message) self.mill_dia_entry.set_precision(self.decimals) - self.mill_dia_entry.set_range(0.0000, 9999.9999) + self.mill_dia_entry.set_range(0.0000, 10000.0000) self.mill_dia_entry.setObjectName("e_milling_dia") self.grid1.addWidget(self.mill_dia_label, 3, 0) @@ -1800,9 +1800,9 @@ class MillingUI: self.cutz_entry.set_precision(self.decimals) if machinist_setting == 0: - self.cutz_entry.set_range(-9999.9999, 0.0000) + self.cutz_entry.set_range(-10000.0000, 0.0000) else: - self.cutz_entry.set_range(-9999.9999, 9999.9999) + self.cutz_entry.set_range(-10000.0000, 10000.0000) self.cutz_entry.setSingleStep(0.1) self.cutz_entry.setObjectName("e_cutz") @@ -1824,7 +1824,7 @@ class MillingUI: self.maxdepth_entry = FCDoubleSpinner(callback=self.confirmation_message) self.maxdepth_entry.set_precision(self.decimals) - self.maxdepth_entry.set_range(0, 9999.9999) + self.maxdepth_entry.set_range(0, 10000.0000) self.maxdepth_entry.setSingleStep(0.1) self.maxdepth_entry.setToolTip(_("Depth of each pass (positive).")) @@ -1846,9 +1846,9 @@ class MillingUI: self.travelz_entry.set_precision(self.decimals) if machinist_setting == 0: - self.travelz_entry.set_range(0.00001, 9999.9999) + self.travelz_entry.set_range(0.00001, 10000.0000) else: - self.travelz_entry.set_range(-9999.9999, 9999.9999) + self.travelz_entry.set_range(-10000.0000, 10000.0000) self.travelz_entry.setSingleStep(0.1) self.travelz_entry.setObjectName("e_travelz") @@ -1864,7 +1864,7 @@ class MillingUI: ) self.xyfeedrate_entry = FCDoubleSpinner(callback=self.confirmation_message) self.xyfeedrate_entry.set_precision(self.decimals) - self.xyfeedrate_entry.set_range(0, 9999.9999) + self.xyfeedrate_entry.set_range(0, 10000.0000) self.xyfeedrate_entry.setSingleStep(0.1) self.xyfeedrate_entry.setObjectName("e_feedratexy") @@ -1881,7 +1881,7 @@ class MillingUI: ) self.feedrate_z_entry = FCDoubleSpinner(callback=self.confirmation_message) self.feedrate_z_entry.set_precision(self.decimals) - self.feedrate_z_entry.set_range(0.0, 99999.9999) + self.feedrate_z_entry.set_range(0.0, 910000.0000) self.feedrate_z_entry.setSingleStep(0.1) self.feedrate_z_entry.setObjectName("e_feedratez") @@ -1899,7 +1899,7 @@ class MillingUI: ) self.feedrate_rapid_entry = FCDoubleSpinner(callback=self.confirmation_message) self.feedrate_rapid_entry.set_precision(self.decimals) - self.feedrate_rapid_entry.set_range(0.0, 99999.9999) + self.feedrate_rapid_entry.set_range(0.0, 910000.0000) self.feedrate_rapid_entry.setSingleStep(0.1) self.feedrate_rapid_entry.setObjectName("e_fr_rapid") @@ -1963,7 +1963,7 @@ class MillingUI: self.dwelltime_entry = FCDoubleSpinner(callback=self.confirmation_message) self.dwelltime_entry.set_precision(self.decimals) - self.dwelltime_entry.set_range(0.0, 9999.9999) + self.dwelltime_entry.set_range(0.0, 10000.0000) self.dwelltime_entry.setSingleStep(0.1) self.dwelltime_entry.setToolTip( @@ -1986,7 +1986,7 @@ class MillingUI: self.offset_entry = FCDoubleSpinner(callback=self.confirmation_message) self.offset_entry.set_precision(self.decimals) - self.offset_entry.set_range(-9999.9999, 9999.9999) + self.offset_entry.set_range(-10000.0000, 10000.0000) self.offset_entry.setObjectName("e_offset") self.grid1.addWidget(self.tool_offset_label, 25, 0) @@ -2073,9 +2073,9 @@ class MillingUI: "tool change.") ) if machinist_setting == 0: - self.toolchangez_entry.set_range(0.0, 9999.9999) + self.toolchangez_entry.set_range(0.0, 10000.0000) else: - self.toolchangez_entry.set_range(-9999.9999, 9999.9999) + self.toolchangez_entry.set_range(-10000.0000, 10000.0000) self.toolchangez_entry.setSingleStep(0.1) self.ois_tcz_e = OptionalInputSection(self.toolchange_cb, [self.toolchangez_entry]) @@ -2104,9 +2104,9 @@ class MillingUI: self.endz_entry.set_precision(self.decimals) if machinist_setting == 0: - self.endz_entry.set_range(0.0, 9999.9999) + self.endz_entry.set_range(0.0, 10000.0000) else: - self.endz_entry.set_range(-9999.9999, 9999.9999) + self.endz_entry.set_range(-10000.0000, 10000.0000) self.endz_entry.setSingleStep(0.1) @@ -2134,7 +2134,7 @@ class MillingUI: self.pdepth_entry = FCDoubleSpinner(callback=self.confirmation_message) self.pdepth_entry.set_precision(self.decimals) - self.pdepth_entry.set_range(-9999.9999, 9999.9999) + self.pdepth_entry.set_range(-10000.0000, 10000.0000) self.pdepth_entry.setSingleStep(0.1) self.pdepth_entry.setObjectName("e_depth_probe") @@ -2152,7 +2152,7 @@ class MillingUI: self.feedrate_probe_entry = FCDoubleSpinner(callback=self.confirmation_message) self.feedrate_probe_entry.set_precision(self.decimals) - self.feedrate_probe_entry.set_range(0.0, 9999.9999) + self.feedrate_probe_entry.set_range(0.0, 10000.0000) self.feedrate_probe_entry.setSingleStep(0.1) self.feedrate_probe_entry.setObjectName("e_fr_probe") @@ -2250,7 +2250,7 @@ class MillingUI: self.over_z_label.setToolTip(_("The height Z to which the tool will rise in order to avoid\n" "an interdiction area.")) self.over_z_entry = FCDoubleSpinner() - self.over_z_entry.set_range(0.000, 9999.9999) + self.over_z_entry.set_range(0.000, 10000.0000) self.over_z_entry.set_precision(self.decimals) grid_a1.addWidget(self.over_z_label, 2, 0) diff --git a/appTools/ToolNCC.py b/appTools/ToolNCC.py index f6cbefbf..f02a87e5 100644 --- a/appTools/ToolNCC.py +++ b/appTools/ToolNCC.py @@ -453,12 +453,12 @@ class NonCopperClear(AppTool, Gerber): def on_add_tool_by_key(self): # tool_add_popup = FCInputDialog(title='%s...' % _("New Tool"), # text='%s:' % _('Enter a Tool Diameter'), - # min=0.0001, max=9999.9999, decimals=self.decimals) + # min=0.0001, max=10000.0000, decimals=self.decimals) btn_icon = QtGui.QIcon(self.app.resource_location + '/open_excellon32.png') tool_add_popup = FCInputDialogSpinnerButton(title='%s...' % _("New Tool"), text='%s:' % _('Enter a Tool Diameter'), - min=0.0001, max=9999.9999, decimals=self.decimals, + min=0.0001, max=10000.0000, decimals=self.decimals, button_icon=btn_icon, callback=self.on_find_optimal_tooldia, parent=self.app.ui) @@ -3997,7 +3997,7 @@ class NccUI: self.new_tooldia_entry = FCDoubleSpinner(callback=self.confirmation_message) self.new_tooldia_entry.set_precision(self.decimals) - self.new_tooldia_entry.set_range(0.000, 9999.9999) + self.new_tooldia_entry.set_range(0.000, 10000.0000) self.new_tooldia_entry.setObjectName(_("Tool Dia")) new_tool_lay.addWidget(self.new_tooldia_entry) @@ -4162,7 +4162,7 @@ class NccUI: ) self.ncc_margin_entry = FCDoubleSpinner(callback=self.confirmation_message) self.ncc_margin_entry.set_precision(self.decimals) - self.ncc_margin_entry.set_range(-9999.9999, 9999.9999) + self.ncc_margin_entry.set_range(-10000.0000, 10000.0000) self.ncc_margin_entry.setObjectName("n_margin") self.grid3.addWidget(self.nccmarginlabel, 17, 0) @@ -4265,7 +4265,7 @@ class NccUI: ) self.rest_ncc_margin_entry = FCDoubleSpinner(callback=self.confirmation_message) self.rest_ncc_margin_entry.set_precision(self.decimals) - self.rest_ncc_margin_entry.set_range(-9999.9999, 9999.9999) + self.rest_ncc_margin_entry.set_range(-10000.0000, 10000.0000) self.rest_ncc_margin_entry.setObjectName("n_margin") self.grid3.addWidget(self.rest_nccmarginlabel, 26, 0) diff --git a/appTools/ToolPaint.py b/appTools/ToolPaint.py index 2c78043d..bae71a79 100644 --- a/appTools/ToolPaint.py +++ b/appTools/ToolPaint.py @@ -2905,7 +2905,7 @@ class PaintUI: ) self.new_tooldia_entry = FCDoubleSpinner(callback=self.confirmation_message) self.new_tooldia_entry.set_precision(self.decimals) - self.new_tooldia_entry.set_range(0.000, 9999.9999) + self.new_tooldia_entry.set_range(0.000, 10000.0000) self.new_tooldia_entry.setObjectName('p_tool_dia') self.grid3.addWidget(self.new_tooldia_lbl, 2, 0) @@ -2999,7 +2999,7 @@ class PaintUI: ) self.offset_entry = FCDoubleSpinner(callback=self.confirmation_message) self.offset_entry.set_precision(self.decimals) - self.offset_entry.set_range(-9999.9999, 9999.9999) + self.offset_entry.set_range(-10000.0000, 10000.0000) self.offset_entry.setObjectName('p_offset') grid4.addWidget(self.offset_label, 2, 0) @@ -3095,7 +3095,7 @@ class PaintUI: ) self.rest_offset_entry = FCDoubleSpinner(callback=self.confirmation_message) self.rest_offset_entry.set_precision(self.decimals) - self.rest_offset_entry.set_range(-9999.9999, 9999.9999) + self.rest_offset_entry.set_range(-10000.0000, 10000.0000) grid4.addWidget(self.rest_offset_label, 17, 0) grid4.addWidget(self.rest_offset_entry, 17, 1) diff --git a/appTools/ToolPunchGerber.py b/appTools/ToolPunchGerber.py index cd4fb3b8..e07199c3 100644 --- a/appTools/ToolPunchGerber.py +++ b/appTools/ToolPunchGerber.py @@ -1161,7 +1161,7 @@ class PunchUI: # Diameter value self.dia_entry = FCDoubleSpinner(callback=self.confirmation_message) self.dia_entry.set_precision(self.decimals) - self.dia_entry.set_range(0.0000, 9999.9999) + self.dia_entry.set_range(0.0000, 10000.0000) self.dia_label = QtWidgets.QLabel('%s:' % _("Value")) self.dia_label.setToolTip( @@ -1205,7 +1205,7 @@ class PunchUI: self.circular_ring_entry = FCDoubleSpinner(callback=self.confirmation_message) self.circular_ring_entry.set_precision(self.decimals) - self.circular_ring_entry.set_range(0.0000, 9999.9999) + self.circular_ring_entry.set_range(0.0000, 10000.0000) self.grid1.addWidget(self.circular_ring_label, 3, 0) self.grid1.addWidget(self.circular_ring_entry, 3, 1) @@ -1218,7 +1218,7 @@ class PunchUI: self.oblong_ring_entry = FCDoubleSpinner(callback=self.confirmation_message) self.oblong_ring_entry.set_precision(self.decimals) - self.oblong_ring_entry.set_range(0.0000, 9999.9999) + self.oblong_ring_entry.set_range(0.0000, 10000.0000) self.grid1.addWidget(self.oblong_ring_label, 4, 0) self.grid1.addWidget(self.oblong_ring_entry, 4, 1) @@ -1231,7 +1231,7 @@ class PunchUI: self.square_ring_entry = FCDoubleSpinner(callback=self.confirmation_message) self.square_ring_entry.set_precision(self.decimals) - self.square_ring_entry.set_range(0.0000, 9999.9999) + self.square_ring_entry.set_range(0.0000, 10000.0000) self.grid1.addWidget(self.square_ring_label, 5, 0) self.grid1.addWidget(self.square_ring_entry, 5, 1) @@ -1244,7 +1244,7 @@ class PunchUI: self.rectangular_ring_entry = FCDoubleSpinner(callback=self.confirmation_message) self.rectangular_ring_entry.set_precision(self.decimals) - self.rectangular_ring_entry.set_range(0.0000, 9999.9999) + self.rectangular_ring_entry.set_range(0.0000, 10000.0000) self.grid1.addWidget(self.rectangular_ring_label, 6, 0) self.grid1.addWidget(self.rectangular_ring_entry, 6, 1) @@ -1257,7 +1257,7 @@ class PunchUI: self.other_ring_entry = FCDoubleSpinner(callback=self.confirmation_message) self.other_ring_entry.set_precision(self.decimals) - self.other_ring_entry.set_range(0.0000, 9999.9999) + self.other_ring_entry.set_range(0.0000, 10000.0000) self.grid1.addWidget(self.other_ring_label, 7, 0) self.grid1.addWidget(self.other_ring_entry, 7, 1) diff --git a/appTools/ToolSolderPaste.py b/appTools/ToolSolderPaste.py index 68e473ca..3b34fe8f 100644 --- a/appTools/ToolSolderPaste.py +++ b/appTools/ToolSolderPaste.py @@ -1189,7 +1189,7 @@ class SolderUI: _("Diameter for the new Nozzle tool to add in the Tool Table") ) self.addtool_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.addtool_entry.set_range(0.0000001, 9999.9999) + self.addtool_entry.set_range(0.0000001, 10000.0000) self.addtool_entry.set_precision(self.decimals) self.addtool_entry.setSingleStep(0.1) @@ -1249,7 +1249,7 @@ class SolderUI: # Z dispense start self.z_start_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.z_start_entry.set_range(0.0000001, 9999.9999) + self.z_start_entry.set_range(0.0000001, 10000.0000) self.z_start_entry.set_precision(self.decimals) self.z_start_entry.setSingleStep(0.1) @@ -1261,7 +1261,7 @@ class SolderUI: # Z dispense self.z_dispense_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.z_dispense_entry.set_range(0.0000001, 9999.9999) + self.z_dispense_entry.set_range(0.0000001, 10000.0000) self.z_dispense_entry.set_precision(self.decimals) self.z_dispense_entry.setSingleStep(0.1) @@ -1273,7 +1273,7 @@ class SolderUI: # Z dispense stop self.z_stop_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.z_stop_entry.set_range(0.0000001, 9999.9999) + self.z_stop_entry.set_range(0.0000001, 10000.0000) self.z_stop_entry.set_precision(self.decimals) self.z_stop_entry.setSingleStep(0.1) @@ -1285,7 +1285,7 @@ class SolderUI: # Z travel self.z_travel_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.z_travel_entry.set_range(0.0000001, 9999.9999) + self.z_travel_entry.set_range(0.0000001, 10000.0000) self.z_travel_entry.set_precision(self.decimals) self.z_travel_entry.setSingleStep(0.1) @@ -1298,7 +1298,7 @@ class SolderUI: # Z toolchange location self.z_toolchange_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.z_toolchange_entry.set_range(0.0000001, 9999.9999) + self.z_toolchange_entry.set_range(0.0000001, 10000.0000) self.z_toolchange_entry.set_precision(self.decimals) self.z_toolchange_entry.setSingleStep(0.1) @@ -1319,7 +1319,7 @@ class SolderUI: # Feedrate X-Y self.frxy_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.frxy_entry.set_range(0.0000, 99999.9999) + self.frxy_entry.set_range(0.0000, 910000.0000) self.frxy_entry.set_precision(self.decimals) self.frxy_entry.setSingleStep(0.1) @@ -1331,7 +1331,7 @@ class SolderUI: # Feedrate Z self.frz_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.frz_entry.set_range(0.0000, 99999.9999) + self.frz_entry.set_range(0.0000, 910000.0000) self.frz_entry.set_precision(self.decimals) self.frz_entry.setSingleStep(0.1) @@ -1344,7 +1344,7 @@ class SolderUI: # Feedrate Z Dispense self.frz_dispense_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.frz_dispense_entry.set_range(0.0000, 99999.9999) + self.frz_dispense_entry.set_range(0.0000, 910000.0000) self.frz_dispense_entry.set_precision(self.decimals) self.frz_dispense_entry.setSingleStep(0.1) @@ -1369,7 +1369,7 @@ class SolderUI: # Dwell Forward self.dwellfwd_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.dwellfwd_entry.set_range(0.0000001, 9999.9999) + self.dwellfwd_entry.set_range(0.0000001, 10000.0000) self.dwellfwd_entry.set_precision(self.decimals) self.dwellfwd_entry.setSingleStep(0.1) @@ -1393,7 +1393,7 @@ class SolderUI: # Dwell Reverse self.dwellrev_entry = FCDoubleSpinner(callback=self.confirmation_message) - self.dwellrev_entry.set_range(0.0000001, 9999.9999) + self.dwellrev_entry.set_range(0.0000001, 10000.0000) self.dwellrev_entry.set_precision(self.decimals) self.dwellrev_entry.setSingleStep(0.1) diff --git a/appTools/ToolTransform.py b/appTools/ToolTransform.py index 7dee5fa4..6d4828d6 100644 --- a/appTools/ToolTransform.py +++ b/appTools/ToolTransform.py @@ -873,7 +873,7 @@ class TransformUI: self.buffer_entry.set_precision(self.decimals) self.buffer_entry.setSingleStep(0.1) self.buffer_entry.setWrapping(True) - self.buffer_entry.set_range(-9999.9999, 9999.9999) + self.buffer_entry.set_range(-10000.0000, 10000.0000) self.buffer_button = FCButton(_("Buffer D")) self.buffer_button.setToolTip( diff --git a/defaults.py b/defaults.py index c4459224..5af137c5 100644 --- a/defaults.py +++ b/defaults.py @@ -564,6 +564,7 @@ class FlatCAMDefaults: "tools_calc_vshape_cut_z": 0.05, "tools_calc_electro_length": 10.0, "tools_calc_electro_width": 10.0, + "tools_calc_electro_area": 100.0, "tools_calc_electro_cdensity": 13.0, "tools_calc_electro_growth": 10.0, @@ -664,6 +665,7 @@ class FlatCAMDefaults: # Copper Thieving Tool "tools_copper_thieving_clearance": 0.25, "tools_copper_thieving_margin": 1.0, + "tools_copper_thieving_area": 0.1, "tools_copper_thieving_reference": 'itself', "tools_copper_thieving_box_type": 'rect', "tools_copper_thieving_circle_steps": 64, @@ -677,6 +679,7 @@ class FlatCAMDefaults: "tools_copper_thieving_rb_margin": 1.0, "tools_copper_thieving_rb_thickness": 1.0, "tools_copper_thieving_mask_clearance": 0.0, + "tools_copper_thieving_geo_choice": 'b', # Fiducials Tool "tools_fiducials_dia": 1.0, diff --git a/locale/de/LC_MESSAGES/strings.mo b/locale/de/LC_MESSAGES/strings.mo index d8212d7a01f08c1ca71b7a9dbec78193dbca69d8..3b103789a58b5f02b7783c69aaa37f02f979bbe6 100644 GIT binary patch delta 65724 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 diff --git a/locale/de/LC_MESSAGES/strings.po b/locale/de/LC_MESSAGES/strings.po index ff46c8e1..ce5003a8 100644 --- a/locale/de/LC_MESSAGES/strings.po +++ b/locale/de/LC_MESSAGES/strings.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-11-02 13:42+0200\n" -"PO-Revision-Date: 2020-11-02 13:42+0200\n" +"POT-Creation-Date: 2020-11-02 17:52+0200\n" +"PO-Revision-Date: 2020-11-02 17:52+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: de\n" @@ -164,7 +164,7 @@ msgstr "" "Der Benutzer hat einen ordnungsgemäßen Abschluss der aktuellen Aufgabe " "angefordert." -#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:344 +#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:347 #: appTools/ToolIsolation.py:1443 appTools/ToolNCC.py:1380 msgid "Click the start point of the area." msgstr "Klicken Sie auf den Startpunkt des Bereichs." @@ -174,7 +174,7 @@ msgid "Click the end point of the area." msgstr "Klicken Sie auf den Endpunkt des Bereichs." #: appCommon/Common.py:358 appCommon/Common.py:460 -#: appTools/ToolCopperThieving.py:388 appTools/ToolIsolation.py:2354 +#: appTools/ToolCopperThieving.py:391 appTools/ToolIsolation.py:2354 #: appTools/ToolIsolation.py:2406 appTools/ToolNCC.py:1445 #: appTools/ToolNCC.py:1497 appTools/ToolPaint.py:1225 #: appTools/ToolPaint.py:1276 @@ -507,7 +507,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2121 +#: appTools/ToolCalculators.py:280 appTools/ToolCutOut.py:2121 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Schnitttiefe Z" @@ -806,7 +806,7 @@ msgstr "" #: appGUI/ObjectUI.py:1681 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:307 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 @@ -814,8 +814,8 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1241 appTools/ToolCopperThieving.py:1493 -#: appTools/ToolCorners.py:584 appTools/ToolCutOut.py:2174 +#: appTools/ToolCopperThieving.py:1284 appTools/ToolCopperThieving.py:1560 +#: appTools/ToolCorners.py:587 appTools/ToolCutOut.py:2174 #: appTools/ToolFiducials.py:815 appTools/ToolInvertGerber.py:231 #: appTools/ToolInvertGerber.py:239 appTools/ToolNCC.py:4159 #: appTools/ToolNCC.py:4262 @@ -829,7 +829,7 @@ msgstr "Marge" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCorners.py:586 +#: appTools/ToolCopperThieving.py:1286 appTools/ToolCorners.py:589 #: appTools/ToolFiducials.py:817 appTools/ToolNCC.py:4161 #: appTools/ToolNCC.py:4264 msgid "Bounding box margin." @@ -1325,7 +1325,7 @@ msgstr "" #: appDatabase.py:1223 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2237 +#: appTools/ToolCalculators.py:289 appTools/ToolCutOut.py:2237 msgid "Tool Diameter" msgstr "Werkzeugdurchm" @@ -1335,12 +1335,12 @@ msgid "The drill hole diameter when doing mouse bites." msgstr "" #: appDatabase.py:1236 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:164 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:193 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:222 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1364 appTools/ToolCopperThieving.py:1404 -#: appTools/ToolCopperThieving.py:1444 appTools/ToolCutOut.py:2249 +#: appTools/ToolCopperThieving.py:1431 appTools/ToolCopperThieving.py:1471 +#: appTools/ToolCopperThieving.py:1511 appTools/ToolCutOut.py:2249 msgid "Spacing" msgstr "Abstand" @@ -1453,7 +1453,7 @@ msgstr "" "in der Werkzeugdatenbank." #: appDatabase.py:1367 appGUI/MainGUI.py:1553 -#: appGUI/preferences/PreferencesUIManager.py:946 app_Main.py:2500 +#: appGUI/preferences/PreferencesUIManager.py:949 app_Main.py:2500 #: app_Main.py:3527 app_Main.py:4471 app_Main.py:4724 app_Main.py:8998 msgid "Cancel" msgstr "Abbrechen" @@ -1463,10 +1463,10 @@ msgstr "Abbrechen" #: appEditors/appGCodeEditor.py:781 appGUI/ObjectUI.py:163 #: appGUI/ObjectUI.py:174 appTool.py:280 appTool.py:291 #: appTools/ToolAlignObjects.py:517 appTools/ToolAlignObjects.py:528 -#: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 +#: appTools/ToolCalculators.py:519 appTools/ToolCalculators.py:530 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1635 appTools/ToolCopperThieving.py:1646 -#: appTools/ToolCorners.py:672 appTools/ToolCorners.py:683 +#: appTools/ToolCopperThieving.py:1716 appTools/ToolCopperThieving.py:1727 +#: appTools/ToolCorners.py:675 appTools/ToolCorners.py:686 #: appTools/ToolCutOut.py:2454 appTools/ToolCutOut.py:2465 #: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:975 #: appTools/ToolDistance.py:660 appTools/ToolDistance.py:671 @@ -1499,10 +1499,10 @@ msgstr "Der bearbeitete Wert liegt außerhalb des Bereichs" #: appEditors/appGCodeEditor.py:783 appGUI/ObjectUI.py:169 #: appGUI/ObjectUI.py:176 appTool.py:286 appTool.py:293 #: appTools/ToolAlignObjects.py:523 appTools/ToolAlignObjects.py:530 -#: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 +#: appTools/ToolCalculators.py:525 appTools/ToolCalculators.py:532 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1641 appTools/ToolCopperThieving.py:1648 -#: appTools/ToolCorners.py:678 appTools/ToolCorners.py:685 +#: appTools/ToolCopperThieving.py:1722 appTools/ToolCopperThieving.py:1729 +#: appTools/ToolCorners.py:681 appTools/ToolCorners.py:688 #: appTools/ToolCutOut.py:2460 appTools/ToolCutOut.py:2467 #: appTools/ToolDblSided.py:970 appTools/ToolDblSided.py:977 #: appTools/ToolDistance.py:666 appTools/ToolDistance.py:673 @@ -2130,7 +2130,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4012 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:83 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:571 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:574 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Länge" @@ -2298,10 +2298,10 @@ msgstr "Schrift" #: appEditors/AppGeoEditor.py:316 appEditors/AppGerberEditor.py:2491 #: appEditors/AppGerberEditor.py:3947 appGUI/ObjectUI.py:316 #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1391 appTools/ToolCopperThieving.py:1431 +#: appTools/ToolCopperThieving.py:1458 appTools/ToolCopperThieving.py:1498 #: appTools/ToolFiducials.py:799 appTools/ToolPunchGerber.py:1088 msgid "Size" msgstr "Größe" @@ -2456,7 +2456,7 @@ msgstr "Ursprung" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:256 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appTools/ToolIsolation.py:3381 appTools/ToolNCC.py:4323 -#: appTools/ToolPaint.py:3104 appTools/ToolTransform.py:557 defaults.py:571 +#: appTools/ToolPaint.py:3104 appTools/ToolTransform.py:557 defaults.py:572 msgid "Selection" msgstr "Auswahl" @@ -2491,10 +2491,12 @@ msgstr "Ein Bezugspunkt im Format X, Y." #: appEditors/AppGeoEditor.py:671 appEditors/AppGerberEditor.py:2586 #: appEditors/AppGerberEditor.py:5352 appGUI/ObjectUI.py:2375 -#: appTools/ToolDblSided.py:709 appTools/ToolDblSided.py:897 -#: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 -#: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1204 -#: appTools/ToolTransform.py:572 app_Main.py:6294 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:288 +#: appTools/ToolCopperThieving.py:1666 appTools/ToolDblSided.py:709 +#: appTools/ToolDblSided.py:897 appTools/ToolNCC.py:63 +#: appTools/ToolPaint.py:137 appTools/ToolSolderPaste.py:160 +#: appTools/ToolSolderPaste.py:1204 appTools/ToolTransform.py:572 +#: app_Main.py:6294 msgid "Add" msgstr "Hinzufügen" @@ -3193,7 +3195,7 @@ msgstr "Geo-Editor" #: appEditors/AppGerberEditor.py:3947 appEditors/appGCodeEditor.py:687 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2034 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: appTools/ToolCorners.py:543 appTools/ToolCutOut.py:2030 +#: appTools/ToolCorners.py:546 appTools/ToolCutOut.py:2030 #: appTools/ToolDblSided.py:522 appTools/ToolPunchGerber.py:1088 #: appTools/ToolTransform.py:579 msgid "Type" @@ -3664,7 +3666,7 @@ msgstr "Flächenobergrenze" #: appEditors/AppGerberEditor.py:2710 msgid "" "The threshold value, all areas less than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" "Der Schwellenwert, alle Bereiche, die darunter liegen, sind markiert.\n" "Kann einen Wert zwischen 0,0000 und 9999,9999 haben" @@ -3676,7 +3678,7 @@ msgstr "Bereichsuntergrenze" #: appEditors/AppGerberEditor.py:2719 msgid "" "The threshold value, all areas more than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" "Mit dem Schwellwert sind alle Bereiche gekennzeichnet, die darüber " "hinausgehen.\n" @@ -3844,9 +3846,9 @@ msgstr "" "Keine Blende zum Puffern Wählen Sie mindestens eine Blende und versuchen Sie " "es erneut." -#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:303 -#: appTools/ToolCopperThieving.py:898 appTools/ToolCopperThieving.py:1061 -#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:410 +#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:306 +#: appTools/ToolCopperThieving.py:907 appTools/ToolCopperThieving.py:1104 +#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:413 #: appTools/ToolCutOut.py:779 appTools/ToolCutOut.py:905 #: appTools/ToolCutOut.py:1128 appTools/ToolCutOut.py:1278 #: appTools/ToolFiducials.py:240 appTools/ToolFiducials.py:492 @@ -4043,8 +4045,8 @@ msgstr "" #: appEditors/appGCodeEditor.py:687 appEditors/appGCodeEditor.py:698 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2034 appGUI/ObjectUI.py:2044 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1351 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: appTools/ToolCopperThieving.py:1418 msgid "Dia" msgstr "Durchm" @@ -4381,8 +4383,8 @@ msgstr "Neu" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appObjects/ObjectCollection.py:234 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2027 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2027 #: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:771 #: appTools/ToolFilm.py:933 appTools/ToolFilm.py:956 appTools/ToolImage.py:135 #: appTools/ToolImage.py:190 appTools/ToolIsolation.py:3351 @@ -4410,8 +4412,8 @@ msgstr "Erzeugt ein neues, leeres Geometrieobjekt." #: appTools/ToolAlignObjects.py:434 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:891 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2026 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2026 #: appTools/ToolDblSided.py:528 appTools/ToolDblSided.py:769 #: appTools/ToolFilm.py:932 appTools/ToolFilm.py:955 appTools/ToolImage.py:116 #: appTools/ToolImage.py:137 appTools/ToolImage.py:190 @@ -4419,7 +4421,7 @@ msgstr "Erzeugt ein neues, leeres Geometrieobjekt." #: appTools/ToolNCC.py:3873 appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 #: appTools/ToolPanelize.py:148 appTools/ToolPanelize.py:168 #: appTools/ToolPanelize.py:716 appTools/ToolPanelize.py:810 -#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 defaults.py:572 +#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 defaults.py:573 msgid "Gerber" msgstr "Gerber" @@ -4439,8 +4441,8 @@ msgstr "Erzeugt ein neues, leeres Gerber-Objekt." #: appTools/ToolAlignObjects.py:435 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:892 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolDblSided.py:530 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolDblSided.py:530 #: appTools/ToolDblSided.py:728 appTools/ToolDblSided.py:770 #: appTools/ToolFilm.py:1211 appTools/ToolIsolation.py:3404 #: appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 @@ -4646,7 +4648,7 @@ msgstr "Einstellungen aus Datei importieren" msgid "Export Preferences to file" msgstr "Einstellungen in Datei exportieren" -#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1188 +#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1191 msgid "Save Preferences" msgstr "Einstellungen speichern" @@ -4804,10 +4806,10 @@ msgid "Q" msgstr "Q" #: appGUI/MainGUI.py:454 appGUI/MainGUI.py:1263 -#: appGUI/preferences/PreferencesUIManager.py:913 -#: appGUI/preferences/PreferencesUIManager.py:1006 -#: appGUI/preferences/PreferencesUIManager.py:1034 -#: appGUI/preferences/PreferencesUIManager.py:1139 app_Main.py:5739 +#: appGUI/preferences/PreferencesUIManager.py:916 +#: appGUI/preferences/PreferencesUIManager.py:1009 +#: appGUI/preferences/PreferencesUIManager.py:1037 +#: appGUI/preferences/PreferencesUIManager.py:1142 app_Main.py:5739 #: app_Main.py:5744 app_Main.py:5759 msgid "Preferences" msgstr "Einstellungen" @@ -5501,7 +5503,7 @@ msgstr "QRCode Werkzeug" # Really don't know #: appGUI/MainGUI.py:1079 appGUI/MainGUI.py:2248 appGUI/MainGUI.py:4475 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1168 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1211 msgid "Copper Thieving Tool" msgstr "Copper Thieving Werkzeug" @@ -5526,7 +5528,7 @@ msgid "Invert Gerber Tool" msgstr "Invertieren Sie das Gerber-Werkzeug" #: appGUI/MainGUI.py:1090 appGUI/MainGUI.py:2259 appGUI/MainGUI.py:4478 -#: appTools/ToolCorners.py:452 +#: appTools/ToolCorners.py:455 msgid "Corner Markers Tool" msgstr "Eckmarkierungswerkzeug" @@ -5676,8 +5678,8 @@ msgstr "Projekt" msgid "Plot Area" msgstr "Grundstücksfläche" -#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1200 -#: appTools/ToolCorners.py:472 appTools/ToolEtchCompensation.py:291 +#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1243 +#: appTools/ToolCorners.py:475 appTools/ToolEtchCompensation.py:291 #: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:902 #: appTools/ToolInvertGerber.py:212 appTools/ToolIsolation.py:2999 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:1010 @@ -5842,14 +5844,14 @@ msgstr "FlatCAM-Einstellungsordner geöffnet." msgid "Are you sure you want to delete the GUI Settings? \n" msgstr "Möchten Sie die GUI-Einstellungen wirklich löschen?\n" -#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:945 -#: appGUI/preferences/PreferencesUIManager.py:1192 appTranslation.py:111 +#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:948 +#: appGUI/preferences/PreferencesUIManager.py:1195 appTranslation.py:111 #: appTranslation.py:213 app_Main.py:2498 app_Main.py:3525 app_Main.py:5980 #: app_Main.py:8996 msgid "Yes" msgstr "Ja" -#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1193 +#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1196 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:49 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 @@ -6564,8 +6566,8 @@ msgstr "Diagrammoptionen" #: appGUI/ObjectUI.py:202 appGUI/ObjectUI.py:552 #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1321 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:132 +#: appTools/ToolCopperThieving.py:1388 msgid "Solid" msgstr "Solide" @@ -8327,41 +8329,41 @@ msgstr "" "Aufgrund eines Unterschieds zwischen der Anzahl der Textelemente und der " "Anzahl der Textpositionen konnten keine Anmerkungen erstellt werden." -#: appGUI/preferences/PreferencesUIManager.py:920 +#: appGUI/preferences/PreferencesUIManager.py:923 msgid "Preferences applied." msgstr "Einstellungen werden angewendet." -#: appGUI/preferences/PreferencesUIManager.py:940 +#: appGUI/preferences/PreferencesUIManager.py:943 msgid "Are you sure you want to continue?" msgstr "Sind Sie sicher, dass Sie fortfahren wollen?" -#: appGUI/preferences/PreferencesUIManager.py:941 +#: appGUI/preferences/PreferencesUIManager.py:944 msgid "Application will restart" msgstr "Die Anwendung wird neu gestartet" -#: appGUI/preferences/PreferencesUIManager.py:1039 +#: appGUI/preferences/PreferencesUIManager.py:1042 msgid "Preferences closed without saving." msgstr "Einstellungen geschlossen ohne zu speichern." -#: appGUI/preferences/PreferencesUIManager.py:1051 +#: appGUI/preferences/PreferencesUIManager.py:1054 msgid "Preferences default values are restored." msgstr "Die Standardeinstellungen werden wiederhergestellt." -#: appGUI/preferences/PreferencesUIManager.py:1082 app_Main.py:2833 +#: appGUI/preferences/PreferencesUIManager.py:1085 app_Main.py:2833 #: app_Main.py:9670 msgid "Failed to write defaults to file." msgstr "Fehler beim Schreiben der Voreinstellungen in die Datei." -#: appGUI/preferences/PreferencesUIManager.py:1086 -#: appGUI/preferences/PreferencesUIManager.py:1201 +#: appGUI/preferences/PreferencesUIManager.py:1089 +#: appGUI/preferences/PreferencesUIManager.py:1204 msgid "Preferences saved." msgstr "Einstellungen gespeichert." -#: appGUI/preferences/PreferencesUIManager.py:1136 +#: appGUI/preferences/PreferencesUIManager.py:1139 msgid "Preferences edited but not saved." msgstr "Einstellungen bearbeitet, aber nicht gespeichert." -#: appGUI/preferences/PreferencesUIManager.py:1186 +#: appGUI/preferences/PreferencesUIManager.py:1189 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -8399,8 +8401,8 @@ msgstr "Erw. CNC-Joboptionen" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1219 -#: appTools/ToolCorners.py:536 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1262 +#: appTools/ToolCorners.py:539 appTools/ToolEtchCompensation.py:356 #: appTools/ToolFiducials.py:792 appTools/ToolInvertGerber.py:225 #: appTools/ToolQRCode.py:702 msgid "Parameters" @@ -8811,7 +8813,7 @@ msgstr "Die in der Excellon-Datei verwendeten Einheiten." #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:187 appTools/ToolPcbWizard.py:453 +#: appTools/ToolCalculators.py:227 appTools/ToolPcbWizard.py:453 msgid "INCH" msgstr "ZOLL" @@ -8820,7 +8822,7 @@ msgstr "ZOLL" #: appGUI/preferences/general/GeneralAppPrefGroupUI.py:43 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 -#: appTools/ToolCalculators.py:188 appTools/ToolPcbWizard.py:454 +#: appTools/ToolCalculators.py:228 appTools/ToolPcbWizard.py:454 msgid "MM" msgstr "MM" @@ -9252,8 +9254,10 @@ msgstr "" "verfügbar ist" #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:293 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: appTools/ToolFilm.py:1109 appTools/ToolMilling.py:1771 +#: appTools/ToolCopperThieving.py:1671 appTools/ToolFilm.py:1109 +#: appTools/ToolMilling.py:1771 msgid "Both" msgstr "Both" @@ -10478,8 +10482,8 @@ msgid "\"Follow\"" msgstr "\"Folgen\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:568 -#: appTools/ToolCopperThieving.py:774 appTools/ToolCopperThieving.py:787 +#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:778 appTools/ToolCopperThieving.py:791 #: appTools/ToolIsolation.py:1360 appTools/ToolNCC.py:1807 #: appTools/ToolNCC.py:1834 appTools/ToolNCC.py:1942 appTools/ToolNCC.py:1955 #: appTools/ToolNCC.py:2857 appTools/ToolNCC.py:2962 appTools/ToolNCC.py:2977 @@ -10503,15 +10507,17 @@ msgstr "" "<< WARNUNG >>: Ändern Sie dies nur, wenn Sie wissen, was Sie tun !!!" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:71 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:296 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:844 appTools/ToolFilm.py:1106 -#: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 -#: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 -#: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 +#: appTools/ToolCopperThieving.py:1674 appTools/ToolFiducials.py:844 +#: appTools/ToolFilm.py:1106 appTools/ToolProperties.py:449 +#: appTools/ToolProperties.py:452 appTools/ToolProperties.py:455 +#: appTools/ToolProperties.py:483 appTools/ToolProperties.py:490 +#: appTools/ToolProperties.py:493 msgid "None" msgstr "Keiner" @@ -10798,8 +10804,8 @@ msgid "Number of steps (lines) used to interpolate circles." msgstr "Anzahl der Schritte (Linien) um Kreise zu interpolieren." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolCopperThieving.py:1563 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:274 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolCopperThieving.py:1630 msgid "Clearance" msgstr "Freistellung" @@ -10815,37 +10821,49 @@ msgstr "" "Polygon\n" "in mehrere aufgeteilt." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:85 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: appTools/ToolCalculators.py:342 appTools/ToolCalculators.py:385 +#: appTools/ToolCopperThieving.py:1298 +msgid "Area" +msgstr "Bereich" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appTools/ToolCopperThieving.py:1300 +msgid "Thieving areas with area less then this value will not be added." +msgstr "" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:99 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1255 appTools/ToolNCC.py:4319 +#: appTools/ToolCopperThieving.py:1321 appTools/ToolNCC.py:4319 msgid "Itself" msgstr "Selbst" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:100 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1256 appTools/ToolIsolation.py:3391 +#: appTools/ToolCopperThieving.py:1322 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:4319 appTools/ToolPaint.py:3116 msgid "Area Selection" msgstr "Bereichsauswahl" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1257 appTools/ToolDblSided.py:761 +#: appTools/ToolCopperThieving.py:1323 appTools/ToolDblSided.py:761 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:4319 #: appTools/ToolPaint.py:3116 tclCommands/TclCommandPaint.py:166 msgid "Reference Object" msgstr "Ref. Objekt" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1259 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:103 +#: appTools/ToolCopperThieving.py:1325 msgid "Reference:" msgstr "Referenz:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:105 msgid "" "- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -10859,30 +10877,30 @@ msgstr "" "- 'Referenzobjekt' - 'Copper Thieving' innerhalb des von einem anderen " "Objekt angegebenen Bereichs." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:114 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1301 appTools/ToolExtractDrills.py:495 +#: appTools/ToolCopperThieving.py:1372 appTools/ToolExtractDrills.py:495 #: appTools/ToolExtractDrills.py:628 appTools/ToolPunchGerber.py:1068 #: appTools/ToolPunchGerber.py:1240 msgid "Rectangular" msgstr "Rechteckig" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1302 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:115 +#: appTools/ToolCopperThieving.py:1373 msgid "Minimal" msgstr "Minimal" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1304 appTools/ToolFilm.py:958 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:117 +#: appTools/ToolCopperThieving.py:1366 appTools/ToolFilm.py:958 msgid "Box Type:" msgstr "Box-Typ:" # Double -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1306 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: appTools/ToolCopperThieving.py:1368 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10890,29 +10908,29 @@ msgstr "" "- 'Rechteckig' - Der Begrenzungsrahmen hat eine rechteckige Form.\n" "- 'Minimal' - Der Begrenzungsrahmen ist die konvexe Rumpfform." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1322 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:133 +#: appTools/ToolCopperThieving.py:1389 msgid "Dots Grid" msgstr "Punktmuster" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1323 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: appTools/ToolCopperThieving.py:1390 msgid "Squares Grid" msgstr "Quadratraster" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1324 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:135 +#: appTools/ToolCopperThieving.py:1391 msgid "Lines Grid" msgstr "Linienraster" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1326 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137 +#: appTools/ToolCopperThieving.py:1393 msgid "Fill Type:" msgstr "Füllart:" # Double -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1328 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:139 +#: appTools/ToolCopperThieving.py:1395 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10925,59 +10943,59 @@ msgstr "" "gefüllt.\n" "- 'Linienraster' - Der leere Bereich wird mit einem Linienmuster gefüllt." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1347 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:147 +#: appTools/ToolCopperThieving.py:1414 msgid "Dots Grid Parameters" msgstr "Punktmuster Parameter" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1353 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: appTools/ToolCopperThieving.py:1420 msgid "Dot diameter in Dots Grid." msgstr "Punktdurchmesser im Punktmuster." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1366 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:166 +#: appTools/ToolCopperThieving.py:1433 msgid "Distance between each two dots in Dots Grid." msgstr "Abstand zwischen zwei Punkten im Punktmuster." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1387 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:176 +#: appTools/ToolCopperThieving.py:1454 msgid "Squares Grid Parameters" msgstr "Quadratraster Parameter" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1393 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: appTools/ToolCopperThieving.py:1460 msgid "Square side size in Squares Grid." msgstr "Quadratlängen im Quadratraster." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1406 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:195 +#: appTools/ToolCopperThieving.py:1473 msgid "Distance between each two squares in Squares Grid." msgstr "Abstand zwischen zwei Quadraten im Quadratraster." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1427 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:205 +#: appTools/ToolCopperThieving.py:1494 msgid "Lines Grid Parameters" msgstr "Schraffurparameter" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1433 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: appTools/ToolCopperThieving.py:1500 msgid "Line thickness size in Lines Grid." msgstr "Liniendicke." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1446 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:224 +#: appTools/ToolCopperThieving.py:1513 msgid "Distance between each two lines in Lines Grid." msgstr "Linienabstand." # What is a Robber Bar? -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1485 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:234 +#: appTools/ToolCopperThieving.py:1552 msgid "Robber Bar Parameters" msgstr "Robber Bar-Parameter" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1487 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:236 +#: appTools/ToolCopperThieving.py:1554 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10985,36 +11003,36 @@ msgstr "" "Parameter für die Robber Bar\n" "Eine Robber Bar ist ein Kupferrand bei Lochmustern." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1495 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: appTools/ToolCopperThieving.py:1562 msgid "Bounding box margin for robber bar." msgstr "Begrenzungsrahmenrand der Robber Bar." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:255 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appTools/ToolCopperThieving.py:1506 appTools/ToolCorners.py:557 +#: appTools/ToolCopperThieving.py:1573 appTools/ToolCorners.py:560 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Dicke" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1508 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:257 +#: appTools/ToolCopperThieving.py:1575 msgid "The robber bar thickness." msgstr "Dicke der Robber Bar." # What is pattern plating? -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1540 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:267 +#: appTools/ToolCopperThieving.py:1607 msgid "Pattern Plating Mask" msgstr "Musterbeschichtungsmaske" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1542 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:269 +#: appTools/ToolCopperThieving.py:1609 msgid "Generate a mask for pattern plating." msgstr "Erzeugen Sie eine Maske für die Musterbeschichtung." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1565 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:276 +#: appTools/ToolCopperThieving.py:1632 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -11022,6 +11040,25 @@ msgstr "" "Der Abstand zwischen den Copper Thieving Elementen \n" "und/oder der Robber Bar und den tatsächlichen Öffnungen in der Maske." +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:290 +#: appTools/ToolCopperThieving.py:1668 +msgid "Choose which additional geometry to include, if available." +msgstr "" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:294 +#: appTools/ToolCopperThieving.py:499 appTools/ToolCopperThieving.py:503 +#: appTools/ToolCopperThieving.py:565 appTools/ToolCopperThieving.py:1672 +msgid "Thieving" +msgstr "Diebstahl" + +# Double +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:295 +#: appTools/ToolCopperThieving.py:1673 +#, fuzzy +#| msgid "Insert Robber Bar" +msgid "Robber bar" +msgstr "'Robber Bar' einsetzen" + #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 msgid "Calibration Tool Options" msgstr "Kalibirierungs-Tool-Optionen" @@ -11031,7 +11068,7 @@ msgstr "Kalibirierungs-Tool-Optionen" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1221 appTools/ToolCorners.py:538 +#: appTools/ToolCopperThieving.py:1264 appTools/ToolCorners.py:541 #: appTools/ToolFiducials.py:794 msgid "Parameters used for this tool." msgstr "Parameter für dieses Werkzeug." @@ -11375,7 +11412,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:49 -#: appTools/ToolCorners.py:550 appTools/ToolFiducials.py:864 +#: appTools/ToolCorners.py:553 appTools/ToolFiducials.py:864 msgid "Cross" msgstr "Kreuzförmig" @@ -11949,7 +11986,7 @@ msgid "Calculators Tool Options" msgstr "Rechner-Tool-Optionen" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: appTools/ToolCalculators.py:152 +#: appTools/ToolCalculators.py:191 msgid "V-Shape Tool Calculator" msgstr "V-Shape-Werkzeugrechner" @@ -11965,12 +12002,12 @@ msgstr "" "Schnitttiefe als Parameter." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: appTools/ToolCalculators.py:220 +#: appTools/ToolCalculators.py:260 msgid "Tip Diameter" msgstr "Spitzendurchmesser" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: appTools/ToolCalculators.py:228 +#: appTools/ToolCalculators.py:268 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11979,7 +12016,7 @@ msgstr "" "Es wird vom Hersteller angegeben." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: appTools/ToolCalculators.py:231 +#: appTools/ToolCalculators.py:271 msgid "Tip Angle" msgstr "Spitzenwinkel" @@ -12000,12 +12037,12 @@ msgstr "" "Im CNCJob-Objekt ist dies der Parameter CutZ." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:154 +#: appTools/ToolCalculators.py:193 msgid "ElectroPlating Calculator" msgstr "Galvanikrechner" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: appTools/ToolCalculators.py:284 +#: appTools/ToolCalculators.py:324 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium " @@ -12017,32 +12054,39 @@ msgstr "" "Tinte oder Palladiumchlorid." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: appTools/ToolCalculators.py:293 +#: appTools/ToolCalculators.py:349 msgid "Board Length" msgstr "PCB Länge" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: appTools/ToolCalculators.py:299 +#: appTools/ToolCalculators.py:350 msgid "This is the board length. In centimeters." msgstr "Dies ist die Boardlänge. In Zentimeter." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: appTools/ToolCalculators.py:301 +#: appTools/ToolCalculators.py:367 msgid "Board Width" msgstr "PCB Breite" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: appTools/ToolCalculators.py:307 +#: appTools/ToolCalculators.py:368 msgid "This is the board width.In centimeters." msgstr "Dies ist die Breite der Platte in Zentimetern." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: appTools/ToolCalculators.py:309 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:120 +#: appTools/ToolCalculators.py:386 +#, fuzzy +#| msgid "This is the Area ID." +msgid "This is the board area." +msgstr "Dies ist die Bereichs-ID." + +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:130 +#: appTools/ToolCalculators.py:408 msgid "Current Density" msgstr "Stromdichte" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: appTools/ToolCalculators.py:316 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:136 +#: appTools/ToolCalculators.py:409 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -12050,13 +12094,13 @@ msgstr "" "Stromdichte durch die Platine.\n" "In Ampere pro Quadratfuß ASF." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: appTools/ToolCalculators.py:319 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:142 +#: appTools/ToolCalculators.py:428 msgid "Copper Growth" msgstr "Kupferwachstum" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: appTools/ToolCalculators.py:326 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:148 +#: appTools/ToolCalculators.py:429 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -12069,36 +12113,36 @@ msgid "Corner Markers Options" msgstr "Optionen für Eckmarkierungen" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:545 +#: appTools/ToolCorners.py:548 msgid "Shape of the marker." msgstr "" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:48 -#: appTools/ToolCorners.py:549 +#: appTools/ToolCorners.py:552 #, fuzzy #| msgid "Cross" msgid "Semi-Cross" msgstr "Kreuzförmig" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:559 +#: appTools/ToolCorners.py:562 msgid "The thickness of the line that makes the corner marker." msgstr "Die Dicke der Linie, die die Eckmarkierung bildet." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:85 -#: appTools/ToolCorners.py:573 +#: appTools/ToolCorners.py:576 msgid "The length of the line that makes the corner marker." msgstr "Die Länge der Linie, die die Eckmarkierung bildet." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:96 -#: appTools/ToolCorners.py:625 appTools/ToolDblSided.py:827 +#: appTools/ToolCorners.py:628 appTools/ToolDblSided.py:827 #, fuzzy #| msgid "Drill dia" msgid "Drill Dia" msgstr "Bohrdurchmesser" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:98 -#: appTools/ToolCorners.py:627 +#: appTools/ToolCorners.py:630 msgid "Drill Diameter" msgstr "Bohrdurchmesser" @@ -12459,18 +12503,18 @@ msgstr "" "Dies kann einer der vier Punkte des Geometrie-Begrenzungsrahmens sein." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:509 appTools/ToolFiducials.py:723 +#: appTools/ToolCorners.py:512 appTools/ToolFiducials.py:723 #: appTools/ToolFilm.py:1069 msgid "Bottom Left" msgstr "Unten links" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:501 appTools/ToolFilm.py:1070 +#: appTools/ToolCorners.py:504 appTools/ToolFilm.py:1070 msgid "Top Left" msgstr "Oben links" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:513 appTools/ToolFilm.py:1071 +#: appTools/ToolCorners.py:516 appTools/ToolFilm.py:1071 msgid "Bottom Right" msgstr "Unten rechts" @@ -12751,8 +12795,8 @@ msgstr "Progressiv" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:452 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1072 -#: appTools/ToolCorners.py:416 appTools/ToolFiducials.py:563 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1115 +#: appTools/ToolCorners.py:419 appTools/ToolFiducials.py:563 #: appTools/ToolMove.py:229 appTools/ToolQRCode.py:466 app_Main.py:4813 msgid "Plotting" msgstr "Plotten" @@ -13840,7 +13884,7 @@ msgstr "CNC-Code generieren" msgid "CNCjob created" msgstr "CNCjob erstellt" -#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:586 +#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:593 #: appTools/ToolFilm.py:639 appTools/ToolFilm.py:883 #: appTools/ToolIsolation.py:930 appTools/ToolNCC.py:868 #: appTools/ToolOptimal.py:145 appTools/ToolPanelize.py:613 @@ -13963,7 +14007,8 @@ msgstr "Skalierung ..." msgid "Skewing..." msgstr "Verziehen..." -#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:152 +#: appObjects/FlatCAMObj.py:487 appTools/ToolCalculators.py:341 +#: appTools/ToolProperties.py:152 msgid "Dimensions" msgstr "Dimensionen" @@ -14336,9 +14381,9 @@ msgstr "" "Wenn diese Punkte verwendet werden, wird eine Translation und Rotation " "angenommen." -#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1617 -#: appTools/ToolCorners.py:654 appTools/ToolCutOut.py:2411 +#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:501 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1698 +#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2411 #: appTools/ToolDblSided.py:946 appTools/ToolDrilling.py:2649 #: appTools/ToolEtchCompensation.py:459 appTools/ToolExtractDrills.py:699 #: appTools/ToolFiducials.py:962 appTools/ToolFilm.py:1387 @@ -14352,9 +14397,9 @@ msgstr "" msgid "Reset Tool" msgstr "Reset Werkzeug" -#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1620 -#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2414 +#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:504 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1701 +#: appTools/ToolCorners.py:660 appTools/ToolCutOut.py:2414 #: appTools/ToolDblSided.py:949 appTools/ToolDrilling.py:2652 #: appTools/ToolEtchCompensation.py:462 appTools/ToolExtractDrills.py:702 #: appTools/ToolFiducials.py:965 appTools/ToolFilm.py:1390 @@ -14368,29 +14413,29 @@ msgstr "Reset Werkzeug" msgid "Will reset the tool parameters." msgstr "Wird die Werkzeugeinstellungen zurücksetzen." -#: appTools/ToolCalculators.py:77 +#: appTools/ToolCalculators.py:79 msgid "Calc. Tool" msgstr "Rechner-Tool" -#: appTools/ToolCalculators.py:151 +#: appTools/ToolCalculators.py:190 msgid "Calculators" msgstr "Rechner" -#: appTools/ToolCalculators.py:153 +#: appTools/ToolCalculators.py:192 msgid "Units Calculator" msgstr "Einheitenrechner" -#: appTools/ToolCalculators.py:196 +#: appTools/ToolCalculators.py:236 msgid "Here you enter the value to be converted from INCH to MM" msgstr "" "Hier geben Sie den Wert ein, der von Zoll in Metrik konvertiert werden soll" -#: appTools/ToolCalculators.py:201 +#: appTools/ToolCalculators.py:241 msgid "Here you enter the value to be converted from MM to INCH" msgstr "" "Hier geben Sie den Wert ein, der von Metrik in Zoll konvertiert werden soll" -#: appTools/ToolCalculators.py:237 +#: appTools/ToolCalculators.py:277 msgid "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." @@ -14398,7 +14443,7 @@ msgstr "" "Dies ist der Winkel der Werkzeugspitze.\n" "Es wird vom Hersteller angegeben." -#: appTools/ToolCalculators.py:246 +#: appTools/ToolCalculators.py:286 msgid "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." @@ -14406,7 +14451,7 @@ msgstr "" "Dies ist die Tiefe, in die das Material geschnitten werden soll.\n" "Im CNCJob befindet sich der Parameter CutZ." -#: appTools/ToolCalculators.py:254 +#: appTools/ToolCalculators.py:294 msgid "" "This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" @@ -14416,11 +14461,11 @@ msgstr "" "FlatCAM-Gerber-Bereich.\n" "Im CNCJob-Bereich heißt es >Werkzeugdurchmesser<." -#: appTools/ToolCalculators.py:265 appTools/ToolCalculators.py:361 +#: appTools/ToolCalculators.py:305 appTools/ToolCalculators.py:490 msgid "Calculate" msgstr "Berechnung" -#: appTools/ToolCalculators.py:268 +#: appTools/ToolCalculators.py:309 msgid "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " @@ -14429,11 +14474,30 @@ msgstr "" "Werkzeugdurchmesser.\n" " je nachdem was gewünscht wird und was bekannt ist. " -#: appTools/ToolCalculators.py:331 +#: appTools/ToolCalculators.py:336 +#, fuzzy +#| msgid "Area Selection" +msgid "Area Calculation" +msgstr "Bereichsauswahl" + +#: appTools/ToolCalculators.py:338 +msgid "Choose how to calculate the board area." +msgstr "" + +#: appTools/ToolCalculators.py:356 appTools/ToolCalculators.py:374 +#: appTools/ToolCalculators.py:392 +msgid "cm" +msgstr "" + +#: appTools/ToolCalculators.py:437 +msgid "um" +msgstr "" + +#: appTools/ToolCalculators.py:448 msgid "Current Value" msgstr "Aktueller Wert" -#: appTools/ToolCalculators.py:338 +#: appTools/ToolCalculators.py:449 msgid "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." @@ -14441,11 +14505,11 @@ msgstr "" "Dies ist der aktuelle Intensitätswert\n" "am Netzteil einstellen. In Ampere." -#: appTools/ToolCalculators.py:342 +#: appTools/ToolCalculators.py:469 msgid "Time" msgstr "Zeit" -#: appTools/ToolCalculators.py:349 +#: appTools/ToolCalculators.py:470 msgid "" "This is the calculated time required for the procedure.\n" "In minutes." @@ -14453,7 +14517,7 @@ msgstr "" "Dies ist die berechnete Zeit, die für das Verfahren benötigt wird.\n" "In Minuten." -#: appTools/ToolCalculators.py:364 +#: appTools/ToolCalculators.py:493 msgid "" "Calculate the current intensity value and the procedure time,\n" "depending on the parameters above" @@ -14761,46 +14825,46 @@ msgstr "" "Anpassen (Skalieren und/oder Verzerren) der Objekte\n" "anhand der zuvor gefundenen Faktoren." -#: appTools/ToolCopperThieving.py:184 appTools/ToolCopperThieving.py:209 +#: appTools/ToolCopperThieving.py:186 appTools/ToolCopperThieving.py:211 msgid "Lines Grid works only for 'itself' reference ..." msgstr "Schraffur geht nur bei \"Selbst\" Referenz ..." -#: appTools/ToolCopperThieving.py:195 +#: appTools/ToolCopperThieving.py:197 msgid "Solid fill selected." msgstr "Vollständige Füllung gewählt." -#: appTools/ToolCopperThieving.py:200 +#: appTools/ToolCopperThieving.py:202 msgid "Dots grid fill selected." msgstr "Punktmusterfüllung gewählt." -#: appTools/ToolCopperThieving.py:205 +#: appTools/ToolCopperThieving.py:207 msgid "Squares grid fill selected." msgstr "Quadratfüllung gewählt." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:324 -#: appTools/ToolCopperThieving.py:936 appTools/ToolCorners.py:127 -#: appTools/ToolCorners.py:353 appTools/ToolDblSided.py:307 +#: appTools/ToolCopperThieving.py:229 appTools/ToolCopperThieving.py:327 +#: appTools/ToolCopperThieving.py:946 appTools/ToolCorners.py:127 +#: appTools/ToolCorners.py:350 appTools/ToolDblSided.py:307 #: appTools/ToolExtractDrills.py:141 appTools/ToolFiducials.py:191 #: appTools/ToolFiducials.py:482 appTools/ToolOptimal.py:138 #: appTools/ToolPunchGerber.py:381 appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Es ist kein Gerber-Objekt geladen ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 +#: appTools/ToolCopperThieving.py:242 appTools/ToolCopperThieving.py:847 msgid "Append geometry" msgstr "Geometrie angehängt" -#: appTools/ToolCopperThieving.py:294 appTools/ToolCopperThieving.py:889 -#: appTools/ToolCopperThieving.py:1048 +#: appTools/ToolCopperThieving.py:297 appTools/ToolCopperThieving.py:898 +#: appTools/ToolCopperThieving.py:1091 msgid "Append source file" msgstr "Fügen Sie die Quelldatei an" # Don`t know what a Copper Thieving Tool would do hence hard to translate -#: appTools/ToolCopperThieving.py:307 appTools/ToolCopperThieving.py:902 +#: appTools/ToolCopperThieving.py:310 appTools/ToolCopperThieving.py:911 msgid "Copper Thieving Tool done." msgstr "'Copper Thieving' Werkzeug fertig." -#: appTools/ToolCopperThieving.py:334 appTools/ToolCopperThieving.py:354 +#: appTools/ToolCopperThieving.py:337 appTools/ToolCopperThieving.py:357 #: appTools/ToolCutOut.py:551 appTools/ToolCutOut.py:927 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 @@ -14816,71 +14880,66 @@ msgstr "'Copper Thieving' Werkzeug fertig." msgid "Could not retrieve object" msgstr "Objekt konnte nicht abgerufen werden" -#: appTools/ToolCopperThieving.py:382 +#: appTools/ToolCopperThieving.py:385 msgid "Click the end point of the filling area." msgstr "Klicken Sie auf den Endpunkt des Ausfüllbereichs." -#: appTools/ToolCopperThieving.py:496 appTools/ToolCopperThieving.py:500 -#: appTools/ToolCopperThieving.py:558 -msgid "Thieving" -msgstr "Diebstahl" - -#: appTools/ToolCopperThieving.py:507 +#: appTools/ToolCopperThieving.py:510 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Copper Thieving Tool gestartet. Parameter lesen." -#: appTools/ToolCopperThieving.py:532 +#: appTools/ToolCopperThieving.py:536 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Copper Thieving-Tool. Vorbereitung von isolierenden Polygonen." -#: appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:582 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Copper Thieving Tool: Areale zur Kupferfüllung vorbereiten." -#: appTools/ToolCopperThieving.py:619 +#: appTools/ToolCopperThieving.py:626 msgid "Geometry not supported for bounding box" msgstr "Geometrie für Umriss nicht unterstützt" -#: appTools/ToolCopperThieving.py:625 appTools/ToolNCC.py:1695 +#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1695 #: appTools/ToolNCC.py:1750 appTools/ToolNCC.py:2744 appTools/ToolPaint.py:2468 msgid "No object available." msgstr "Kein Objekt vorhanden." -#: appTools/ToolCopperThieving.py:662 appTools/ToolNCC.py:1720 +#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1720 #: appTools/ToolNCC.py:1773 appTools/ToolNCC.py:2786 msgid "The reference object type is not supported." msgstr "Der Referenzobjekttyp wird nicht unterstützt." -#: appTools/ToolCopperThieving.py:667 +#: appTools/ToolCopperThieving.py:674 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "Copper Thieving Tool. Füge neue Geometrie an und puffere sie." -#: appTools/ToolCopperThieving.py:683 +#: appTools/ToolCopperThieving.py:710 msgid "Create geometry" msgstr "Geometrie erstellen" -#: appTools/ToolCopperThieving.py:913 appTools/ToolCopperThieving.py:917 +#: appTools/ToolCopperThieving.py:922 appTools/ToolCopperThieving.py:926 msgid "P-Plating Mask" msgstr "P-Beschichtungsmaske" -#: appTools/ToolCopperThieving.py:939 +#: appTools/ToolCopperThieving.py:949 msgid "Append PP-M geometry" msgstr "PPM Geometrie hinzufügen" -#: appTools/ToolCopperThieving.py:1068 +#: appTools/ToolCopperThieving.py:1111 msgid "Generating Pattern Plating Mask done." msgstr "Erzeugen der PPM abgeschlossen." -#: appTools/ToolCopperThieving.py:1111 +#: appTools/ToolCopperThieving.py:1154 msgid "Copper Thieving Tool exit." msgstr "Copper Thieving Tool verlassen." -#: appTools/ToolCopperThieving.py:1202 appTools/ToolFiducials.py:904 +#: appTools/ToolCopperThieving.py:1245 appTools/ToolFiducials.py:904 msgid "Gerber Object to which will be added a copper thieving." msgstr "Dem Gerber Objekt wird ein Copper Thieving hinzugefügt." # Double -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1271 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14892,8 +14951,16 @@ msgstr "" "Polygon\n" "in mehrere aufgeteilt." +#: appTools/ToolCopperThieving.py:1309 appTools/ToolCopperThieving.py:1657 +msgid "mm" +msgstr "mm" + +#: appTools/ToolCopperThieving.py:1311 appTools/ToolCopperThieving.py:1659 +msgid "in" +msgstr "in" + # Double -#: appTools/ToolCopperThieving.py:1261 +#: appTools/ToolCopperThieving.py:1327 msgid "" "- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -14908,12 +14975,12 @@ msgstr "" "- 'Referenzobjekt' - 'Copper Thieving' innerhalb des von einem anderen " "Objekt angegebenen Bereichs." -#: appTools/ToolCopperThieving.py:1268 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1334 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4336 appTools/ToolPaint.py:3126 msgid "Ref. Type" msgstr "Ref. Typ" -#: appTools/ToolCopperThieving.py:1270 +#: appTools/ToolCopperThieving.py:1336 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14922,12 +14989,12 @@ msgstr "" "soll.\n" "Es kann Gerber, Excellon oder Geometry sein." -#: appTools/ToolCopperThieving.py:1279 appTools/ToolIsolation.py:3409 +#: appTools/ToolCopperThieving.py:1345 appTools/ToolIsolation.py:3409 #: appTools/ToolNCC.py:4346 appTools/ToolPaint.py:3136 msgid "Ref. Object" msgstr "Ref. Objekt" -#: appTools/ToolCopperThieving.py:1281 appTools/ToolIsolation.py:3411 +#: appTools/ToolCopperThieving.py:1347 appTools/ToolIsolation.py:3411 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3138 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "" @@ -14935,12 +15002,12 @@ msgstr "" "soll." # Double -#: appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCopperThieving.py:1524 msgid "Insert Copper thieving" msgstr "'Coper Thieving' einsetzen" # Double -#: appTools/ToolCopperThieving.py:1460 +#: appTools/ToolCopperThieving.py:1527 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14949,12 +15016,12 @@ msgstr "" "das wird die eigentlichen Gerber-Spuren in einem gewissen Abstand umgeben." # Double -#: appTools/ToolCopperThieving.py:1519 +#: appTools/ToolCopperThieving.py:1586 msgid "Insert Robber Bar" msgstr "'Robber Bar' einsetzen" # Double -#: appTools/ToolCopperThieving.py:1522 +#: appTools/ToolCopperThieving.py:1589 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14966,11 +15033,11 @@ msgstr "" "in einem bestimmten Abstand.\n" "Erforderlich für die Lochmusterbeschichtung." -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1613 msgid "Select Soldermask object" msgstr "Lötmaskenobjekt auswählen" -#: appTools/ToolCopperThieving.py:1548 +#: appTools/ToolCopperThieving.py:1615 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14979,11 +15046,11 @@ msgstr "" "Das Gerber Objekt mit der Lötmaske\n" "Wird als Basis verwendet." -#: appTools/ToolCopperThieving.py:1577 +#: appTools/ToolCopperThieving.py:1644 msgid "Plated area" msgstr "Beschichtetes Areal" -#: appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCopperThieving.py:1646 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -15000,19 +15067,11 @@ msgstr "" "etwas größer als die Pads sind, und dieses Areal aus der Lötmaske berechnet " "wird." -#: appTools/ToolCopperThieving.py:1590 -msgid "mm" -msgstr "mm" - -#: appTools/ToolCopperThieving.py:1592 -msgid "in" -msgstr "in" - -#: appTools/ToolCopperThieving.py:1599 +#: appTools/ToolCopperThieving.py:1680 msgid "Generate pattern plating mask" msgstr "Generieren der Beschichtungsmaske" -#: appTools/ToolCopperThieving.py:1602 +#: appTools/ToolCopperThieving.py:1683 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -15026,7 +15085,7 @@ msgstr "" msgid "Corners Tool" msgstr "Ecken Werkzeug" -#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:343 +#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:355 msgid "Please select at least a location" msgstr "Bitte wählen Sie mindestens einen Ort aus" @@ -15036,57 +15095,57 @@ msgstr "Bitte wählen Sie mindestens einen Ort aus" msgid "The tool diameter is zero." msgstr "Werkzeugdurchmesser in Feileneinheiten." -#: appTools/ToolCorners.py:412 +#: appTools/ToolCorners.py:415 #, fuzzy #| msgid "Excellon object with alignment drills created..." msgid "Excellon object with corner drills created." msgstr "Excellon-Objekt mit Ausrichtungsbohrern erstellt ..." -#: appTools/ToolCorners.py:447 +#: appTools/ToolCorners.py:450 #, fuzzy #| msgid "The Gerber object to which will be added corner markers." msgid "A Gerber object with corner markers was created." msgstr "Das Gerber-Objekt, dem Eckmarkierungen hinzugefügt werden." -#: appTools/ToolCorners.py:474 +#: appTools/ToolCorners.py:477 msgid "The Gerber object to which will be added corner markers." msgstr "Das Gerber-Objekt, dem Eckmarkierungen hinzugefügt werden." -#: appTools/ToolCorners.py:490 +#: appTools/ToolCorners.py:493 msgid "Locations" msgstr "Standorte" -#: appTools/ToolCorners.py:492 +#: appTools/ToolCorners.py:495 msgid "Locations where to place corner markers." msgstr "Orte, an denen Eckmarkierungen platziert werden sollen." -#: appTools/ToolCorners.py:505 appTools/ToolFiducials.py:735 +#: appTools/ToolCorners.py:508 appTools/ToolFiducials.py:735 msgid "Top Right" msgstr "Oben rechts" -#: appTools/ToolCorners.py:522 +#: appTools/ToolCorners.py:525 msgid "Toggle ALL" msgstr "ALLE umschalten" -#: appTools/ToolCorners.py:602 +#: appTools/ToolCorners.py:605 msgid "Add Marker" msgstr "Marker hinzufügen" -#: appTools/ToolCorners.py:605 +#: appTools/ToolCorners.py:608 msgid "Will add corner markers to the selected Gerber file." msgstr "Fügt der ausgewählten Gerber-Datei Eckmarkierungen hinzu." -#: appTools/ToolCorners.py:621 +#: appTools/ToolCorners.py:624 #, fuzzy #| msgid "Drills number" msgid "Drills in Corners" msgstr "Bohrernummer" -#: appTools/ToolCorners.py:638 appTools/ToolDblSided.py:928 +#: appTools/ToolCorners.py:641 appTools/ToolDblSided.py:928 msgid "Create Excellon Object" msgstr "Excellon-Objekt erstellen" -#: appTools/ToolCorners.py:641 +#: appTools/ToolCorners.py:644 msgid "Will add drill holes in the center of the markers." msgstr "" @@ -20164,11 +20223,11 @@ msgstr "" msgid "G91 coordinates not implemented ..." msgstr "G91 Koordinaten nicht implementiert ..." -#: defaults.py:867 +#: defaults.py:870 msgid "Could not load defaults file." msgstr "Voreinstellungen konnte nicht geladen werden." -#: defaults.py:880 +#: defaults.py:883 msgid "Failed to parse defaults file." msgstr "Fehler beim Einlesen der Voreinstellungen." @@ -21997,9 +22056,6 @@ msgstr "" #~ "Feststehender Schritt nach innen. Seed-based : Ausgehend vom " #~ "Saatgut.
Line-based: Parallele Linien." -#~ msgid "Area" -#~ msgstr "Bereich" - #~ msgid "Ref" #~ msgstr "Ref" diff --git a/locale/en/LC_MESSAGES/strings.mo b/locale/en/LC_MESSAGES/strings.mo index dcf928de25eeae31419ef9178cb83ba4760fab30..f0206352f7c8ae06c9550df4017f91e63c8f2b4b 100644 GIT binary patch delta 73563 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ĨyAcmJ^vaL1i0h;Pz$IBwPWp|{CrTC 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 will mill both drills and mills or whatever is available" #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:293 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: appTools/ToolFilm.py:1109 appTools/ToolMilling.py:1771 +#: appTools/ToolCopperThieving.py:1671 appTools/ToolFilm.py:1109 +#: appTools/ToolMilling.py:1771 msgid "Both" msgstr "Both" @@ -10215,8 +10219,8 @@ msgid "\"Follow\"" msgstr "\"Follow\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:568 -#: appTools/ToolCopperThieving.py:774 appTools/ToolCopperThieving.py:787 +#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:778 appTools/ToolCopperThieving.py:791 #: appTools/ToolIsolation.py:1360 appTools/ToolNCC.py:1807 #: appTools/ToolNCC.py:1834 appTools/ToolNCC.py:1942 appTools/ToolNCC.py:1955 #: appTools/ToolNCC.py:2857 appTools/ToolNCC.py:2962 appTools/ToolNCC.py:2977 @@ -10238,15 +10242,17 @@ msgstr "" "<>: Don't change this unless you know what you are doing !!!" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:71 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:296 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:844 appTools/ToolFilm.py:1106 -#: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 -#: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 -#: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 +#: appTools/ToolCopperThieving.py:1674 appTools/ToolFiducials.py:844 +#: appTools/ToolFilm.py:1106 appTools/ToolProperties.py:449 +#: appTools/ToolProperties.py:452 appTools/ToolProperties.py:455 +#: appTools/ToolProperties.py:483 appTools/ToolProperties.py:490 +#: appTools/ToolProperties.py:493 msgid "None" msgstr "None" @@ -10524,8 +10530,8 @@ msgid "Number of steps (lines) used to interpolate circles." msgstr "Number of steps (lines) used to interpolate circles." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolCopperThieving.py:1563 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:274 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolCopperThieving.py:1630 msgid "Clearance" msgstr "Clearance" @@ -10539,37 +10545,49 @@ msgstr "" "(the polygon fill may be split in multiple polygons)\n" "and the copper traces in the Gerber file." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:85 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: appTools/ToolCalculators.py:342 appTools/ToolCalculators.py:385 +#: appTools/ToolCopperThieving.py:1298 +msgid "Area" +msgstr "Area" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appTools/ToolCopperThieving.py:1300 +msgid "Thieving areas with area less then this value will not be added." +msgstr "Thieving areas with area less then this value will not be added." + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:99 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1255 appTools/ToolNCC.py:4319 +#: appTools/ToolCopperThieving.py:1321 appTools/ToolNCC.py:4319 msgid "Itself" msgstr "Itself" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:100 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1256 appTools/ToolIsolation.py:3391 +#: appTools/ToolCopperThieving.py:1322 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:4319 appTools/ToolPaint.py:3116 msgid "Area Selection" msgstr "Area Selection" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1257 appTools/ToolDblSided.py:761 +#: appTools/ToolCopperThieving.py:1323 appTools/ToolDblSided.py:761 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:4319 #: appTools/ToolPaint.py:3116 tclCommands/TclCommandPaint.py:166 msgid "Reference Object" msgstr "Reference Object" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1259 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:103 +#: appTools/ToolCopperThieving.py:1325 msgid "Reference:" msgstr "Reference:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:105 msgid "" "- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -10583,29 +10601,29 @@ msgstr "" "- 'Reference Object' - will do copper thieving within the area specified by " "another object." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:114 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1301 appTools/ToolExtractDrills.py:495 +#: appTools/ToolCopperThieving.py:1372 appTools/ToolExtractDrills.py:495 #: appTools/ToolExtractDrills.py:628 appTools/ToolPunchGerber.py:1068 #: appTools/ToolPunchGerber.py:1240 msgid "Rectangular" msgstr "Rectangular" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1302 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:115 +#: appTools/ToolCopperThieving.py:1373 msgid "Minimal" msgstr "Minimal" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1304 appTools/ToolFilm.py:958 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:117 +#: appTools/ToolCopperThieving.py:1366 appTools/ToolFilm.py:958 msgid "Box Type:" msgstr "Box Type:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1306 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: appTools/ToolCopperThieving.py:1368 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10613,28 +10631,28 @@ msgstr "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1322 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:133 +#: appTools/ToolCopperThieving.py:1389 msgid "Dots Grid" msgstr "Dots Grid" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1323 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: appTools/ToolCopperThieving.py:1390 msgid "Squares Grid" msgstr "Squares Grid" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1324 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:135 +#: appTools/ToolCopperThieving.py:1391 msgid "Lines Grid" msgstr "Lines Grid" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1326 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137 +#: appTools/ToolCopperThieving.py:1393 msgid "Fill Type:" msgstr "Fill Type:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1328 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:139 +#: appTools/ToolCopperThieving.py:1395 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10646,58 +10664,58 @@ msgstr "" "- 'Squares Grid' - the empty area will be filled with a pattern of squares.\n" "- 'Lines Grid' - the empty area will be filled with a pattern of lines." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1347 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:147 +#: appTools/ToolCopperThieving.py:1414 msgid "Dots Grid Parameters" msgstr "Dots Grid Parameters" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1353 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: appTools/ToolCopperThieving.py:1420 msgid "Dot diameter in Dots Grid." msgstr "Dot diameter in Dots Grid." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1366 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:166 +#: appTools/ToolCopperThieving.py:1433 msgid "Distance between each two dots in Dots Grid." msgstr "Distance between each two dots in Dots Grid." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1387 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:176 +#: appTools/ToolCopperThieving.py:1454 msgid "Squares Grid Parameters" msgstr "Squares Grid Parameters" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1393 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: appTools/ToolCopperThieving.py:1460 msgid "Square side size in Squares Grid." msgstr "Square side size in Squares Grid." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1406 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:195 +#: appTools/ToolCopperThieving.py:1473 msgid "Distance between each two squares in Squares Grid." msgstr "Distance between each two squares in Squares Grid." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1427 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:205 +#: appTools/ToolCopperThieving.py:1494 msgid "Lines Grid Parameters" msgstr "Lines Grid Parameters" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1433 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: appTools/ToolCopperThieving.py:1500 msgid "Line thickness size in Lines Grid." msgstr "Line thickness size in Lines Grid." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1446 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:224 +#: appTools/ToolCopperThieving.py:1513 msgid "Distance between each two lines in Lines Grid." msgstr "Distance between each two lines in Lines Grid." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1485 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:234 +#: appTools/ToolCopperThieving.py:1552 msgid "Robber Bar Parameters" msgstr "Robber Bar Parameters" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1487 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:236 +#: appTools/ToolCopperThieving.py:1554 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10705,35 +10723,35 @@ msgstr "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1495 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: appTools/ToolCopperThieving.py:1562 msgid "Bounding box margin for robber bar." msgstr "Bounding box margin for robber bar." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:255 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appTools/ToolCopperThieving.py:1506 appTools/ToolCorners.py:557 +#: appTools/ToolCopperThieving.py:1573 appTools/ToolCorners.py:560 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Thickness" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1508 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:257 +#: appTools/ToolCopperThieving.py:1575 msgid "The robber bar thickness." msgstr "The robber bar thickness." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1540 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:267 +#: appTools/ToolCopperThieving.py:1607 msgid "Pattern Plating Mask" msgstr "Pattern Plating Mask" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1542 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:269 +#: appTools/ToolCopperThieving.py:1609 msgid "Generate a mask for pattern plating." msgstr "Generate a mask for pattern plating." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1565 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:276 +#: appTools/ToolCopperThieving.py:1632 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10741,6 +10759,23 @@ msgstr "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:290 +#: appTools/ToolCopperThieving.py:1668 +msgid "Choose which additional geometry to include, if available." +msgstr "Choose which additional geometry to include, if available." + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:294 +#: appTools/ToolCopperThieving.py:499 appTools/ToolCopperThieving.py:503 +#: appTools/ToolCopperThieving.py:565 appTools/ToolCopperThieving.py:1672 +msgid "Thieving" +msgstr "Thieving" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:295 +#: appTools/ToolCopperThieving.py:1673 +#| msgid "Insert Robber Bar" +msgid "Robber bar" +msgstr "Robber bar" + #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 msgid "Calibration Tool Options" msgstr "Calibration Tool Options" @@ -10750,7 +10785,7 @@ msgstr "Calibration Tool Options" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1221 appTools/ToolCorners.py:538 +#: appTools/ToolCopperThieving.py:1264 appTools/ToolCorners.py:541 #: appTools/ToolFiducials.py:794 msgid "Parameters used for this tool." msgstr "Parameters used for this tool." @@ -11091,7 +11126,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:49 -#: appTools/ToolCorners.py:550 appTools/ToolFiducials.py:864 +#: appTools/ToolCorners.py:553 appTools/ToolFiducials.py:864 msgid "Cross" msgstr "Cross" @@ -11651,7 +11686,7 @@ msgid "Calculators Tool Options" msgstr "Calculators Tool Options" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: appTools/ToolCalculators.py:152 +#: appTools/ToolCalculators.py:191 msgid "V-Shape Tool Calculator" msgstr "V-Shape Tool Calculator" @@ -11666,12 +11701,12 @@ msgstr "" "depth-of-cut as parameters." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: appTools/ToolCalculators.py:220 +#: appTools/ToolCalculators.py:260 msgid "Tip Diameter" msgstr "Tip Diameter" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: appTools/ToolCalculators.py:228 +#: appTools/ToolCalculators.py:268 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11680,7 +11715,7 @@ msgstr "" "It is specified by manufacturer." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: appTools/ToolCalculators.py:231 +#: appTools/ToolCalculators.py:271 msgid "Tip Angle" msgstr "Tip Angle" @@ -11701,12 +11736,12 @@ msgstr "" "In the CNCJob object it is the CutZ parameter." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:154 +#: appTools/ToolCalculators.py:193 msgid "ElectroPlating Calculator" msgstr "ElectroPlating Calculator" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: appTools/ToolCalculators.py:284 +#: appTools/ToolCalculators.py:324 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium " @@ -11717,32 +11752,38 @@ msgstr "" "chloride." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: appTools/ToolCalculators.py:293 +#: appTools/ToolCalculators.py:349 msgid "Board Length" msgstr "Board Length" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: appTools/ToolCalculators.py:299 +#: appTools/ToolCalculators.py:350 msgid "This is the board length. In centimeters." msgstr "This is the board length. In centimeters." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: appTools/ToolCalculators.py:301 +#: appTools/ToolCalculators.py:367 msgid "Board Width" msgstr "Board Width" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: appTools/ToolCalculators.py:307 +#: appTools/ToolCalculators.py:368 msgid "This is the board width.In centimeters." msgstr "This is the board width.In centimeters." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: appTools/ToolCalculators.py:309 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:120 +#: appTools/ToolCalculators.py:386 +#| msgid "This is the Area ID." +msgid "This is the board area." +msgstr "This is the board area." + +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:130 +#: appTools/ToolCalculators.py:408 msgid "Current Density" msgstr "Current Density" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: appTools/ToolCalculators.py:316 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:136 +#: appTools/ToolCalculators.py:409 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -11750,13 +11791,13 @@ msgstr "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: appTools/ToolCalculators.py:319 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:142 +#: appTools/ToolCalculators.py:428 msgid "Copper Growth" msgstr "Copper Growth" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: appTools/ToolCalculators.py:326 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:148 +#: appTools/ToolCalculators.py:429 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -11769,32 +11810,32 @@ msgid "Corner Markers Options" msgstr "Corner Markers Options" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:545 +#: appTools/ToolCorners.py:548 msgid "Shape of the marker." msgstr "Shape of the marker." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:48 -#: appTools/ToolCorners.py:549 +#: appTools/ToolCorners.py:552 msgid "Semi-Cross" msgstr "Semi-Cross" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:559 +#: appTools/ToolCorners.py:562 msgid "The thickness of the line that makes the corner marker." msgstr "The thickness of the line that makes the corner marker." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:85 -#: appTools/ToolCorners.py:573 +#: appTools/ToolCorners.py:576 msgid "The length of the line that makes the corner marker." msgstr "The length of the line that makes the corner marker." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:96 -#: appTools/ToolCorners.py:625 appTools/ToolDblSided.py:827 +#: appTools/ToolCorners.py:628 appTools/ToolDblSided.py:827 msgid "Drill Dia" msgstr "Drill Dia" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:98 -#: appTools/ToolCorners.py:627 +#: appTools/ToolCorners.py:630 msgid "Drill Diameter" msgstr "Drill Diameter" @@ -12143,18 +12184,18 @@ msgstr "" "It can be one of the four points of the geometry bounding box." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:509 appTools/ToolFiducials.py:723 +#: appTools/ToolCorners.py:512 appTools/ToolFiducials.py:723 #: appTools/ToolFilm.py:1069 msgid "Bottom Left" msgstr "Bottom Left" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:501 appTools/ToolFilm.py:1070 +#: appTools/ToolCorners.py:504 appTools/ToolFilm.py:1070 msgid "Top Left" msgstr "Top Left" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:513 appTools/ToolFilm.py:1071 +#: appTools/ToolCorners.py:516 appTools/ToolFilm.py:1071 msgid "Bottom Right" msgstr "Bottom Right" @@ -12432,8 +12473,8 @@ msgstr "Progressive" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:452 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1072 -#: appTools/ToolCorners.py:416 appTools/ToolFiducials.py:563 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1115 +#: appTools/ToolCorners.py:419 appTools/ToolFiducials.py:563 #: appTools/ToolMove.py:229 appTools/ToolQRCode.py:466 app_Main.py:4813 msgid "Plotting" msgstr "Plotting" @@ -13482,7 +13523,7 @@ msgstr "Generating CNC Code" msgid "CNCjob created" msgstr "CNCjob created" -#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:586 +#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:593 #: appTools/ToolFilm.py:639 appTools/ToolFilm.py:883 #: appTools/ToolIsolation.py:930 appTools/ToolNCC.py:868 #: appTools/ToolOptimal.py:145 appTools/ToolPanelize.py:613 @@ -13604,7 +13645,8 @@ msgstr "Scaling..." msgid "Skewing..." msgstr "Skewing..." -#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:152 +#: appObjects/FlatCAMObj.py:487 appTools/ToolCalculators.py:341 +#: appTools/ToolProperties.py:152 msgid "Dimensions" msgstr "Dimensions" @@ -13974,9 +14016,9 @@ msgstr "" "If only one point is used then it assumes translation.\n" "If tho points are used it assume translation and rotation." -#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1617 -#: appTools/ToolCorners.py:654 appTools/ToolCutOut.py:2411 +#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:501 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1698 +#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2411 #: appTools/ToolDblSided.py:946 appTools/ToolDrilling.py:2649 #: appTools/ToolEtchCompensation.py:459 appTools/ToolExtractDrills.py:699 #: appTools/ToolFiducials.py:962 appTools/ToolFilm.py:1387 @@ -13990,9 +14032,9 @@ msgstr "" msgid "Reset Tool" msgstr "Reset Tool" -#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1620 -#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2414 +#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:504 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1701 +#: appTools/ToolCorners.py:660 appTools/ToolCutOut.py:2414 #: appTools/ToolDblSided.py:949 appTools/ToolDrilling.py:2652 #: appTools/ToolEtchCompensation.py:462 appTools/ToolExtractDrills.py:702 #: appTools/ToolFiducials.py:965 appTools/ToolFilm.py:1390 @@ -14006,27 +14048,27 @@ msgstr "Reset Tool" msgid "Will reset the tool parameters." msgstr "Will reset the tool parameters." -#: appTools/ToolCalculators.py:77 +#: appTools/ToolCalculators.py:79 msgid "Calc. Tool" msgstr "Calc. Tool" -#: appTools/ToolCalculators.py:151 +#: appTools/ToolCalculators.py:190 msgid "Calculators" msgstr "Calculators" -#: appTools/ToolCalculators.py:153 +#: appTools/ToolCalculators.py:192 msgid "Units Calculator" msgstr "Units Calculator" -#: appTools/ToolCalculators.py:196 +#: appTools/ToolCalculators.py:236 msgid "Here you enter the value to be converted from INCH to MM" msgstr "Here you enter the value to be converted from INCH to MM" -#: appTools/ToolCalculators.py:201 +#: appTools/ToolCalculators.py:241 msgid "Here you enter the value to be converted from MM to INCH" msgstr "Here you enter the value to be converted from MM to INCH" -#: appTools/ToolCalculators.py:237 +#: appTools/ToolCalculators.py:277 msgid "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." @@ -14034,7 +14076,7 @@ msgstr "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." -#: appTools/ToolCalculators.py:246 +#: appTools/ToolCalculators.py:286 msgid "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." @@ -14042,7 +14084,7 @@ msgstr "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." -#: appTools/ToolCalculators.py:254 +#: appTools/ToolCalculators.py:294 msgid "" "This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" @@ -14052,11 +14094,11 @@ msgstr "" "FlatCAM Gerber section.\n" "In the CNCJob section it is called >Tool dia<." -#: appTools/ToolCalculators.py:265 appTools/ToolCalculators.py:361 +#: appTools/ToolCalculators.py:305 appTools/ToolCalculators.py:490 msgid "Calculate" msgstr "Calculate" -#: appTools/ToolCalculators.py:268 +#: appTools/ToolCalculators.py:309 msgid "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " @@ -14064,11 +14106,29 @@ msgstr "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " -#: appTools/ToolCalculators.py:331 +#: appTools/ToolCalculators.py:336 +#| msgid "Area Selection" +msgid "Area Calculation" +msgstr "Area Calculation" + +#: appTools/ToolCalculators.py:338 +msgid "Choose how to calculate the board area." +msgstr "Choose how to calculate the board area." + +#: appTools/ToolCalculators.py:356 appTools/ToolCalculators.py:374 +#: appTools/ToolCalculators.py:392 +msgid "cm" +msgstr "cm" + +#: appTools/ToolCalculators.py:437 +msgid "um" +msgstr "um" + +#: appTools/ToolCalculators.py:448 msgid "Current Value" msgstr "Current Value" -#: appTools/ToolCalculators.py:338 +#: appTools/ToolCalculators.py:449 msgid "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." @@ -14076,11 +14136,11 @@ msgstr "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." -#: appTools/ToolCalculators.py:342 +#: appTools/ToolCalculators.py:469 msgid "Time" msgstr "Time" -#: appTools/ToolCalculators.py:349 +#: appTools/ToolCalculators.py:470 msgid "" "This is the calculated time required for the procedure.\n" "In minutes." @@ -14088,7 +14148,7 @@ msgstr "" "This is the calculated time required for the procedure.\n" "In minutes." -#: appTools/ToolCalculators.py:364 +#: appTools/ToolCalculators.py:493 msgid "" "Calculate the current intensity value and the procedure time,\n" "depending on the parameters above" @@ -14392,45 +14452,45 @@ msgstr "" "Adjust (scale and/or skew) the objects\n" "with the factors determined above." -#: appTools/ToolCopperThieving.py:184 appTools/ToolCopperThieving.py:209 +#: appTools/ToolCopperThieving.py:186 appTools/ToolCopperThieving.py:211 msgid "Lines Grid works only for 'itself' reference ..." msgstr "Lines Grid works only for 'itself' reference ..." -#: appTools/ToolCopperThieving.py:195 +#: appTools/ToolCopperThieving.py:197 msgid "Solid fill selected." msgstr "Solid fill selected." -#: appTools/ToolCopperThieving.py:200 +#: appTools/ToolCopperThieving.py:202 msgid "Dots grid fill selected." msgstr "Dots grid fill selected." -#: appTools/ToolCopperThieving.py:205 +#: appTools/ToolCopperThieving.py:207 msgid "Squares grid fill selected." msgstr "Squares grid fill selected." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:324 -#: appTools/ToolCopperThieving.py:936 appTools/ToolCorners.py:127 -#: appTools/ToolCorners.py:353 appTools/ToolDblSided.py:307 +#: appTools/ToolCopperThieving.py:229 appTools/ToolCopperThieving.py:327 +#: appTools/ToolCopperThieving.py:946 appTools/ToolCorners.py:127 +#: appTools/ToolCorners.py:350 appTools/ToolDblSided.py:307 #: appTools/ToolExtractDrills.py:141 appTools/ToolFiducials.py:191 #: appTools/ToolFiducials.py:482 appTools/ToolOptimal.py:138 #: appTools/ToolPunchGerber.py:381 appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "There is no Gerber object loaded ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 +#: appTools/ToolCopperThieving.py:242 appTools/ToolCopperThieving.py:847 msgid "Append geometry" msgstr "Append geometry" -#: appTools/ToolCopperThieving.py:294 appTools/ToolCopperThieving.py:889 -#: appTools/ToolCopperThieving.py:1048 +#: appTools/ToolCopperThieving.py:297 appTools/ToolCopperThieving.py:898 +#: appTools/ToolCopperThieving.py:1091 msgid "Append source file" msgstr "Append source file" -#: appTools/ToolCopperThieving.py:307 appTools/ToolCopperThieving.py:902 +#: appTools/ToolCopperThieving.py:310 appTools/ToolCopperThieving.py:911 msgid "Copper Thieving Tool done." msgstr "Copper Thieving Tool done." -#: appTools/ToolCopperThieving.py:334 appTools/ToolCopperThieving.py:354 +#: appTools/ToolCopperThieving.py:337 appTools/ToolCopperThieving.py:357 #: appTools/ToolCutOut.py:551 appTools/ToolCutOut.py:927 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 @@ -14446,70 +14506,65 @@ msgstr "Copper Thieving Tool done." msgid "Could not retrieve object" msgstr "Could not retrieve object" -#: appTools/ToolCopperThieving.py:382 +#: appTools/ToolCopperThieving.py:385 msgid "Click the end point of the filling area." msgstr "Click the end point of the filling area." -#: appTools/ToolCopperThieving.py:496 appTools/ToolCopperThieving.py:500 -#: appTools/ToolCopperThieving.py:558 -msgid "Thieving" -msgstr "Thieving" - -#: appTools/ToolCopperThieving.py:507 +#: appTools/ToolCopperThieving.py:510 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Copper Thieving Tool started. Reading parameters." -#: appTools/ToolCopperThieving.py:532 +#: appTools/ToolCopperThieving.py:536 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Copper Thieving Tool. Preparing isolation polygons." -#: appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:582 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Copper Thieving Tool. Preparing areas to fill with copper." -#: appTools/ToolCopperThieving.py:619 +#: appTools/ToolCopperThieving.py:626 msgid "Geometry not supported for bounding box" msgstr "Geometry not supported for bounding box" -#: appTools/ToolCopperThieving.py:625 appTools/ToolNCC.py:1695 +#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1695 #: appTools/ToolNCC.py:1750 appTools/ToolNCC.py:2744 appTools/ToolPaint.py:2468 msgid "No object available." msgstr "No object available." -#: appTools/ToolCopperThieving.py:662 appTools/ToolNCC.py:1720 +#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1720 #: appTools/ToolNCC.py:1773 appTools/ToolNCC.py:2786 msgid "The reference object type is not supported." msgstr "The reference object type is not supported." -#: appTools/ToolCopperThieving.py:667 +#: appTools/ToolCopperThieving.py:674 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "Copper Thieving Tool. Appending new geometry and buffering." -#: appTools/ToolCopperThieving.py:683 +#: appTools/ToolCopperThieving.py:710 msgid "Create geometry" msgstr "Create geometry" -#: appTools/ToolCopperThieving.py:913 appTools/ToolCopperThieving.py:917 +#: appTools/ToolCopperThieving.py:922 appTools/ToolCopperThieving.py:926 msgid "P-Plating Mask" msgstr "P-Plating Mask" -#: appTools/ToolCopperThieving.py:939 +#: appTools/ToolCopperThieving.py:949 msgid "Append PP-M geometry" msgstr "Append PP-M geometry" -#: appTools/ToolCopperThieving.py:1068 +#: appTools/ToolCopperThieving.py:1111 msgid "Generating Pattern Plating Mask done." msgstr "Generating Pattern Plating Mask done." -#: appTools/ToolCopperThieving.py:1111 +#: appTools/ToolCopperThieving.py:1154 msgid "Copper Thieving Tool exit." msgstr "Copper Thieving Tool exit." -#: appTools/ToolCopperThieving.py:1202 appTools/ToolFiducials.py:904 +#: appTools/ToolCopperThieving.py:1245 appTools/ToolFiducials.py:904 msgid "Gerber Object to which will be added a copper thieving." msgstr "Gerber Object to which will be added a copper thieving." -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1271 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14519,7 +14574,15 @@ msgstr "" "(the polygon fill may be split in multiple polygons)\n" "and the copper traces in the Gerber file." -#: appTools/ToolCopperThieving.py:1261 +#: appTools/ToolCopperThieving.py:1309 appTools/ToolCopperThieving.py:1657 +msgid "mm" +msgstr "mm" + +#: appTools/ToolCopperThieving.py:1311 appTools/ToolCopperThieving.py:1659 +msgid "in" +msgstr "in" + +#: appTools/ToolCopperThieving.py:1327 msgid "" "- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -14533,12 +14596,12 @@ msgstr "" "- 'Reference Object' - will do copper thieving within the area specified by " "another object." -#: appTools/ToolCopperThieving.py:1268 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1334 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4336 appTools/ToolPaint.py:3126 msgid "Ref. Type" msgstr "Ref. Type" -#: appTools/ToolCopperThieving.py:1270 +#: appTools/ToolCopperThieving.py:1336 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14546,21 +14609,21 @@ msgstr "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." -#: appTools/ToolCopperThieving.py:1279 appTools/ToolIsolation.py:3409 +#: appTools/ToolCopperThieving.py:1345 appTools/ToolIsolation.py:3409 #: appTools/ToolNCC.py:4346 appTools/ToolPaint.py:3136 msgid "Ref. Object" msgstr "Ref. Object" -#: appTools/ToolCopperThieving.py:1281 appTools/ToolIsolation.py:3411 +#: appTools/ToolCopperThieving.py:1347 appTools/ToolIsolation.py:3411 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3138 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "The FlatCAM object to be used as non copper clearing reference." -#: appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCopperThieving.py:1524 msgid "Insert Copper thieving" msgstr "Insert Copper thieving" -#: appTools/ToolCopperThieving.py:1460 +#: appTools/ToolCopperThieving.py:1527 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14568,11 +14631,11 @@ msgstr "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." -#: appTools/ToolCopperThieving.py:1519 +#: appTools/ToolCopperThieving.py:1586 msgid "Insert Robber Bar" msgstr "Insert Robber Bar" -#: appTools/ToolCopperThieving.py:1522 +#: appTools/ToolCopperThieving.py:1589 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14584,11 +14647,11 @@ msgstr "" "at a certain distance.\n" "Required when doing holes pattern plating." -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1613 msgid "Select Soldermask object" msgstr "Select Soldermask object" -#: appTools/ToolCopperThieving.py:1548 +#: appTools/ToolCopperThieving.py:1615 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14598,11 +14661,11 @@ msgstr "" "It will be used as a base for\n" "the pattern plating mask." -#: appTools/ToolCopperThieving.py:1577 +#: appTools/ToolCopperThieving.py:1644 msgid "Plated area" msgstr "Plated area" -#: appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCopperThieving.py:1646 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14620,19 +14683,11 @@ msgstr "" "a bit larger than the copper pads, and this area is\n" "calculated from the soldermask openings." -#: appTools/ToolCopperThieving.py:1590 -msgid "mm" -msgstr "mm" - -#: appTools/ToolCopperThieving.py:1592 -msgid "in" -msgstr "in" - -#: appTools/ToolCopperThieving.py:1599 +#: appTools/ToolCopperThieving.py:1680 msgid "Generate pattern plating mask" msgstr "Generate pattern plating mask" -#: appTools/ToolCopperThieving.py:1602 +#: appTools/ToolCopperThieving.py:1683 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14646,7 +14701,7 @@ msgstr "" msgid "Corners Tool" msgstr "Corners Tool" -#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:343 +#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:355 msgid "Please select at least a location" msgstr "Please select at least a location" @@ -14654,51 +14709,51 @@ msgstr "Please select at least a location" msgid "The tool diameter is zero." msgstr "The tool diameter is zero." -#: appTools/ToolCorners.py:412 +#: appTools/ToolCorners.py:415 msgid "Excellon object with corner drills created." msgstr "Excellon object with corner drills created." -#: appTools/ToolCorners.py:447 +#: appTools/ToolCorners.py:450 msgid "A Gerber object with corner markers was created." msgstr "A Gerber object with corner markers was created." -#: appTools/ToolCorners.py:474 +#: appTools/ToolCorners.py:477 msgid "The Gerber object to which will be added corner markers." msgstr "The Gerber object to which will be added corner markers." -#: appTools/ToolCorners.py:490 +#: appTools/ToolCorners.py:493 msgid "Locations" msgstr "Locations" -#: appTools/ToolCorners.py:492 +#: appTools/ToolCorners.py:495 msgid "Locations where to place corner markers." msgstr "Locations where to place corner markers." -#: appTools/ToolCorners.py:505 appTools/ToolFiducials.py:735 +#: appTools/ToolCorners.py:508 appTools/ToolFiducials.py:735 msgid "Top Right" msgstr "Top Right" -#: appTools/ToolCorners.py:522 +#: appTools/ToolCorners.py:525 msgid "Toggle ALL" msgstr "Toggle ALL" -#: appTools/ToolCorners.py:602 +#: appTools/ToolCorners.py:605 msgid "Add Marker" msgstr "Add Marker" -#: appTools/ToolCorners.py:605 +#: appTools/ToolCorners.py:608 msgid "Will add corner markers to the selected Gerber file." msgstr "Will add corner markers to the selected Gerber file." -#: appTools/ToolCorners.py:621 +#: appTools/ToolCorners.py:624 msgid "Drills in Corners" msgstr "Drills in Corners" -#: appTools/ToolCorners.py:638 appTools/ToolDblSided.py:928 +#: appTools/ToolCorners.py:641 appTools/ToolDblSided.py:928 msgid "Create Excellon Object" msgstr "Create Excellon Object" -#: appTools/ToolCorners.py:641 +#: appTools/ToolCorners.py:644 msgid "Will add drill holes in the center of the markers." msgstr "Will add drill holes in the center of the markers." @@ -19600,11 +19655,11 @@ msgstr "Creating Geometry from the parsed GCode file for tool diameter" msgid "G91 coordinates not implemented ..." msgstr "G91 coordinates not implemented ..." -#: defaults.py:867 +#: defaults.py:870 msgid "Could not load defaults file." msgstr "Could not load defaults file." -#: defaults.py:880 +#: defaults.py:883 msgid "Failed to parse defaults file." msgstr "Failed to parse defaults file." @@ -21341,9 +21396,6 @@ msgstr "No Geometry name in args. Provide a name and try again." #~ "
Seed-based: Outwards from seed.
Line-based: Parallel " #~ "lines." -#~ msgid "Area" -#~ msgstr "Area" - #~ msgid "Ref" #~ msgstr "Ref" diff --git a/locale/es/LC_MESSAGES/strings.mo b/locale/es/LC_MESSAGES/strings.mo index 0630cbc37a6e68d45fb60fa21a06597afebf24d4..5dd7026d6f3131a0c275964f681b60257f66122f 100644 GIT binary patch delta 73591 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 nX-CtK%dYdaW2=PhDb8qBGV2 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 diff --git a/locale/es/LC_MESSAGES/strings.po b/locale/es/LC_MESSAGES/strings.po index 2de68cc9..1f575035 100644 --- a/locale/es/LC_MESSAGES/strings.po +++ b/locale/es/LC_MESSAGES/strings.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-11-02 13:43+0200\n" -"PO-Revision-Date: 2020-11-02 13:43+0200\n" +"POT-Creation-Date: 2020-11-02 17:53+0200\n" +"PO-Revision-Date: 2020-11-02 17:55+0200\n" "Last-Translator: Marius Stanciu - Google Translate\n" "Language-Team: \n" "Language: es\n" @@ -165,7 +165,7 @@ msgstr "Marcadores importados de" msgid "The user requested a graceful exit of the current task." msgstr "El usuario solicitó una salida elegante de la tarea actual." -#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:344 +#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:347 #: appTools/ToolIsolation.py:1443 appTools/ToolNCC.py:1380 msgid "Click the start point of the area." msgstr "Haga clic en el punto de inicio del área." @@ -175,7 +175,7 @@ msgid "Click the end point of the area." msgstr "Haga clic en el punto final del área." #: appCommon/Common.py:358 appCommon/Common.py:460 -#: appTools/ToolCopperThieving.py:388 appTools/ToolIsolation.py:2354 +#: appTools/ToolCopperThieving.py:391 appTools/ToolIsolation.py:2354 #: appTools/ToolIsolation.py:2406 appTools/ToolNCC.py:1445 #: appTools/ToolNCC.py:1497 appTools/ToolPaint.py:1225 #: appTools/ToolPaint.py:1276 @@ -512,7 +512,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2121 +#: appTools/ToolCalculators.py:280 appTools/ToolCutOut.py:2121 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Corte Z" @@ -798,7 +798,7 @@ msgstr "" #: appGUI/ObjectUI.py:1681 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:307 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 @@ -806,8 +806,8 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1241 appTools/ToolCopperThieving.py:1493 -#: appTools/ToolCorners.py:584 appTools/ToolCutOut.py:2174 +#: appTools/ToolCopperThieving.py:1284 appTools/ToolCopperThieving.py:1560 +#: appTools/ToolCorners.py:587 appTools/ToolCutOut.py:2174 #: appTools/ToolFiducials.py:815 appTools/ToolInvertGerber.py:231 #: appTools/ToolInvertGerber.py:239 appTools/ToolNCC.py:4159 #: appTools/ToolNCC.py:4262 @@ -821,7 +821,7 @@ msgstr "Margen" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCorners.py:586 +#: appTools/ToolCopperThieving.py:1286 appTools/ToolCorners.py:589 #: appTools/ToolFiducials.py:817 appTools/ToolNCC.py:4161 #: appTools/ToolNCC.py:4264 msgid "Bounding box margin." @@ -1320,7 +1320,7 @@ msgstr "" #: appDatabase.py:1223 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2237 +#: appTools/ToolCalculators.py:289 appTools/ToolCutOut.py:2237 msgid "Tool Diameter" msgstr "Diá. de Herram" @@ -1330,12 +1330,12 @@ msgid "The drill hole diameter when doing mouse bites." msgstr "El diámetro del taladro al hacer 'mouse bytes'." #: appDatabase.py:1236 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:164 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:193 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:222 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1364 appTools/ToolCopperThieving.py:1404 -#: appTools/ToolCopperThieving.py:1444 appTools/ToolCutOut.py:2249 +#: appTools/ToolCopperThieving.py:1431 appTools/ToolCopperThieving.py:1471 +#: appTools/ToolCopperThieving.py:1511 appTools/ToolCutOut.py:2249 msgid "Spacing" msgstr "Spacing" @@ -1451,7 +1451,7 @@ msgstr "" "en la base de datos de herramientas." #: appDatabase.py:1367 appGUI/MainGUI.py:1553 -#: appGUI/preferences/PreferencesUIManager.py:946 app_Main.py:2500 +#: appGUI/preferences/PreferencesUIManager.py:949 app_Main.py:2500 #: app_Main.py:3527 app_Main.py:4471 app_Main.py:4724 app_Main.py:8998 msgid "Cancel" msgstr "Cancelar" @@ -1461,10 +1461,10 @@ msgstr "Cancelar" #: appEditors/appGCodeEditor.py:781 appGUI/ObjectUI.py:163 #: appGUI/ObjectUI.py:174 appTool.py:280 appTool.py:291 #: appTools/ToolAlignObjects.py:517 appTools/ToolAlignObjects.py:528 -#: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 +#: appTools/ToolCalculators.py:519 appTools/ToolCalculators.py:530 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1635 appTools/ToolCopperThieving.py:1646 -#: appTools/ToolCorners.py:672 appTools/ToolCorners.py:683 +#: appTools/ToolCopperThieving.py:1716 appTools/ToolCopperThieving.py:1727 +#: appTools/ToolCorners.py:675 appTools/ToolCorners.py:686 #: appTools/ToolCutOut.py:2454 appTools/ToolCutOut.py:2465 #: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:975 #: appTools/ToolDistance.py:660 appTools/ToolDistance.py:671 @@ -1497,10 +1497,10 @@ msgstr "El valor editado está fuera de rango" #: appEditors/appGCodeEditor.py:783 appGUI/ObjectUI.py:169 #: appGUI/ObjectUI.py:176 appTool.py:286 appTool.py:293 #: appTools/ToolAlignObjects.py:523 appTools/ToolAlignObjects.py:530 -#: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 +#: appTools/ToolCalculators.py:525 appTools/ToolCalculators.py:532 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1641 appTools/ToolCopperThieving.py:1648 -#: appTools/ToolCorners.py:678 appTools/ToolCorners.py:685 +#: appTools/ToolCopperThieving.py:1722 appTools/ToolCopperThieving.py:1729 +#: appTools/ToolCorners.py:681 appTools/ToolCorners.py:688 #: appTools/ToolCutOut.py:2460 appTools/ToolCutOut.py:2467 #: appTools/ToolDblSided.py:970 appTools/ToolDblSided.py:977 #: appTools/ToolDistance.py:666 appTools/ToolDistance.py:673 @@ -2125,7 +2125,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4012 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:83 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:571 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:574 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Longitud" @@ -2292,10 +2292,10 @@ msgstr "Font" #: appEditors/AppGeoEditor.py:316 appEditors/AppGerberEditor.py:2491 #: appEditors/AppGerberEditor.py:3947 appGUI/ObjectUI.py:316 #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1391 appTools/ToolCopperThieving.py:1431 +#: appTools/ToolCopperThieving.py:1458 appTools/ToolCopperThieving.py:1498 #: appTools/ToolFiducials.py:799 appTools/ToolPunchGerber.py:1088 msgid "Size" msgstr "Tamaño" @@ -2451,7 +2451,7 @@ msgstr "Origen" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:256 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appTools/ToolIsolation.py:3381 appTools/ToolNCC.py:4323 -#: appTools/ToolPaint.py:3104 appTools/ToolTransform.py:557 defaults.py:571 +#: appTools/ToolPaint.py:3104 appTools/ToolTransform.py:557 defaults.py:572 msgid "Selection" msgstr "Selección" @@ -2486,10 +2486,12 @@ msgstr "Un punto de referencia en formato X, Y." #: appEditors/AppGeoEditor.py:671 appEditors/AppGerberEditor.py:2586 #: appEditors/AppGerberEditor.py:5352 appGUI/ObjectUI.py:2375 -#: appTools/ToolDblSided.py:709 appTools/ToolDblSided.py:897 -#: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 -#: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1204 -#: appTools/ToolTransform.py:572 app_Main.py:6294 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:288 +#: appTools/ToolCopperThieving.py:1666 appTools/ToolDblSided.py:709 +#: appTools/ToolDblSided.py:897 appTools/ToolNCC.py:63 +#: appTools/ToolPaint.py:137 appTools/ToolSolderPaste.py:160 +#: appTools/ToolSolderPaste.py:1204 appTools/ToolTransform.py:572 +#: app_Main.py:6294 msgid "Add" msgstr "Añadir" @@ -3182,7 +3184,7 @@ msgstr "Editor de geometría" #: appEditors/AppGerberEditor.py:3947 appEditors/appGCodeEditor.py:687 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2034 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: appTools/ToolCorners.py:543 appTools/ToolCutOut.py:2030 +#: appTools/ToolCorners.py:546 appTools/ToolCutOut.py:2030 #: appTools/ToolDblSided.py:522 appTools/ToolPunchGerber.py:1088 #: appTools/ToolTransform.py:579 msgid "Type" @@ -3651,10 +3653,10 @@ msgstr "Umbral SUPERIOR área" #: appEditors/AppGerberEditor.py:2710 msgid "" "The threshold value, all areas less than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" "El valor de umbral, todas las áreas menos que esto están marcadas.\n" -"Puede tener un valor entre 0.0000 y 9999.9999" +"Puede tener un valor entre 0.0000 y 10000.0000" #: appEditors/AppGerberEditor.py:2717 msgid "Area LOWER threshold" @@ -3663,10 +3665,10 @@ msgstr "Umbral inferior de la zona" #: appEditors/AppGerberEditor.py:2719 msgid "" "The threshold value, all areas more than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" "El valor de umbral, todas las áreas más que esto están marcadas.\n" -"Puede tener un valor entre 0.0000 y 9999.9999" +"Puede tener un valor entre 0.0000 y 10000.0000" #: appEditors/AppGerberEditor.py:2733 msgid "Mark" @@ -3831,9 +3833,9 @@ msgstr "" "No hay apertura para amortiguar. Seleccione al menos una abertura e intente " "de nuevo." -#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:303 -#: appTools/ToolCopperThieving.py:898 appTools/ToolCopperThieving.py:1061 -#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:410 +#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:306 +#: appTools/ToolCopperThieving.py:907 appTools/ToolCopperThieving.py:1104 +#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:413 #: appTools/ToolCutOut.py:779 appTools/ToolCutOut.py:905 #: appTools/ToolCutOut.py:1128 appTools/ToolCutOut.py:1278 #: appTools/ToolFiducials.py:240 appTools/ToolFiducials.py:492 @@ -4018,8 +4020,8 @@ msgstr "Editor de código G" #: appEditors/appGCodeEditor.py:687 appEditors/appGCodeEditor.py:698 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2034 appGUI/ObjectUI.py:2044 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1351 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: appTools/ToolCopperThieving.py:1418 msgid "Dia" msgstr "Dia" @@ -4348,8 +4350,8 @@ msgstr "Nueva" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appObjects/ObjectCollection.py:234 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2027 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2027 #: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:771 #: appTools/ToolFilm.py:933 appTools/ToolFilm.py:956 appTools/ToolImage.py:135 #: appTools/ToolImage.py:190 appTools/ToolIsolation.py:3351 @@ -4377,8 +4379,8 @@ msgstr "Creará un nuevo objeto vacío de geometría." #: appTools/ToolAlignObjects.py:434 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:891 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2026 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2026 #: appTools/ToolDblSided.py:528 appTools/ToolDblSided.py:769 #: appTools/ToolFilm.py:932 appTools/ToolFilm.py:955 appTools/ToolImage.py:116 #: appTools/ToolImage.py:137 appTools/ToolImage.py:190 @@ -4386,7 +4388,7 @@ msgstr "Creará un nuevo objeto vacío de geometría." #: appTools/ToolNCC.py:3873 appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 #: appTools/ToolPanelize.py:148 appTools/ToolPanelize.py:168 #: appTools/ToolPanelize.py:716 appTools/ToolPanelize.py:810 -#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 defaults.py:572 +#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 defaults.py:573 msgid "Gerber" msgstr "Gerber" @@ -4406,8 +4408,8 @@ msgstr "Creará un nuevo objeto vacío de Gerber." #: appTools/ToolAlignObjects.py:435 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:892 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolDblSided.py:530 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolDblSided.py:530 #: appTools/ToolDblSided.py:728 appTools/ToolDblSided.py:770 #: appTools/ToolFilm.py:1211 appTools/ToolIsolation.py:3404 #: appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 @@ -4613,7 +4615,7 @@ msgstr "Importar preferencias del archivo" msgid "Export Preferences to file" msgstr "Exportar preferencias a un archivo" -#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1188 +#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1191 msgid "Save Preferences" msgstr "Guardar Preferencias" @@ -4770,10 +4772,10 @@ msgid "Q" msgstr "Q" #: appGUI/MainGUI.py:454 appGUI/MainGUI.py:1263 -#: appGUI/preferences/PreferencesUIManager.py:913 -#: appGUI/preferences/PreferencesUIManager.py:1006 -#: appGUI/preferences/PreferencesUIManager.py:1034 -#: appGUI/preferences/PreferencesUIManager.py:1139 app_Main.py:5739 +#: appGUI/preferences/PreferencesUIManager.py:916 +#: appGUI/preferences/PreferencesUIManager.py:1009 +#: appGUI/preferences/PreferencesUIManager.py:1037 +#: appGUI/preferences/PreferencesUIManager.py:1142 app_Main.py:5739 #: app_Main.py:5744 app_Main.py:5759 msgid "Preferences" msgstr "Preferencias" @@ -5465,7 +5467,7 @@ msgid "QRCode Tool" msgstr "Herramienta QRCode" #: appGUI/MainGUI.py:1079 appGUI/MainGUI.py:2248 appGUI/MainGUI.py:4475 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1168 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1211 msgid "Copper Thieving Tool" msgstr "Herramienta Thieving Tool" @@ -5489,7 +5491,7 @@ msgid "Invert Gerber Tool" msgstr "Herram. Invertir Gerber" #: appGUI/MainGUI.py:1090 appGUI/MainGUI.py:2259 appGUI/MainGUI.py:4478 -#: appTools/ToolCorners.py:452 +#: appTools/ToolCorners.py:455 msgid "Corner Markers Tool" msgstr "Herram. de Marca. de Esquina" @@ -5639,8 +5641,8 @@ msgstr "Proyecto" msgid "Plot Area" msgstr "Área de la parcela" -#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1200 -#: appTools/ToolCorners.py:472 appTools/ToolEtchCompensation.py:291 +#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1243 +#: appTools/ToolCorners.py:475 appTools/ToolEtchCompensation.py:291 #: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:902 #: appTools/ToolInvertGerber.py:212 appTools/ToolIsolation.py:2999 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:1010 @@ -5804,14 +5806,14 @@ msgstr "Carpeta de preferencias de FlatCAM abierta." msgid "Are you sure you want to delete the GUI Settings? \n" msgstr "¿Está seguro de que desea eliminar la configuración de la GUI?\n" -#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:945 -#: appGUI/preferences/PreferencesUIManager.py:1192 appTranslation.py:111 +#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:948 +#: appGUI/preferences/PreferencesUIManager.py:1195 appTranslation.py:111 #: appTranslation.py:213 app_Main.py:2498 app_Main.py:3525 app_Main.py:5980 #: app_Main.py:8996 msgid "Yes" msgstr "Sí" -#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1193 +#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1196 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:49 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 @@ -6526,8 +6528,8 @@ msgstr "Opciones de parcela" #: appGUI/ObjectUI.py:202 appGUI/ObjectUI.py:552 #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1321 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:132 +#: appTools/ToolCopperThieving.py:1388 msgid "Solid" msgstr "Sólido" @@ -8244,41 +8246,41 @@ msgstr "" "No se pudo anotar debido a una diferencia entre el número de elementos de " "texto y el número de posiciones de texto." -#: appGUI/preferences/PreferencesUIManager.py:920 +#: appGUI/preferences/PreferencesUIManager.py:923 msgid "Preferences applied." msgstr "Preferencias aplicadas." -#: appGUI/preferences/PreferencesUIManager.py:940 +#: appGUI/preferences/PreferencesUIManager.py:943 msgid "Are you sure you want to continue?" msgstr "¿Estás seguro de que quieres continuar?" -#: appGUI/preferences/PreferencesUIManager.py:941 +#: appGUI/preferences/PreferencesUIManager.py:944 msgid "Application will restart" msgstr "La aplicación se reiniciará" -#: appGUI/preferences/PreferencesUIManager.py:1039 +#: appGUI/preferences/PreferencesUIManager.py:1042 msgid "Preferences closed without saving." msgstr "Preferencias cerradas sin guardar." -#: appGUI/preferences/PreferencesUIManager.py:1051 +#: appGUI/preferences/PreferencesUIManager.py:1054 msgid "Preferences default values are restored." msgstr "Se restauran los valores predeterminados de las preferencias." -#: appGUI/preferences/PreferencesUIManager.py:1082 app_Main.py:2833 +#: appGUI/preferences/PreferencesUIManager.py:1085 app_Main.py:2833 #: app_Main.py:9670 msgid "Failed to write defaults to file." msgstr "Error al escribir los valores predeterminados en el archivo." -#: appGUI/preferences/PreferencesUIManager.py:1086 -#: appGUI/preferences/PreferencesUIManager.py:1201 +#: appGUI/preferences/PreferencesUIManager.py:1089 +#: appGUI/preferences/PreferencesUIManager.py:1204 msgid "Preferences saved." msgstr "Preferencias guardadas." -#: appGUI/preferences/PreferencesUIManager.py:1136 +#: appGUI/preferences/PreferencesUIManager.py:1139 msgid "Preferences edited but not saved." msgstr "Preferencias editadas pero no guardadas." -#: appGUI/preferences/PreferencesUIManager.py:1186 +#: appGUI/preferences/PreferencesUIManager.py:1189 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -8316,8 +8318,8 @@ msgstr "CNCJob Adv. Opciones" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1219 -#: appTools/ToolCorners.py:536 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1262 +#: appTools/ToolCorners.py:539 appTools/ToolEtchCompensation.py:356 #: appTools/ToolFiducials.py:792 appTools/ToolInvertGerber.py:225 #: appTools/ToolQRCode.py:702 msgid "Parameters" @@ -8722,7 +8724,7 @@ msgstr "Las unidades utilizadas en el archivo Excellon." #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:187 appTools/ToolPcbWizard.py:453 +#: appTools/ToolCalculators.py:227 appTools/ToolPcbWizard.py:453 msgid "INCH" msgstr "PULGADA" @@ -8731,7 +8733,7 @@ msgstr "PULGADA" #: appGUI/preferences/general/GeneralAppPrefGroupUI.py:43 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 -#: appTools/ToolCalculators.py:188 appTools/ToolPcbWizard.py:454 +#: appTools/ToolCalculators.py:228 appTools/ToolPcbWizard.py:454 msgid "MM" msgstr "MM" @@ -9144,8 +9146,10 @@ msgstr "" "- Ambos -> fresarán taladros y molinos o lo que esté disponible" #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:293 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: appTools/ToolFilm.py:1109 appTools/ToolMilling.py:1771 +#: appTools/ToolCopperThieving.py:1671 appTools/ToolFilm.py:1109 +#: appTools/ToolMilling.py:1771 msgid "Both" msgstr "Ambas" @@ -10350,8 +10354,8 @@ msgid "\"Follow\"" msgstr "\"Seguir\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:568 -#: appTools/ToolCopperThieving.py:774 appTools/ToolCopperThieving.py:787 +#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:778 appTools/ToolCopperThieving.py:791 #: appTools/ToolIsolation.py:1360 appTools/ToolNCC.py:1807 #: appTools/ToolNCC.py:1834 appTools/ToolNCC.py:1942 appTools/ToolNCC.py:1955 #: appTools/ToolNCC.py:2857 appTools/ToolNCC.py:2962 appTools/ToolNCC.py:2977 @@ -10375,15 +10379,17 @@ msgstr "" "<>: ¡No cambie esto a menos que sepa lo que está haciendo!" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:71 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:296 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:844 appTools/ToolFilm.py:1106 -#: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 -#: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 -#: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 +#: appTools/ToolCopperThieving.py:1674 appTools/ToolFiducials.py:844 +#: appTools/ToolFilm.py:1106 appTools/ToolProperties.py:449 +#: appTools/ToolProperties.py:452 appTools/ToolProperties.py:455 +#: appTools/ToolProperties.py:483 appTools/ToolProperties.py:490 +#: appTools/ToolProperties.py:493 msgid "None" msgstr "Ninguno" @@ -10661,8 +10667,8 @@ msgid "Number of steps (lines) used to interpolate circles." msgstr "Número de pasos (líneas) utilizados para interpolar círculos." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolCopperThieving.py:1563 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:274 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolCopperThieving.py:1630 msgid "Clearance" msgstr "Despeje" @@ -10676,37 +10682,49 @@ msgstr "" "(el relleno de polígono puede dividirse en múltiples polígonos)\n" "y las huellas de cobre en el archivo Gerber." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:85 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: appTools/ToolCalculators.py:342 appTools/ToolCalculators.py:385 +#: appTools/ToolCopperThieving.py:1298 +msgid "Area" +msgstr "Zona" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appTools/ToolCopperThieving.py:1300 +msgid "Thieving areas with area less then this value will not be added." +msgstr "Robar áreas con un área menor a este valor no se agregará." + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:99 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1255 appTools/ToolNCC.py:4319 +#: appTools/ToolCopperThieving.py:1321 appTools/ToolNCC.py:4319 msgid "Itself" msgstr "Sí mismo" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:100 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1256 appTools/ToolIsolation.py:3391 +#: appTools/ToolCopperThieving.py:1322 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:4319 appTools/ToolPaint.py:3116 msgid "Area Selection" msgstr "Selección de área" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1257 appTools/ToolDblSided.py:761 +#: appTools/ToolCopperThieving.py:1323 appTools/ToolDblSided.py:761 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:4319 #: appTools/ToolPaint.py:3116 tclCommands/TclCommandPaint.py:166 msgid "Reference Object" msgstr "Objeto de referencia" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1259 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:103 +#: appTools/ToolCopperThieving.py:1325 msgid "Reference:" msgstr "Referencia:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:105 msgid "" "- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -10721,29 +10739,29 @@ msgstr "" "- 'Objeto de referencia': robará cobre dentro del área especificada por otro " "objeto." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:114 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1301 appTools/ToolExtractDrills.py:495 +#: appTools/ToolCopperThieving.py:1372 appTools/ToolExtractDrills.py:495 #: appTools/ToolExtractDrills.py:628 appTools/ToolPunchGerber.py:1068 #: appTools/ToolPunchGerber.py:1240 msgid "Rectangular" msgstr "Rectangular" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1302 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:115 +#: appTools/ToolCopperThieving.py:1373 msgid "Minimal" msgstr "Mínimo" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1304 appTools/ToolFilm.py:958 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:117 +#: appTools/ToolCopperThieving.py:1366 appTools/ToolFilm.py:958 msgid "Box Type:" msgstr "Tipo de cercado:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1306 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: appTools/ToolCopperThieving.py:1368 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10751,28 +10769,28 @@ msgstr "" "- 'Rectangular': el cuadro delimitador tendrá forma rectangular.\n" "- 'Mínimo': el cuadro delimitador tendrá forma de casco convexo." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1322 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:133 +#: appTools/ToolCopperThieving.py:1389 msgid "Dots Grid" msgstr "Cuadrícula de puntos" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1323 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: appTools/ToolCopperThieving.py:1390 msgid "Squares Grid" msgstr "Cuadrícula de cuadrados" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1324 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:135 +#: appTools/ToolCopperThieving.py:1391 msgid "Lines Grid" msgstr "Cuadrícula de líneas" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1326 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137 +#: appTools/ToolCopperThieving.py:1393 msgid "Fill Type:" msgstr "Tipo de relleno:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1328 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:139 +#: appTools/ToolCopperThieving.py:1395 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10786,58 +10804,58 @@ msgstr "" "cuadrados.\n" "- 'Cuadrícula de líneas': el área vacía se rellenará con un patrón de líneas." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1347 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:147 +#: appTools/ToolCopperThieving.py:1414 msgid "Dots Grid Parameters" msgstr "Parámetros de cuadrícula de puntos" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1353 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: appTools/ToolCopperThieving.py:1420 msgid "Dot diameter in Dots Grid." msgstr "Diámetro de punto en cuadrícula de puntos." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1366 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:166 +#: appTools/ToolCopperThieving.py:1433 msgid "Distance between each two dots in Dots Grid." msgstr "Distancia entre cada dos puntos en la cuadrícula de puntos." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1387 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:176 +#: appTools/ToolCopperThieving.py:1454 msgid "Squares Grid Parameters" msgstr "Parámetros de la cuadrícula de cuadrados" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1393 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: appTools/ToolCopperThieving.py:1460 msgid "Square side size in Squares Grid." msgstr "Tamaño del lado cuadrado en cuadrícula de cuadrados." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1406 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:195 +#: appTools/ToolCopperThieving.py:1473 msgid "Distance between each two squares in Squares Grid." msgstr "Distancia entre cada dos cuadrados en la cuadrícula de cuadrados." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1427 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:205 +#: appTools/ToolCopperThieving.py:1494 msgid "Lines Grid Parameters" msgstr "Parámetros de cuadrícula de líneas" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1433 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: appTools/ToolCopperThieving.py:1500 msgid "Line thickness size in Lines Grid." msgstr "Tamaño del grosor de línea en la cuadrícula de líneas." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1446 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:224 +#: appTools/ToolCopperThieving.py:1513 msgid "Distance between each two lines in Lines Grid." msgstr "Distancia entre cada dos líneas en la cuadrícula de líneas." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1485 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:234 +#: appTools/ToolCopperThieving.py:1552 msgid "Robber Bar Parameters" msgstr "Parámetros de la Robber Bar" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1487 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:236 +#: appTools/ToolCopperThieving.py:1554 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10845,35 +10863,35 @@ msgstr "" "Parámetros utilizados para la Robber Bar.\n" "Robber Bar = borde de cobre para ayudar en el enchapado de agujeros." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1495 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: appTools/ToolCopperThieving.py:1562 msgid "Bounding box margin for robber bar." msgstr "Margen límite del recinto para Robber Bar." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:255 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appTools/ToolCopperThieving.py:1506 appTools/ToolCorners.py:557 +#: appTools/ToolCopperThieving.py:1573 appTools/ToolCorners.py:560 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Espesor" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1508 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:257 +#: appTools/ToolCopperThieving.py:1575 msgid "The robber bar thickness." msgstr "El grosor de la Robber Bar." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1540 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:267 +#: appTools/ToolCopperThieving.py:1607 msgid "Pattern Plating Mask" msgstr "Máscara de baño de patrones" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1542 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:269 +#: appTools/ToolCopperThieving.py:1609 msgid "Generate a mask for pattern plating." msgstr "Genere una máscara para el enchapado de patrones." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1565 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:276 +#: appTools/ToolCopperThieving.py:1632 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10881,6 +10899,22 @@ msgstr "" "La distancia entre los posibles elementos de Copper Thieving.\n" "y / o Robber Bar y las aberturas reales en la máscara." +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:290 +#: appTools/ToolCopperThieving.py:1668 +msgid "Choose which additional geometry to include, if available." +msgstr "Elija qué geometría adicional incluir, si está disponible." + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:294 +#: appTools/ToolCopperThieving.py:499 appTools/ToolCopperThieving.py:503 +#: appTools/ToolCopperThieving.py:565 appTools/ToolCopperThieving.py:1672 +msgid "Thieving" +msgstr "Ladrón" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:295 +#: appTools/ToolCopperThieving.py:1673 +msgid "Robber bar" +msgstr "Barra de Ladrón" + #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 msgid "Calibration Tool Options" msgstr "Opc. de Herram. de Calibración" @@ -10890,7 +10924,7 @@ msgstr "Opc. de Herram. de Calibración" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1221 appTools/ToolCorners.py:538 +#: appTools/ToolCopperThieving.py:1264 appTools/ToolCorners.py:541 #: appTools/ToolFiducials.py:794 msgid "Parameters used for this tool." msgstr "Parámetros utilizados para esta herramienta." @@ -11238,7 +11272,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:49 -#: appTools/ToolCorners.py:550 appTools/ToolFiducials.py:864 +#: appTools/ToolCorners.py:553 appTools/ToolFiducials.py:864 msgid "Cross" msgstr "Cruce" @@ -11805,7 +11839,7 @@ msgid "Calculators Tool Options" msgstr "Opc. de herra. de calculadoras" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: appTools/ToolCalculators.py:152 +#: appTools/ToolCalculators.py:191 msgid "V-Shape Tool Calculator" msgstr "Calc. de herra. en forma de V" @@ -11821,12 +11855,12 @@ msgstr "" "Profundidad de corte como parámetros." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: appTools/ToolCalculators.py:220 +#: appTools/ToolCalculators.py:260 msgid "Tip Diameter" msgstr "Diá. de la punta" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: appTools/ToolCalculators.py:228 +#: appTools/ToolCalculators.py:268 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11835,7 +11869,7 @@ msgstr "" "Está especificado por el fabricante." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: appTools/ToolCalculators.py:231 +#: appTools/ToolCalculators.py:271 msgid "Tip Angle" msgstr "Ángulo de la punta" @@ -11856,12 +11890,12 @@ msgstr "" "En el objeto de trabajo CNC es el parámetro CutZ." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:154 +#: appTools/ToolCalculators.py:193 msgid "ElectroPlating Calculator" msgstr "Calculadora de electrochapado" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: appTools/ToolCalculators.py:284 +#: appTools/ToolCalculators.py:324 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium " @@ -11873,32 +11907,37 @@ msgstr "" "o cloruro de paladio." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: appTools/ToolCalculators.py:293 +#: appTools/ToolCalculators.py:349 msgid "Board Length" msgstr "Longitud del tablero" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: appTools/ToolCalculators.py:299 +#: appTools/ToolCalculators.py:350 msgid "This is the board length. In centimeters." msgstr "Esta es la longitud del tablero. En centímetros." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: appTools/ToolCalculators.py:301 +#: appTools/ToolCalculators.py:367 msgid "Board Width" msgstr "Ancho del tablero" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: appTools/ToolCalculators.py:307 +#: appTools/ToolCalculators.py:368 msgid "This is the board width.In centimeters." msgstr "Este es el ancho de la tabla. En centímetros." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: appTools/ToolCalculators.py:309 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:120 +#: appTools/ToolCalculators.py:386 +msgid "This is the board area." +msgstr "Esta es el área del PCB." + +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:130 +#: appTools/ToolCalculators.py:408 msgid "Current Density" msgstr "Densidad actual" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: appTools/ToolCalculators.py:316 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:136 +#: appTools/ToolCalculators.py:409 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -11906,13 +11945,13 @@ msgstr "" "Densidad de corriente para pasar por el tablero.\n" "En amperios por pies cuadrados ASF." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: appTools/ToolCalculators.py:319 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:142 +#: appTools/ToolCalculators.py:428 msgid "Copper Growth" msgstr "Crecimiento de cobre" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: appTools/ToolCalculators.py:326 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:148 +#: appTools/ToolCalculators.py:429 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -11925,32 +11964,32 @@ msgid "Corner Markers Options" msgstr "Opciones de Marca. de Esquina" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:545 +#: appTools/ToolCorners.py:548 msgid "Shape of the marker." msgstr "Forma del marcador." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:48 -#: appTools/ToolCorners.py:549 +#: appTools/ToolCorners.py:552 msgid "Semi-Cross" msgstr "Semi-Cruz" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:559 +#: appTools/ToolCorners.py:562 msgid "The thickness of the line that makes the corner marker." msgstr "El grosor de la línea que hace el marcador de esquina." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:85 -#: appTools/ToolCorners.py:573 +#: appTools/ToolCorners.py:576 msgid "The length of the line that makes the corner marker." msgstr "La longitud de la línea que hace el marcador de esquina." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:96 -#: appTools/ToolCorners.py:625 appTools/ToolDblSided.py:827 +#: appTools/ToolCorners.py:628 appTools/ToolDblSided.py:827 msgid "Drill Dia" msgstr "Diá. del Taladro" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:98 -#: appTools/ToolCorners.py:627 +#: appTools/ToolCorners.py:630 msgid "Drill Diameter" msgstr "Diá del Taladro" @@ -12308,18 +12347,18 @@ msgstr "" "Puede ser uno de los cuatro puntos del cuadro delimitador de geometría." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:509 appTools/ToolFiducials.py:723 +#: appTools/ToolCorners.py:512 appTools/ToolFiducials.py:723 #: appTools/ToolFilm.py:1069 msgid "Bottom Left" msgstr "Abajo a la izquierda" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:501 appTools/ToolFilm.py:1070 +#: appTools/ToolCorners.py:504 appTools/ToolFilm.py:1070 msgid "Top Left" msgstr "Arriba a la izquierda" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:513 appTools/ToolFilm.py:1071 +#: appTools/ToolCorners.py:516 appTools/ToolFilm.py:1071 msgid "Bottom Right" msgstr "Abajo a la derecha" @@ -12603,8 +12642,8 @@ msgstr "Progresivo" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:452 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1072 -#: appTools/ToolCorners.py:416 appTools/ToolFiducials.py:563 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1115 +#: appTools/ToolCorners.py:419 appTools/ToolFiducials.py:563 #: appTools/ToolMove.py:229 appTools/ToolQRCode.py:466 app_Main.py:4813 msgid "Plotting" msgstr "Trazado" @@ -13672,7 +13711,7 @@ msgstr "Generando Código CNC" msgid "CNCjob created" msgstr "CNCjob creado" -#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:586 +#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:593 #: appTools/ToolFilm.py:639 appTools/ToolFilm.py:883 #: appTools/ToolIsolation.py:930 appTools/ToolNCC.py:868 #: appTools/ToolOptimal.py:145 appTools/ToolPanelize.py:613 @@ -13794,7 +13833,8 @@ msgstr "Escalando..." msgid "Skewing..." msgstr "Sesgar..." -#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:152 +#: appObjects/FlatCAMObj.py:487 appTools/ToolCalculators.py:341 +#: appTools/ToolProperties.py:152 msgid "Dimensions" msgstr "Dimensiones" @@ -14164,9 +14204,9 @@ msgstr "" "Si solo se utiliza un punto, se supone que se traduce.\n" "Si se utilizan estos puntos, se supone traslación y rotación." -#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1617 -#: appTools/ToolCorners.py:654 appTools/ToolCutOut.py:2411 +#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:501 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1698 +#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2411 #: appTools/ToolDblSided.py:946 appTools/ToolDrilling.py:2649 #: appTools/ToolEtchCompensation.py:459 appTools/ToolExtractDrills.py:699 #: appTools/ToolFiducials.py:962 appTools/ToolFilm.py:1387 @@ -14180,9 +14220,9 @@ msgstr "" msgid "Reset Tool" msgstr "Restablecer la Herramienta" -#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1620 -#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2414 +#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:504 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1701 +#: appTools/ToolCorners.py:660 appTools/ToolCutOut.py:2414 #: appTools/ToolDblSided.py:949 appTools/ToolDrilling.py:2652 #: appTools/ToolEtchCompensation.py:462 appTools/ToolExtractDrills.py:702 #: appTools/ToolFiducials.py:965 appTools/ToolFilm.py:1390 @@ -14196,27 +14236,27 @@ msgstr "Restablecer la Herramienta" msgid "Will reset the tool parameters." msgstr "Restablecerá los parámetros de la herramienta." -#: appTools/ToolCalculators.py:77 +#: appTools/ToolCalculators.py:79 msgid "Calc. Tool" msgstr "Calc. Herramienta" -#: appTools/ToolCalculators.py:151 +#: appTools/ToolCalculators.py:190 msgid "Calculators" msgstr "Calculadoras" -#: appTools/ToolCalculators.py:153 +#: appTools/ToolCalculators.py:192 msgid "Units Calculator" msgstr "Calculadora de unidades" -#: appTools/ToolCalculators.py:196 +#: appTools/ToolCalculators.py:236 msgid "Here you enter the value to be converted from INCH to MM" msgstr "Aquí ingresa el valor a convertir de PULGADAS a MM" -#: appTools/ToolCalculators.py:201 +#: appTools/ToolCalculators.py:241 msgid "Here you enter the value to be converted from MM to INCH" msgstr "Aquí ingresa el valor a convertir de MM a PULGADA" -#: appTools/ToolCalculators.py:237 +#: appTools/ToolCalculators.py:277 msgid "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." @@ -14224,7 +14264,7 @@ msgstr "" "Este es el ángulo de la punta de la herramienta.\n" "Está especificado por el fabricante." -#: appTools/ToolCalculators.py:246 +#: appTools/ToolCalculators.py:286 msgid "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." @@ -14232,7 +14272,7 @@ msgstr "" "Esta es la profundidad para cortar el material.\n" "En el CNCJob se encuentra el parámetro CutZ." -#: appTools/ToolCalculators.py:254 +#: appTools/ToolCalculators.py:294 msgid "" "This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" @@ -14242,11 +14282,11 @@ msgstr "" "Sección FlatCAM Gerber.\n" "En la sección CNCJob se llama >diá. de herra.<." -#: appTools/ToolCalculators.py:265 appTools/ToolCalculators.py:361 +#: appTools/ToolCalculators.py:305 appTools/ToolCalculators.py:490 msgid "Calculate" msgstr "Calcular" -#: appTools/ToolCalculators.py:268 +#: appTools/ToolCalculators.py:309 msgid "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " @@ -14254,11 +14294,28 @@ msgstr "" "Calcule el corte Z o el diámetro efectivo de la herramienta,\n" "dependiendo de cuál se desee y cuál se conozca. " -#: appTools/ToolCalculators.py:331 +#: appTools/ToolCalculators.py:336 +msgid "Area Calculation" +msgstr "Cálculo de área" + +#: appTools/ToolCalculators.py:338 +msgid "Choose how to calculate the board area." +msgstr "Elija cómo calcular el área del PCB." + +#: appTools/ToolCalculators.py:356 appTools/ToolCalculators.py:374 +#: appTools/ToolCalculators.py:392 +msgid "cm" +msgstr "cm" + +#: appTools/ToolCalculators.py:437 +msgid "um" +msgstr "um" + +#: appTools/ToolCalculators.py:448 msgid "Current Value" msgstr "Valor actual" -#: appTools/ToolCalculators.py:338 +#: appTools/ToolCalculators.py:449 msgid "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." @@ -14266,11 +14323,11 @@ msgstr "" "Este es el valor de intensidad actual\n" "para configurar en la fuente de alimentación. En amperios." -#: appTools/ToolCalculators.py:342 +#: appTools/ToolCalculators.py:469 msgid "Time" msgstr "Hora" -#: appTools/ToolCalculators.py:349 +#: appTools/ToolCalculators.py:470 msgid "" "This is the calculated time required for the procedure.\n" "In minutes." @@ -14278,7 +14335,7 @@ msgstr "" "Este es el tiempo calculado requerido para el procedimiento.\n" "En minutos." -#: appTools/ToolCalculators.py:364 +#: appTools/ToolCalculators.py:493 msgid "" "Calculate the current intensity value and the procedure time,\n" "depending on the parameters above" @@ -14589,45 +14646,45 @@ msgstr "" "Ajustar (escalar y / o sesgar) los objetos\n" "con los factores determinados anteriormente." -#: appTools/ToolCopperThieving.py:184 appTools/ToolCopperThieving.py:209 +#: appTools/ToolCopperThieving.py:186 appTools/ToolCopperThieving.py:211 msgid "Lines Grid works only for 'itself' reference ..." msgstr "La cuadrícula de líneas funciona solo para referencia 'sí mismo' ..." -#: appTools/ToolCopperThieving.py:195 +#: appTools/ToolCopperThieving.py:197 msgid "Solid fill selected." msgstr "Relleno sólido seleccionado." -#: appTools/ToolCopperThieving.py:200 +#: appTools/ToolCopperThieving.py:202 msgid "Dots grid fill selected." msgstr "Relleno de cuadrícula de puntos seleccionado." -#: appTools/ToolCopperThieving.py:205 +#: appTools/ToolCopperThieving.py:207 msgid "Squares grid fill selected." msgstr "Rellenar cuadrícula de cuadrados seleccionados." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:324 -#: appTools/ToolCopperThieving.py:936 appTools/ToolCorners.py:127 -#: appTools/ToolCorners.py:353 appTools/ToolDblSided.py:307 +#: appTools/ToolCopperThieving.py:229 appTools/ToolCopperThieving.py:327 +#: appTools/ToolCopperThieving.py:946 appTools/ToolCorners.py:127 +#: appTools/ToolCorners.py:350 appTools/ToolDblSided.py:307 #: appTools/ToolExtractDrills.py:141 appTools/ToolFiducials.py:191 #: appTools/ToolFiducials.py:482 appTools/ToolOptimal.py:138 #: appTools/ToolPunchGerber.py:381 appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "No hay ningún objeto Gerber cargado ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 +#: appTools/ToolCopperThieving.py:242 appTools/ToolCopperThieving.py:847 msgid "Append geometry" msgstr "Añadir geometría" -#: appTools/ToolCopperThieving.py:294 appTools/ToolCopperThieving.py:889 -#: appTools/ToolCopperThieving.py:1048 +#: appTools/ToolCopperThieving.py:297 appTools/ToolCopperThieving.py:898 +#: appTools/ToolCopperThieving.py:1091 msgid "Append source file" msgstr "Agregar archivo fuente" -#: appTools/ToolCopperThieving.py:307 appTools/ToolCopperThieving.py:902 +#: appTools/ToolCopperThieving.py:310 appTools/ToolCopperThieving.py:911 msgid "Copper Thieving Tool done." msgstr "Herramienta Copper Thieving hecha." -#: appTools/ToolCopperThieving.py:334 appTools/ToolCopperThieving.py:354 +#: appTools/ToolCopperThieving.py:337 appTools/ToolCopperThieving.py:357 #: appTools/ToolCutOut.py:551 appTools/ToolCutOut.py:927 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 @@ -14643,72 +14700,67 @@ msgstr "Herramienta Copper Thieving hecha." msgid "Could not retrieve object" msgstr "No se pudo recuperar el objeto" -#: appTools/ToolCopperThieving.py:382 +#: appTools/ToolCopperThieving.py:385 msgid "Click the end point of the filling area." msgstr "Haga clic en el punto final del área de relleno." -#: appTools/ToolCopperThieving.py:496 appTools/ToolCopperThieving.py:500 -#: appTools/ToolCopperThieving.py:558 -msgid "Thieving" -msgstr "Ladrón" - -#: appTools/ToolCopperThieving.py:507 +#: appTools/ToolCopperThieving.py:510 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Herramienta de Copper Thieving iniciada. Parámetros de lectura." -#: appTools/ToolCopperThieving.py:532 +#: appTools/ToolCopperThieving.py:536 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Herramienta Copper Thieving. Preparación de polígonos de aislamiento." -#: appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:582 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "" "Herramienta Copper Thieving. Preparación de áreas para rellenar con cobre." -#: appTools/ToolCopperThieving.py:619 +#: appTools/ToolCopperThieving.py:626 msgid "Geometry not supported for bounding box" msgstr "Geometría no admitida para cuadro delimitador" -#: appTools/ToolCopperThieving.py:625 appTools/ToolNCC.py:1695 +#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1695 #: appTools/ToolNCC.py:1750 appTools/ToolNCC.py:2744 appTools/ToolPaint.py:2468 msgid "No object available." msgstr "No hay objeto disponible." -#: appTools/ToolCopperThieving.py:662 appTools/ToolNCC.py:1720 +#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1720 #: appTools/ToolNCC.py:1773 appTools/ToolNCC.py:2786 msgid "The reference object type is not supported." msgstr "El tipo de objeto de referencia no es compatible." -#: appTools/ToolCopperThieving.py:667 +#: appTools/ToolCopperThieving.py:674 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "" "Herramienta Coppe Thieving. Anexar nueva geometría y almacenamiento en búfer." -#: appTools/ToolCopperThieving.py:683 +#: appTools/ToolCopperThieving.py:710 msgid "Create geometry" msgstr "Crear geometría" -#: appTools/ToolCopperThieving.py:913 appTools/ToolCopperThieving.py:917 +#: appTools/ToolCopperThieving.py:922 appTools/ToolCopperThieving.py:926 msgid "P-Plating Mask" msgstr "Mascarilla P" -#: appTools/ToolCopperThieving.py:939 +#: appTools/ToolCopperThieving.py:949 msgid "Append PP-M geometry" msgstr "Añadir geometría de máscara de recubrimiento P" -#: appTools/ToolCopperThieving.py:1068 +#: appTools/ToolCopperThieving.py:1111 msgid "Generating Pattern Plating Mask done." msgstr "Generando patrón de recubrimiento de máscara hecho." -#: appTools/ToolCopperThieving.py:1111 +#: appTools/ToolCopperThieving.py:1154 msgid "Copper Thieving Tool exit." msgstr "Salida de herramienta de Copper Thieving." -#: appTools/ToolCopperThieving.py:1202 appTools/ToolFiducials.py:904 +#: appTools/ToolCopperThieving.py:1245 appTools/ToolFiducials.py:904 msgid "Gerber Object to which will be added a copper thieving." msgstr "Gerber Objeto al que se agregará un Copper Thieving." -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1271 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14718,7 +14770,15 @@ msgstr "" "(el relleno de polígono puede dividirse en múltiples polígonos)\n" "y las rastros de cobre en el archivo Gerber." -#: appTools/ToolCopperThieving.py:1261 +#: appTools/ToolCopperThieving.py:1309 appTools/ToolCopperThieving.py:1657 +msgid "mm" +msgstr "mm" + +#: appTools/ToolCopperThieving.py:1311 appTools/ToolCopperThieving.py:1659 +msgid "in" +msgstr "in" + +#: appTools/ToolCopperThieving.py:1327 msgid "" "- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -14733,12 +14793,12 @@ msgstr "" "- 'Objeto de referencia': 'Copper Thieving' dentro del área especificada por " "otro objeto." -#: appTools/ToolCopperThieving.py:1268 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1334 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4336 appTools/ToolPaint.py:3126 msgid "Ref. Type" msgstr "Tipo de Ref" -#: appTools/ToolCopperThieving.py:1270 +#: appTools/ToolCopperThieving.py:1336 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14747,22 +14807,22 @@ msgstr "" "Thieving'.\n" "Puede ser Gerber, Excellon o Geometry." -#: appTools/ToolCopperThieving.py:1279 appTools/ToolIsolation.py:3409 +#: appTools/ToolCopperThieving.py:1345 appTools/ToolIsolation.py:3409 #: appTools/ToolNCC.py:4346 appTools/ToolPaint.py:3136 msgid "Ref. Object" msgstr "Objeto de Ref" -#: appTools/ToolCopperThieving.py:1281 appTools/ToolIsolation.py:3411 +#: appTools/ToolCopperThieving.py:1347 appTools/ToolIsolation.py:3411 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3138 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "" "El objeto FlatCAM que se utilizará como referencia de compensación sin cobre." -#: appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCopperThieving.py:1524 msgid "Insert Copper thieving" msgstr "Insertar Copper thieving" -#: appTools/ToolCopperThieving.py:1460 +#: appTools/ToolCopperThieving.py:1527 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14770,11 +14830,11 @@ msgstr "" "Agregará un polígono (puede dividirse en varias partes)\n" "eso rodeará las huellas reales de Gerber a cierta distancia." -#: appTools/ToolCopperThieving.py:1519 +#: appTools/ToolCopperThieving.py:1586 msgid "Insert Robber Bar" msgstr "Insertar Robber Bar" -#: appTools/ToolCopperThieving.py:1522 +#: appTools/ToolCopperThieving.py:1589 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14786,11 +14846,11 @@ msgstr "" "a cierta distancia.\n" "Se requiere cuando se hace un patrón de agujeros." -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1613 msgid "Select Soldermask object" msgstr "Seleccionar objeto Soldermask" -#: appTools/ToolCopperThieving.py:1548 +#: appTools/ToolCopperThieving.py:1615 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14800,11 +14860,11 @@ msgstr "" "Se utilizará como base para\n" "El patrón de la máscara de recubrimiento." -#: appTools/ToolCopperThieving.py:1577 +#: appTools/ToolCopperThieving.py:1644 msgid "Plated area" msgstr "Área chapada" -#: appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCopperThieving.py:1646 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14823,19 +14883,11 @@ msgstr "" "un poco más grande que las almohadillas de cobre, y esta área es\n" "calculado a partir de las aberturas de la máscara de soldadura." -#: appTools/ToolCopperThieving.py:1590 -msgid "mm" -msgstr "mm" - -#: appTools/ToolCopperThieving.py:1592 -msgid "in" -msgstr "in" - -#: appTools/ToolCopperThieving.py:1599 +#: appTools/ToolCopperThieving.py:1680 msgid "Generate pattern plating mask" msgstr "Generar máscara de recubrimiento de patrón" -#: appTools/ToolCopperThieving.py:1602 +#: appTools/ToolCopperThieving.py:1683 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14849,7 +14901,7 @@ msgstr "" msgid "Corners Tool" msgstr "Herramienta de Esquinas" -#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:343 +#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:355 msgid "Please select at least a location" msgstr "Seleccione al menos una ubicación" @@ -14857,51 +14909,51 @@ msgstr "Seleccione al menos una ubicación" msgid "The tool diameter is zero." msgstr "El diámetro de la herramienta es cero." -#: appTools/ToolCorners.py:412 +#: appTools/ToolCorners.py:415 msgid "Excellon object with corner drills created." msgstr "Objeto Excellon con taladros de esquina creados." -#: appTools/ToolCorners.py:447 +#: appTools/ToolCorners.py:450 msgid "A Gerber object with corner markers was created." msgstr "Se creó un objeto Gerber con marcadores de esquina." -#: appTools/ToolCorners.py:474 +#: appTools/ToolCorners.py:477 msgid "The Gerber object to which will be added corner markers." msgstr "El objeto Gerber al que se agregarán marcadores de esquina." -#: appTools/ToolCorners.py:490 +#: appTools/ToolCorners.py:493 msgid "Locations" msgstr "Localizaciones" -#: appTools/ToolCorners.py:492 +#: appTools/ToolCorners.py:495 msgid "Locations where to place corner markers." msgstr "Lugares donde colocar marcadores de esquina." -#: appTools/ToolCorners.py:505 appTools/ToolFiducials.py:735 +#: appTools/ToolCorners.py:508 appTools/ToolFiducials.py:735 msgid "Top Right" msgstr "Arriba a la derecha" -#: appTools/ToolCorners.py:522 +#: appTools/ToolCorners.py:525 msgid "Toggle ALL" msgstr "Alternar Todo" -#: appTools/ToolCorners.py:602 +#: appTools/ToolCorners.py:605 msgid "Add Marker" msgstr "Agregar Marcador" -#: appTools/ToolCorners.py:605 +#: appTools/ToolCorners.py:608 msgid "Will add corner markers to the selected Gerber file." msgstr "Agregará marcadores de esquina al archivo Gerber seleccionado." -#: appTools/ToolCorners.py:621 +#: appTools/ToolCorners.py:624 msgid "Drills in Corners" msgstr "Taladros en esquinas" -#: appTools/ToolCorners.py:638 appTools/ToolDblSided.py:928 +#: appTools/ToolCorners.py:641 appTools/ToolDblSided.py:928 msgid "Create Excellon Object" msgstr "Crear objeto Excellon" -#: appTools/ToolCorners.py:641 +#: appTools/ToolCorners.py:644 msgid "Will add drill holes in the center of the markers." msgstr "Agregará taladros en el centro de los marcadores." @@ -19936,11 +19988,11 @@ msgstr "" msgid "G91 coordinates not implemented ..." msgstr "Coordenadas G91 no implementadas ..." -#: defaults.py:867 +#: defaults.py:870 msgid "Could not load defaults file." msgstr "No se pudo cargar el archivo predeterminado." -#: defaults.py:880 +#: defaults.py:883 msgid "Failed to parse defaults file." msgstr "Error al analizar el archivo predeterminado." @@ -21688,9 +21740,6 @@ msgstr "" #~ "hacia el interior.
basado en semillas : hacia afuera desde " #~ "el origen.
basado en líneas : Líneas paralelas." -#~ msgid "Area" -#~ msgstr "Zona" - #~ msgid "Ref" #~ msgstr "Ref" diff --git a/locale/fr/LC_MESSAGES/strings.mo b/locale/fr/LC_MESSAGES/strings.mo index c6355790edc5d10eb56b031188ae3d4b83964527..96b3afc9d2994e1d790ae2d739fc2aae4528ed9c 100644 GIT binary patch delta 72678 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 u^5ouGtYz3;#m0PI7>: Ne changez cela que si vous savez ce que vous faites !!!" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:71 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:296 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:844 appTools/ToolFilm.py:1106 -#: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 -#: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 -#: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 +#: appTools/ToolCopperThieving.py:1674 appTools/ToolFiducials.py:844 +#: appTools/ToolFilm.py:1106 appTools/ToolProperties.py:449 +#: appTools/ToolProperties.py:452 appTools/ToolProperties.py:455 +#: appTools/ToolProperties.py:483 appTools/ToolProperties.py:490 +#: appTools/ToolProperties.py:493 msgid "None" msgstr "Aucun" @@ -10663,8 +10669,8 @@ msgid "Number of steps (lines) used to interpolate circles." msgstr "Nombre d'étapes (lignes) utilisées pour interpoler les cercles." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolCopperThieving.py:1563 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:274 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolCopperThieving.py:1630 msgid "Clearance" msgstr "Dégagement" @@ -10678,37 +10684,49 @@ msgstr "" "(le remplissage du polygone peut être divisé en plusieurs polygones)\n" "et les traces de cuivre dans le fichier Gerber." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:85 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: appTools/ToolCalculators.py:342 appTools/ToolCalculators.py:385 +#: appTools/ToolCopperThieving.py:1298 +msgid "Area" +msgstr "Zone" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appTools/ToolCopperThieving.py:1300 +msgid "Thieving areas with area less then this value will not be added." +msgstr "" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:99 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1255 appTools/ToolNCC.py:4319 +#: appTools/ToolCopperThieving.py:1321 appTools/ToolNCC.py:4319 msgid "Itself" msgstr "Lui-même" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:100 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1256 appTools/ToolIsolation.py:3391 +#: appTools/ToolCopperThieving.py:1322 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:4319 appTools/ToolPaint.py:3116 msgid "Area Selection" msgstr "Sélection de zone" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1257 appTools/ToolDblSided.py:761 +#: appTools/ToolCopperThieving.py:1323 appTools/ToolDblSided.py:761 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:4319 #: appTools/ToolPaint.py:3116 tclCommands/TclCommandPaint.py:166 msgid "Reference Object" msgstr "Objet de référence" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1259 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:103 +#: appTools/ToolCopperThieving.py:1325 msgid "Reference:" msgstr "Référence:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:105 msgid "" "- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -10723,29 +10741,29 @@ msgstr "" "- «Objet de référence» - effectuera un vol de cuivre dans la zone spécifiée " "par un autre objet." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:114 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1301 appTools/ToolExtractDrills.py:495 +#: appTools/ToolCopperThieving.py:1372 appTools/ToolExtractDrills.py:495 #: appTools/ToolExtractDrills.py:628 appTools/ToolPunchGerber.py:1068 #: appTools/ToolPunchGerber.py:1240 msgid "Rectangular" msgstr "Rectangulaire" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1302 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:115 +#: appTools/ToolCopperThieving.py:1373 msgid "Minimal" msgstr "Minimal" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1304 appTools/ToolFilm.py:958 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:117 +#: appTools/ToolCopperThieving.py:1366 appTools/ToolFilm.py:958 msgid "Box Type:" msgstr "Type de Box:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1306 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: appTools/ToolCopperThieving.py:1368 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10753,28 +10771,28 @@ msgstr "" "- 'Rectangulaire' - le cadre de délimitation sera de forme rectangulaire.\n" "- 'Minimal' - le cadre de délimitation aura la forme d'une coque convexe." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1322 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:133 +#: appTools/ToolCopperThieving.py:1389 msgid "Dots Grid" msgstr "Grille de points" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1323 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: appTools/ToolCopperThieving.py:1390 msgid "Squares Grid" msgstr "Grille de carrés" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1324 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:135 +#: appTools/ToolCopperThieving.py:1391 msgid "Lines Grid" msgstr "Grille de lignes" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1326 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137 +#: appTools/ToolCopperThieving.py:1393 msgid "Fill Type:" msgstr "Type de remplissage:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1328 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:139 +#: appTools/ToolCopperThieving.py:1395 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10786,58 +10804,58 @@ msgstr "" "- 'Grille de carrés' - la zone vide sera remplie d'un motif de carrés.\n" "- 'Grille de lignes' - la zone vide sera remplie d'un motif de lignes." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1347 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:147 +#: appTools/ToolCopperThieving.py:1414 msgid "Dots Grid Parameters" msgstr "Paramètres de la grille de points" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1353 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: appTools/ToolCopperThieving.py:1420 msgid "Dot diameter in Dots Grid." msgstr "Diamètre des points dans la grille des points." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1366 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:166 +#: appTools/ToolCopperThieving.py:1433 msgid "Distance between each two dots in Dots Grid." msgstr "Distance entre deux points dans la grille de points." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1387 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:176 +#: appTools/ToolCopperThieving.py:1454 msgid "Squares Grid Parameters" msgstr "Paramètres de la grille des carrés" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1393 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: appTools/ToolCopperThieving.py:1460 msgid "Square side size in Squares Grid." msgstr "Taille du côté carré dans la grille des carrés." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1406 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:195 +#: appTools/ToolCopperThieving.py:1473 msgid "Distance between each two squares in Squares Grid." msgstr "Distance entre deux carrés dans la grille des carrés." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1427 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:205 +#: appTools/ToolCopperThieving.py:1494 msgid "Lines Grid Parameters" msgstr "Paramètres de grille de lignes" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1433 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: appTools/ToolCopperThieving.py:1500 msgid "Line thickness size in Lines Grid." msgstr "Taille d'épaisseur de ligne dans la grille de lignes." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1446 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:224 +#: appTools/ToolCopperThieving.py:1513 msgid "Distance between each two lines in Lines Grid." msgstr "Distance entre deux lignes dans la grille de lignes." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1485 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:234 +#: appTools/ToolCopperThieving.py:1552 msgid "Robber Bar Parameters" msgstr "Paramètres de la Robber Bar" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1487 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:236 +#: appTools/ToolCopperThieving.py:1554 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10845,35 +10863,35 @@ msgstr "" "Paramètres utilisés pour la Robber Bar.\n" "Robber Bar = bordure en cuivre pour faciliter le placage des trous." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1495 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: appTools/ToolCopperThieving.py:1562 msgid "Bounding box margin for robber bar." msgstr "Marge de la zone de délimitation pour la Robber Bar." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:255 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appTools/ToolCopperThieving.py:1506 appTools/ToolCorners.py:557 +#: appTools/ToolCopperThieving.py:1573 appTools/ToolCorners.py:560 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Épaisseur" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1508 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:257 +#: appTools/ToolCopperThieving.py:1575 msgid "The robber bar thickness." msgstr "L'épaisseur de la Robber Bar." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1540 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:267 +#: appTools/ToolCopperThieving.py:1607 msgid "Pattern Plating Mask" msgstr "Masque de placage de motifs" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1542 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:269 +#: appTools/ToolCopperThieving.py:1609 msgid "Generate a mask for pattern plating." msgstr "Générez un masque pour le placage de motifs." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1565 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:276 +#: appTools/ToolCopperThieving.py:1632 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10881,6 +10899,24 @@ msgstr "" "La distance entre les éléments de Copper Thieving possibles\n" "et / ou Robber Bar et les ouvertures réelles dans le masque." +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:290 +#: appTools/ToolCopperThieving.py:1668 +msgid "Choose which additional geometry to include, if available." +msgstr "" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:294 +#: appTools/ToolCopperThieving.py:499 appTools/ToolCopperThieving.py:503 +#: appTools/ToolCopperThieving.py:565 appTools/ToolCopperThieving.py:1672 +msgid "Thieving" +msgstr "Voleur" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:295 +#: appTools/ToolCopperThieving.py:1673 +#, fuzzy +#| msgid "Insert Robber Bar" +msgid "Robber bar" +msgstr "Insérer une Robber Bar" + #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 msgid "Calibration Tool Options" msgstr "Options de l'outil d'Étalonnage" @@ -10890,7 +10926,7 @@ msgstr "Options de l'outil d'Étalonnage" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1221 appTools/ToolCorners.py:538 +#: appTools/ToolCopperThieving.py:1264 appTools/ToolCorners.py:541 #: appTools/ToolFiducials.py:794 msgid "Parameters used for this tool." msgstr "Paramètres utilisés pour cet outil." @@ -11235,7 +11271,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:49 -#: appTools/ToolCorners.py:550 appTools/ToolFiducials.py:864 +#: appTools/ToolCorners.py:553 appTools/ToolFiducials.py:864 msgid "Cross" msgstr "Croix" @@ -11798,7 +11834,7 @@ msgid "Calculators Tool Options" msgstr "Options de l'Outil Calcul" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: appTools/ToolCalculators.py:152 +#: appTools/ToolCalculators.py:191 msgid "V-Shape Tool Calculator" msgstr "Calculateur d'Outils en V" @@ -11813,12 +11849,12 @@ msgstr "" "profondeur de coupe en tant que paramètres." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: appTools/ToolCalculators.py:220 +#: appTools/ToolCalculators.py:260 msgid "Tip Diameter" msgstr "Diam de la pointe" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: appTools/ToolCalculators.py:228 +#: appTools/ToolCalculators.py:268 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11827,7 +11863,7 @@ msgstr "" "Il est spécifié par le fabricant." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: appTools/ToolCalculators.py:231 +#: appTools/ToolCalculators.py:271 msgid "Tip Angle" msgstr "Angle de pointe" @@ -11848,12 +11884,12 @@ msgstr "" "Dans l'objet CNCJob, il s'agit du paramètre CutZ." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:154 +#: appTools/ToolCalculators.py:193 msgid "ElectroPlating Calculator" msgstr "Calculateur d'électrodéposition" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: appTools/ToolCalculators.py:284 +#: appTools/ToolCalculators.py:324 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium " @@ -11865,32 +11901,39 @@ msgstr "" "calcium ou le chlorure de palladium." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: appTools/ToolCalculators.py:293 +#: appTools/ToolCalculators.py:349 msgid "Board Length" msgstr "Longueur" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: appTools/ToolCalculators.py:299 +#: appTools/ToolCalculators.py:350 msgid "This is the board length. In centimeters." msgstr "Ceci est la longueur du conseil. En centimètres." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: appTools/ToolCalculators.py:301 +#: appTools/ToolCalculators.py:367 msgid "Board Width" msgstr "Largeur" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: appTools/ToolCalculators.py:307 +#: appTools/ToolCalculators.py:368 msgid "This is the board width.In centimeters." msgstr "C'est la largeur de la planche.En centimètres." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: appTools/ToolCalculators.py:309 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:120 +#: appTools/ToolCalculators.py:386 +#, fuzzy +#| msgid "This is the Area ID." +msgid "This is the board area." +msgstr "Il s'agit de l'ID de zone." + +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:130 +#: appTools/ToolCalculators.py:408 msgid "Current Density" msgstr "Densité de courant" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: appTools/ToolCalculators.py:316 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:136 +#: appTools/ToolCalculators.py:409 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -11898,13 +11941,13 @@ msgstr "" "Densité de courant électrique à traverser le tableau.\n" "En ampères par pieds carrés ASF." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: appTools/ToolCalculators.py:319 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:142 +#: appTools/ToolCalculators.py:428 msgid "Copper Growth" msgstr "Croissance du cuivre" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: appTools/ToolCalculators.py:326 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:148 +#: appTools/ToolCalculators.py:429 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -11917,32 +11960,32 @@ msgid "Corner Markers Options" msgstr "Options des Marqueurs de Coin" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:545 +#: appTools/ToolCorners.py:548 msgid "Shape of the marker." msgstr "Forme du marqueur." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:48 -#: appTools/ToolCorners.py:549 +#: appTools/ToolCorners.py:552 msgid "Semi-Cross" msgstr "Semi-croisé" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:559 +#: appTools/ToolCorners.py:562 msgid "The thickness of the line that makes the corner marker." msgstr "L'épaisseur de la ligne qui fait le marqueur de coin." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:85 -#: appTools/ToolCorners.py:573 +#: appTools/ToolCorners.py:576 msgid "The length of the line that makes the corner marker." msgstr "La longueur de la ligne qui fait le marqueur de coin." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:96 -#: appTools/ToolCorners.py:625 appTools/ToolDblSided.py:827 +#: appTools/ToolCorners.py:628 appTools/ToolDblSided.py:827 msgid "Drill Dia" msgstr "Forage Dia" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:98 -#: appTools/ToolCorners.py:627 +#: appTools/ToolCorners.py:630 msgid "Drill Diameter" msgstr "Diam. de forage" @@ -12299,18 +12342,18 @@ msgstr "" "Ce peut être l'un des quatre points de la boîte englobante de la géométrie." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:509 appTools/ToolFiducials.py:723 +#: appTools/ToolCorners.py:512 appTools/ToolFiducials.py:723 #: appTools/ToolFilm.py:1069 msgid "Bottom Left" msgstr "En bas à gauche" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:501 appTools/ToolFilm.py:1070 +#: appTools/ToolCorners.py:504 appTools/ToolFilm.py:1070 msgid "Top Left" msgstr "En haut à gauche" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:513 appTools/ToolFilm.py:1071 +#: appTools/ToolCorners.py:516 appTools/ToolFilm.py:1071 msgid "Bottom Right" msgstr "En bas à droite" @@ -12591,8 +12634,8 @@ msgstr "Progressif" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:452 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1072 -#: appTools/ToolCorners.py:416 appTools/ToolFiducials.py:563 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1115 +#: appTools/ToolCorners.py:419 appTools/ToolFiducials.py:563 #: appTools/ToolMove.py:229 appTools/ToolQRCode.py:466 app_Main.py:4813 msgid "Plotting" msgstr "Traçage" @@ -13649,7 +13692,7 @@ msgstr "Génération de code CNC" msgid "CNCjob created" msgstr "CNCjob créé" -#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:586 +#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:593 #: appTools/ToolFilm.py:639 appTools/ToolFilm.py:883 #: appTools/ToolIsolation.py:930 appTools/ToolNCC.py:868 #: appTools/ToolOptimal.py:145 appTools/ToolPanelize.py:613 @@ -13771,7 +13814,8 @@ msgstr "Mise à l'échelle..." msgid "Skewing..." msgstr "Inclinaison..." -#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:152 +#: appObjects/FlatCAMObj.py:487 appTools/ToolCalculators.py:341 +#: appTools/ToolProperties.py:152 msgid "Dimensions" msgstr "Dimensions" @@ -14141,9 +14185,9 @@ msgstr "" "Si un seul point est utilisé, il suppose la traduction.\n" "Si ces points sont utilisés, cela suppose une translation et une rotation." -#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1617 -#: appTools/ToolCorners.py:654 appTools/ToolCutOut.py:2411 +#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:501 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1698 +#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2411 #: appTools/ToolDblSided.py:946 appTools/ToolDrilling.py:2649 #: appTools/ToolEtchCompensation.py:459 appTools/ToolExtractDrills.py:699 #: appTools/ToolFiducials.py:962 appTools/ToolFilm.py:1387 @@ -14157,9 +14201,9 @@ msgstr "" msgid "Reset Tool" msgstr "Réinitialiser l'outil" -#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1620 -#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2414 +#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:504 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1701 +#: appTools/ToolCorners.py:660 appTools/ToolCutOut.py:2414 #: appTools/ToolDblSided.py:949 appTools/ToolDrilling.py:2652 #: appTools/ToolEtchCompensation.py:462 appTools/ToolExtractDrills.py:702 #: appTools/ToolFiducials.py:965 appTools/ToolFilm.py:1390 @@ -14173,27 +14217,27 @@ msgstr "Réinitialiser l'outil" msgid "Will reset the tool parameters." msgstr "Réinitialise les paramètres de l'outil." -#: appTools/ToolCalculators.py:77 +#: appTools/ToolCalculators.py:79 msgid "Calc. Tool" msgstr "Calc. Outil" -#: appTools/ToolCalculators.py:151 +#: appTools/ToolCalculators.py:190 msgid "Calculators" msgstr "Calculatrices" -#: appTools/ToolCalculators.py:153 +#: appTools/ToolCalculators.py:192 msgid "Units Calculator" msgstr "Calculateur d'unités" -#: appTools/ToolCalculators.py:196 +#: appTools/ToolCalculators.py:236 msgid "Here you enter the value to be converted from INCH to MM" msgstr "Ici, vous entrez la valeur à convertir de Pouce en MM" -#: appTools/ToolCalculators.py:201 +#: appTools/ToolCalculators.py:241 msgid "Here you enter the value to be converted from MM to INCH" msgstr "Ici, vous entrez la valeur à convertir de MM en Pouces" -#: appTools/ToolCalculators.py:237 +#: appTools/ToolCalculators.py:277 msgid "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." @@ -14201,7 +14245,7 @@ msgstr "" "C'est l'angle de la pointe de l'outil.\n" "Il est spécifié par le fabricant." -#: appTools/ToolCalculators.py:246 +#: appTools/ToolCalculators.py:286 msgid "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." @@ -14209,7 +14253,7 @@ msgstr "" "C'est la profondeur à couper dans le matériau.\n" "Dans le CNCJob est le paramètre CutZ." -#: appTools/ToolCalculators.py:254 +#: appTools/ToolCalculators.py:294 msgid "" "This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" @@ -14219,11 +14263,11 @@ msgstr "" "Section FlatCAM Gerber.\n" "Dans la section CNCJob, cela s'appelle >Tool dia<." -#: appTools/ToolCalculators.py:265 appTools/ToolCalculators.py:361 +#: appTools/ToolCalculators.py:305 appTools/ToolCalculators.py:490 msgid "Calculate" msgstr "Calculer" -#: appTools/ToolCalculators.py:268 +#: appTools/ToolCalculators.py:309 msgid "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " @@ -14231,11 +14275,30 @@ msgstr "" "Calculez la coupe Z ou le diamètre d'outil effectif,\n" "selon ce qui est souhaité et ce qui est connu. " -#: appTools/ToolCalculators.py:331 +#: appTools/ToolCalculators.py:336 +#, fuzzy +#| msgid "Area Selection" +msgid "Area Calculation" +msgstr "Sélection de zone" + +#: appTools/ToolCalculators.py:338 +msgid "Choose how to calculate the board area." +msgstr "" + +#: appTools/ToolCalculators.py:356 appTools/ToolCalculators.py:374 +#: appTools/ToolCalculators.py:392 +msgid "cm" +msgstr "" + +#: appTools/ToolCalculators.py:437 +msgid "um" +msgstr "" + +#: appTools/ToolCalculators.py:448 msgid "Current Value" msgstr "Valeur du courant" -#: appTools/ToolCalculators.py:338 +#: appTools/ToolCalculators.py:449 msgid "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." @@ -14243,11 +14306,11 @@ msgstr "" "C'est la valeur d'intensité actuelle\n" "à régler sur l’alimentation. En ampères." -#: appTools/ToolCalculators.py:342 +#: appTools/ToolCalculators.py:469 msgid "Time" msgstr "Temps" -#: appTools/ToolCalculators.py:349 +#: appTools/ToolCalculators.py:470 msgid "" "This is the calculated time required for the procedure.\n" "In minutes." @@ -14255,7 +14318,7 @@ msgstr "" "C'est le temps calculé requis pour la procédure.\n" "En quelques minutes." -#: appTools/ToolCalculators.py:364 +#: appTools/ToolCalculators.py:493 msgid "" "Calculate the current intensity value and the procedure time,\n" "depending on the parameters above" @@ -14569,46 +14632,46 @@ msgstr "" "Ajustez (redimensionnez et / ou inclinez) les objets\n" "avec les facteurs déterminés ci-dessus." -#: appTools/ToolCopperThieving.py:184 appTools/ToolCopperThieving.py:209 +#: appTools/ToolCopperThieving.py:186 appTools/ToolCopperThieving.py:211 msgid "Lines Grid works only for 'itself' reference ..." msgstr "" "La grille de lignes fonctionne uniquement pour la référence «elle-même» ..." -#: appTools/ToolCopperThieving.py:195 +#: appTools/ToolCopperThieving.py:197 msgid "Solid fill selected." msgstr "Remplissage solide sélectionné." -#: appTools/ToolCopperThieving.py:200 +#: appTools/ToolCopperThieving.py:202 msgid "Dots grid fill selected." msgstr "Remplissage de la grille de points sélectionné." -#: appTools/ToolCopperThieving.py:205 +#: appTools/ToolCopperThieving.py:207 msgid "Squares grid fill selected." msgstr "Remplissage de la grille des carrés sélectionné." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:324 -#: appTools/ToolCopperThieving.py:936 appTools/ToolCorners.py:127 -#: appTools/ToolCorners.py:353 appTools/ToolDblSided.py:307 +#: appTools/ToolCopperThieving.py:229 appTools/ToolCopperThieving.py:327 +#: appTools/ToolCopperThieving.py:946 appTools/ToolCorners.py:127 +#: appTools/ToolCorners.py:350 appTools/ToolDblSided.py:307 #: appTools/ToolExtractDrills.py:141 appTools/ToolFiducials.py:191 #: appTools/ToolFiducials.py:482 appTools/ToolOptimal.py:138 #: appTools/ToolPunchGerber.py:381 appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Il n'y a pas d'objet Gerber chargé ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 +#: appTools/ToolCopperThieving.py:242 appTools/ToolCopperThieving.py:847 msgid "Append geometry" msgstr "Ajouter une géométrie" -#: appTools/ToolCopperThieving.py:294 appTools/ToolCopperThieving.py:889 -#: appTools/ToolCopperThieving.py:1048 +#: appTools/ToolCopperThieving.py:297 appTools/ToolCopperThieving.py:898 +#: appTools/ToolCopperThieving.py:1091 msgid "Append source file" msgstr "Ajouter un fichier source" -#: appTools/ToolCopperThieving.py:307 appTools/ToolCopperThieving.py:902 +#: appTools/ToolCopperThieving.py:310 appTools/ToolCopperThieving.py:911 msgid "Copper Thieving Tool done." msgstr "Outil de Copper Thieving fait." -#: appTools/ToolCopperThieving.py:334 appTools/ToolCopperThieving.py:354 +#: appTools/ToolCopperThieving.py:337 appTools/ToolCopperThieving.py:357 #: appTools/ToolCutOut.py:551 appTools/ToolCutOut.py:927 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 @@ -14624,72 +14687,67 @@ msgstr "Outil de Copper Thieving fait." msgid "Could not retrieve object" msgstr "Impossible de récupérer l'objet" -#: appTools/ToolCopperThieving.py:382 +#: appTools/ToolCopperThieving.py:385 msgid "Click the end point of the filling area." msgstr "Cliquez sur le point final de la zone de remplissage." -#: appTools/ToolCopperThieving.py:496 appTools/ToolCopperThieving.py:500 -#: appTools/ToolCopperThieving.py:558 -msgid "Thieving" -msgstr "Voleur" - -#: appTools/ToolCopperThieving.py:507 +#: appTools/ToolCopperThieving.py:510 msgid "Copper Thieving Tool started. Reading parameters." msgstr "L'outil de Copper Thieving a démarré. Lecture des paramètres." -#: appTools/ToolCopperThieving.py:532 +#: appTools/ToolCopperThieving.py:536 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Outil de Copper Thieving. Préparation des polygones d'isolement." -#: appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:582 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Outil de Copper Thieving. Préparer les zones à remplir de cuivre." -#: appTools/ToolCopperThieving.py:619 +#: appTools/ToolCopperThieving.py:626 msgid "Geometry not supported for bounding box" msgstr "Géométrie non prise en charge pour le cadre de sélection" -#: appTools/ToolCopperThieving.py:625 appTools/ToolNCC.py:1695 +#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1695 #: appTools/ToolNCC.py:1750 appTools/ToolNCC.py:2744 appTools/ToolPaint.py:2468 msgid "No object available." msgstr "Aucun objet disponible." -#: appTools/ToolCopperThieving.py:662 appTools/ToolNCC.py:1720 +#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1720 #: appTools/ToolNCC.py:1773 appTools/ToolNCC.py:2786 msgid "The reference object type is not supported." msgstr "Le type d'objet de référence n'est pas pris en charge." -#: appTools/ToolCopperThieving.py:667 +#: appTools/ToolCopperThieving.py:674 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "" "Outil de Copper Thieving. Ajout d'une nouvelle géométrie et mise en mémoire " "tampon." -#: appTools/ToolCopperThieving.py:683 +#: appTools/ToolCopperThieving.py:710 msgid "Create geometry" msgstr "Créer une géométrie" -#: appTools/ToolCopperThieving.py:913 appTools/ToolCopperThieving.py:917 +#: appTools/ToolCopperThieving.py:922 appTools/ToolCopperThieving.py:926 msgid "P-Plating Mask" msgstr "Masque de placage P" -#: appTools/ToolCopperThieving.py:939 +#: appTools/ToolCopperThieving.py:949 msgid "Append PP-M geometry" msgstr "Ajouter la géométrie du masque P de placage" -#: appTools/ToolCopperThieving.py:1068 +#: appTools/ToolCopperThieving.py:1111 msgid "Generating Pattern Plating Mask done." msgstr "Génération du masque de placage de motif terminée." -#: appTools/ToolCopperThieving.py:1111 +#: appTools/ToolCopperThieving.py:1154 msgid "Copper Thieving Tool exit." msgstr "Sortie de l'outil de Copper Thieving." -#: appTools/ToolCopperThieving.py:1202 appTools/ToolFiducials.py:904 +#: appTools/ToolCopperThieving.py:1245 appTools/ToolFiducials.py:904 msgid "Gerber Object to which will be added a copper thieving." msgstr "Objet Gerber auquel sera ajouté un voleur de cuivre." -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1271 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14699,7 +14757,15 @@ msgstr "" "(le remplissage du polygone peut être divisé en plusieurs polygones)\n" "et les traces de cuivre dans le fichier Gerber." -#: appTools/ToolCopperThieving.py:1261 +#: appTools/ToolCopperThieving.py:1309 appTools/ToolCopperThieving.py:1657 +msgid "mm" +msgstr "mm" + +#: appTools/ToolCopperThieving.py:1311 appTools/ToolCopperThieving.py:1659 +msgid "in" +msgstr "in" + +#: appTools/ToolCopperThieving.py:1327 msgid "" "- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -14714,12 +14780,12 @@ msgstr "" "- «Objet de référence» - effectuera un Copper Thieving dans la zone " "spécifiée par un autre objet." -#: appTools/ToolCopperThieving.py:1268 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1334 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4336 appTools/ToolPaint.py:3126 msgid "Ref. Type" msgstr "Type de Réf" -#: appTools/ToolCopperThieving.py:1270 +#: appTools/ToolCopperThieving.py:1336 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14727,21 +14793,21 @@ msgstr "" "Type d'objet FlatCAM à utiliser comme référence de Copper Thieving.\n" "Il peut s'agir de Gerber, Excellon ou Géométrie." -#: appTools/ToolCopperThieving.py:1279 appTools/ToolIsolation.py:3409 +#: appTools/ToolCopperThieving.py:1345 appTools/ToolIsolation.py:3409 #: appTools/ToolNCC.py:4346 appTools/ToolPaint.py:3136 msgid "Ref. Object" msgstr "Réf. Objet" -#: appTools/ToolCopperThieving.py:1281 appTools/ToolIsolation.py:3411 +#: appTools/ToolCopperThieving.py:1347 appTools/ToolIsolation.py:3411 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3138 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "L'objet FlatCAM à utiliser comme référence d'effacement non en cuivre." -#: appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCopperThieving.py:1524 msgid "Insert Copper thieving" msgstr "Insérer Copper Thieving" -#: appTools/ToolCopperThieving.py:1460 +#: appTools/ToolCopperThieving.py:1527 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14749,11 +14815,11 @@ msgstr "" "Ajoutera un polygone (peut être divisé en plusieurs parties)\n" "qui entourera les traces réelles de Gerber à une certaine distance." -#: appTools/ToolCopperThieving.py:1519 +#: appTools/ToolCopperThieving.py:1586 msgid "Insert Robber Bar" msgstr "Insérer une Robber Bar" -#: appTools/ToolCopperThieving.py:1522 +#: appTools/ToolCopperThieving.py:1589 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14765,11 +14831,11 @@ msgstr "" "à une certaine distance.\n" "Requis lors du placage des trous." -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1613 msgid "Select Soldermask object" msgstr "Sélectionner un objet Soldermask" -#: appTools/ToolCopperThieving.py:1548 +#: appTools/ToolCopperThieving.py:1615 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14779,11 +14845,11 @@ msgstr "" "Il sera utilisé comme base pour\n" "le masque de placage de motifs." -#: appTools/ToolCopperThieving.py:1577 +#: appTools/ToolCopperThieving.py:1644 msgid "Plated area" msgstr "Zone plaquée" -#: appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCopperThieving.py:1646 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14802,19 +14868,11 @@ msgstr "" "un peu plus grand que les tampons en cuivre, et cette zone est\n" "calculé à partir des ouvertures du masque de soldat." -#: appTools/ToolCopperThieving.py:1590 -msgid "mm" -msgstr "mm" - -#: appTools/ToolCopperThieving.py:1592 -msgid "in" -msgstr "in" - -#: appTools/ToolCopperThieving.py:1599 +#: appTools/ToolCopperThieving.py:1680 msgid "Generate pattern plating mask" msgstr "Générer un masque de placage de motifs" -#: appTools/ToolCopperThieving.py:1602 +#: appTools/ToolCopperThieving.py:1683 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14828,7 +14886,7 @@ msgstr "" msgid "Corners Tool" msgstr "Outil de Coins" -#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:343 +#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:355 msgid "Please select at least a location" msgstr "Veuillez sélectionner au moins un emplacement" @@ -14836,51 +14894,51 @@ msgstr "Veuillez sélectionner au moins un emplacement" msgid "The tool diameter is zero." msgstr "Le diamètre de l'outil est nul." -#: appTools/ToolCorners.py:412 +#: appTools/ToolCorners.py:415 msgid "Excellon object with corner drills created." msgstr "L'objet Excellon avec des forets corner a été créé." -#: appTools/ToolCorners.py:447 +#: appTools/ToolCorners.py:450 msgid "A Gerber object with corner markers was created." msgstr "Un objet Gerber avec des marqueurs corner a été créé." -#: appTools/ToolCorners.py:474 +#: appTools/ToolCorners.py:477 msgid "The Gerber object to which will be added corner markers." msgstr "L'objet Gerber auquel seront ajoutés des marqueurs de coin." -#: appTools/ToolCorners.py:490 +#: appTools/ToolCorners.py:493 msgid "Locations" msgstr "Locations" -#: appTools/ToolCorners.py:492 +#: appTools/ToolCorners.py:495 msgid "Locations where to place corner markers." msgstr "Emplacements où placer les marqueurs de coin." -#: appTools/ToolCorners.py:505 appTools/ToolFiducials.py:735 +#: appTools/ToolCorners.py:508 appTools/ToolFiducials.py:735 msgid "Top Right" msgstr "En haut à droite" -#: appTools/ToolCorners.py:522 +#: appTools/ToolCorners.py:525 msgid "Toggle ALL" msgstr "Tout basculer" -#: appTools/ToolCorners.py:602 +#: appTools/ToolCorners.py:605 msgid "Add Marker" msgstr "Ajouter un marqueur" -#: appTools/ToolCorners.py:605 +#: appTools/ToolCorners.py:608 msgid "Will add corner markers to the selected Gerber file." msgstr "Ajoutera des marqueurs de coin au fichier Gerber sélectionné." -#: appTools/ToolCorners.py:621 +#: appTools/ToolCorners.py:624 msgid "Drills in Corners" msgstr "Forets dans les corners" -#: appTools/ToolCorners.py:638 appTools/ToolDblSided.py:928 +#: appTools/ToolCorners.py:641 appTools/ToolDblSided.py:928 msgid "Create Excellon Object" msgstr "Créer un objet Excellon" -#: appTools/ToolCorners.py:641 +#: appTools/ToolCorners.py:644 msgid "Will add drill holes in the center of the markers." msgstr "Ajoutera des trous de forage au centre des marqueurs." @@ -19897,11 +19955,11 @@ msgstr "" msgid "G91 coordinates not implemented ..." msgstr "Coordonnées G91 non implémentées ..." -#: defaults.py:867 +#: defaults.py:870 msgid "Could not load defaults file." msgstr "Impossible de charger le fichier par défaut." -#: defaults.py:880 +#: defaults.py:883 msgid "Failed to parse defaults file." msgstr "Échec de l'analyse du fichier par défaut." @@ -21634,9 +21692,6 @@ msgstr "" #~ "incrémentation fixe.
Basé sur les Semences : Sortant des " #~ "semences
Basé sur les Lignes : lignes parallèles." -#~ msgid "Area" -#~ msgstr "Zone" - #~ msgid "Ref" #~ msgstr "Réf" diff --git a/locale/it/LC_MESSAGES/strings.mo b/locale/it/LC_MESSAGES/strings.mo index bd1ac27383218c6a6cd44af120b8a19f52741bf4..c16f522b2bd49e70c32e2bea11f98e58baeec628 100644 GIT binary patch delta 73580 zcmXWkWndM@8i(=CIl0GqNt8k#gtebHKO*Yj?S^?Pg+l-X6P*D!Pl4<(`EE?a$^n5kHau0 z?m*4-Q_RHk9Zx1drxj+kPDD-V-`E0^XZCZ_VLwy{=b+B7Ma|4bJdVe+_&H^8VpcyV zJ6=MSe_#ZLW%F}N;yCPtr_im&LBU`@rv{F~aJ-2XFl}}}r#iO9+PD+F7%zvPLx?zu zP%#jMnt_s737cXxT#dSZBWlXGVj(<)y8hoBey$UpgH$>FoIMzT#G!Ksb>mAMf^RVf zb`9}!Vq;(HFjP=Y#8@~B6MKzon z^}rxh5QU(Es3@wTO7?sMRD-Qh_jN~gpg$(Zv9^9O>b_OByu;-{7al~7-~wvuZ(#ri z<@R$@VL0l#rkE8wV?~^WTFZy1Y^a*Ytob=SNI6knKc_Ta#%n}%vV5jPukxEDRrZ22H6&(Gpl{2N2?RY7xq>O$uJjHsn3jKwhmbKppr z^53tpNr$SKf)gE4Q#2ek@~M~%*VytQY(x1rD#}Y2@pJNF7u3xCiJF<$sQU{QH8D^F zwKQ!|OV||$EB}XZz-&9eFp3koikqNYiCX(?C5-v4p{TX4i0WuPOpL8jGZuxqZv-yE z$*7slSJKb<4NIUp&;a8r|2uGynhx|+1?3r`Ci<74Zd_sAgxWavU;y4kUmBrCnyQqU z`h2Jkl}B}?A?mu;sI(ku9gnUmrrL_x)&YOG)@{~3sH{0;%crattk2VxuB5Mk3T5FIsn>80|stcgfuLf#{+M$Ab81}|lVXmLk zn1i^bO)#~`V9GPC2T>h-g@y40PQc(Ye$H6jfg><1+|L<`$8j7+l=XAU;uUMEa%Rn& zp|YYI2H_Cb9xO!#(@9itT}SowG1kE^_I#D{CPo^euJ3?ZFbczPF-GDeRENVOO#L8K zEFHkicnTF8?t2c@qwlB($Eje_B_*mpCn}gqprW=q>g^VZO4k{vcfndriThDAcEi@+ zMGfQ~D!9EBO?!!vde_Osfi{pL_C!0(NqGS3Lt_={rEvnM;xAOkrdBdD@CT~A0rh|b zw*I^=-$A`gUSUyuhZ!)qvi1$~uL=j6x}oTgM^Ga@iE8i`>Lv2RmVelC+$w&~N9qGn zZ^2|${d_O8+*pHhAq>T_SPoC2W;kIr^PIHk%l`}f)P1SZ53}M|3`Q+gPz^sPBNnqZM>l|qksK(9mZO5=JStsoVRZb6 z+S$IL);4-gb6s3iIR$DTNQ;{4O!j;>R0s2;t}B7+cp218MARhz)o>juw1$zWndpuh z`EXmFXwNS~b!Y?XzU`d=3??cTsQ2x2X2~>zF)Gi0WV=R4|uCwObp@pxcTAHLwzO<1P%u zW2hcKN9F$q)C2tMnmkX9_bKPYQkbNkIbR!BQSN{W!ld=h%p^xWCpBv3vLhXGol+dA zN7YP))6AB;pw@PZRa3hYvgpK{288{cC zFr`3$J@`7j+;#!T1|6--lY{T$SWv;)=g z%NT)oQCoNBW@e@upqqn=;T&j--H65T1!{}T*xXEEdDK?i4z+=d!pykFmM^0|Ouk@N zOd4rE$x2`_>{2s5EVZwXi2D zXiuQ7yMk@-HEKy}wKV0=Se|l|R(?)3T!x+TQ!Cd@VawKL?Z#qHPW+4NNar@@V{#x? zpnL+Arit3}IgKfBC%(asxV)W-{>1J5oCcKlVpq~2c?YxRqdNLI=cr$g|KLEklbd0YDVgzW~deVI*v-)fvDh~Y|Beg z?~om+taHzBpb_0h1>HkbgRf8xd_@IOoSvqf9JLQ*LuElI>U=${k1bFQ??JV92DRqb za3nrM#ayRezAq@(nahFi?bO@6{fePpJ~dI%-3b*`(@^QT2Q`A*s5O6wx<6(gvo!}` zAmwn>^=(iuw^3LS*JCI?^-2C^>T4d*8g;`YR5Y(gy^hb=`bVg&@I;xP>oZ{x<+>Px z{ZSoXg}LwuX2*|M5!3hca{{mfYCz*LGtYOna-fE9+Y>)gH)iQ?esrpZO3NvzsXL1$ z@LyDn6dGWD#v6cIvi+!zU9#m*sITFe1I& zFMdVcke%z*P)XDS^!=cYHAl@{cT{i=!T_9#g>f?~C|{wjk2l0zpU&k#4+=(|D2#eQ z1ym3=MRja|br$BKya^Q(k5T(U`k`jaZHT&l5^Bv?p_cX-YRXTeo_EdaKITAE{Q0P$N5uO4G-vj(A6!d`^vHC^y7GI*+3;a+IIbA77wir{!qV z;Xg5*-v0+}#eLL<@&h%+$;X&zj=%uQ9Z@5lfa>UKTRw`)=SQfmH_lkIG^tS?tc%Ku z&ZrJfLEWEf96uu}|MPJ$6Z>I4OfcU3z)%K5DUZVqeykm8Bk4cU{5tL!Hm96=k{Q_m zoJ)B(YNl#WHd}F5{DZQK+Nc7jn4hq!qpRp1%z=8e37g{?)K_YbspfS#9+h6Vu`xbI zMRloZCM)`(rgj4A0cTLb{0)OK&U6zS1yTD#V~mb1rj!4Q%J#ORmvw-37%C{o+VV8( zTgW}wDotbPo|TP>d7lx@i*%2^)G5>V$CqoUmPPSS453;I;!Ez z*88aZe{IWOQSC;XY3`4U+9^|`7n`647U^=JDd~WU`fgYo*P$Bl%rbc!3)Qits4X-j z>VXAOX;>P2U|k%Fr?3!Knr#L$92L~tu`<5EN$3`sW4_amqIz~5wbPwO_3*Cs8ET(+ zhq~@xEQdc(Q64_mY+Q}3-B26PNYqS@L&eZO>oFu-T<07Iftj*6wbsHJ&F_x=!07W$b~MLu%KI=kdKQ>1Iv;9F?t*%Yj>GiI{|y`j z;RRIse8eo6VWIhAsfbLKGt@c-mEVhOc{gg~I)&P*AEDZLkGd}XB4bfhn%6#QEH+abh&?IiKwZBW_10X6nz0DeMES@J*4R$Cr5lGdo`oq;v+I4bB;Eiqruxls??it5Nt)B}%T z7rc)7vFuV4#Qm`v5vhs5C8g7Uhd0*5BN1$HQQ&1yZ zh9&&?W<lG&Yot5UkXs8Y)MhzqrDx2!L9QZZ@R5W)$P3=Hb2d1IccCoGBh5CZI zfVuEF=D-xI%uI!2UdlbOC@x2B)eliqpL(^~7iy!AVFn;>cKI>R_ney>H1>?|tJpP;5V z`Z^OEzgdf;zKoinuJ4b^o@uE2wp(wa9{de`v9jLGY;IIX%3(_7e+v%OzyS266{_Lg zs0%OK`nT3tyoNqG zXa!Wm)$Ii>P$TSydca6jdQC=M|2ygdf1oy$)u`(>T6bdv<)f$_GTvr$zAbtvci&9@ z>!24EWRKGq)$@L+2aH0EXd>zXb5VJ|2=(A4s32U6`EW043Erdb`-Ix@{I-~Oe?u)* zR@A`5wvhj-s7Hl@q#G)@Mx%mfDJnRRpgQyz)xnpjnfZc>nYdd`RA)h@V`Wqf^}_-< z71faws0Tkp&GZ+S12q(Dn|bM^Lp>lD*2UteAe@dG(FW9r_n?;I3}(mcI0rr3&By0F z)SBNwWyLEzg7J2k*t&$;klb4w=z*^>3jakl++(L{U=XUuQ&BUt0yQ)HZTT)LpZ`J4 zP^w*~qXDS5Xb#kjmOw3CLsT#~McQ+n&KziDBdk-b^HFQO5*4kRP*ZpS)xlf#{1aP# zWBrQiuy?nasZ^+?$Y#r7s3oi6E0cenI8aXqqGn>E?*!3p>sOP)ieL%QY|;<&M^QSeEh`Y=w#T@;fEve;*E%#|Kdl`hdZhcAuHj2voz>P#tK7 z;n)W?wR=!ee-ky6cTvIhKdeSteMj9_>42Zp5L=*vdLR0J|96)It!eCo<{gj?)qxhM zXr73fa5rj=AE0LJIjUn{tuYUo{7#8lq710>IZ-oK0ySgxQTMkwME!ri4sd#29zN3OC z;Stlr%&6cggnDo_RN6GL=eybZp{VGdjM@RGqei{}m455+8(zTkc>1Ub?z!$UGvYr{ zYqSZKwcJ^-31+bM$FU{lbEq`UbHZ2`^~03Df?CQnXUx)Nx0XW< zFcOJ5*XhlHcDNas6E~vP?w+~8NpRK#X9#NTs-UK{1?s^gFaxefJ@}F>e@2Zk)j4y0 zA=GsZY zRD(HC=Zm41s3vMdYKz)YJE89DhYIS^_WZ`H_UHd?ROrD6Q5(Yh9_?=b=X zL`8f2Yi1uvi7E%9+R2Yf<4{yb>YzH(5X)d&ERJigk^f4c7gPk`JJd##@VW`6?5H5B zj;ils%VRM!xc#F!8=r>G#QPgz}Q5(@v)Y7d*?ISx~4!U!2##WTLX{NL~ zYATzddfp3l<4{zvPDDlXDb&ooMveFzYAF)lGUY7jd;OvY(hxOMQK+SJhjE|>O|=!v z?FHLx`G7rt-j*MuM*6ok_Fv}y4Aw%ZcSdDYHuXcz@K6lFF&Kb5kfm{*n;dA(?xK43 z!umHVpZ~*}7#y<3Llh z0@aaY=!X|k(SI4W_Rmn)`Q0@;WqMRFmO;fpEnD9cwPdqVGqn^o)q7FxpFsunbxffA zzt4e2@(#6@pHUl*|2?xa7C<#v19iSBsw16H9TZ|%CHbn0u zllM)r9OcpY1kXPr|Fya94`x(vOPPodWG9BS%s zqGsx$t$&YNs_*uEtQY3T^2Dg?%c7oB)#X5I*b21-y-+*g1Y5rVb>TW&e*~4TSFt7j z53^#G|CxdG!7P-gU?A?q?D!XI>Z89jKay3!Je1v89O%N6)|aRyiTlbloCj5Ih>CI- zHI<8OdAId1%uM|^)W#I}+LXgl<&LNzpM+YPnMT)H#et@3A8Mp$Z22K7h~A;5Hs%|X z_bE^f1X&BA?yrQ(ng*yK9fu0O!>H@izBTRSL6uASB>!r2puM;qDtZT?MmP~Q)hkg; zvJbUH=TTGs3Aq346C&w&cUqSmsg50vVt85oNS;zOtzd~5xI`e{1u-{ikP2Z=e*mYM?f zz#!BVHTrHQgmMP0ud^`QNzcFv(5bQ^X5LsW;~qT2oUZ}MLUaX*>{ z)1y9_3ZrJCCTb(9i)yels-Xd>hQ`?PbX0IHMh#>ID(JRgF1(I8G5SB|H!bQ61bYA1<3M|TTT~W|K&9CtR66cJt@$a` z6kkVO{|NPD z#Wo`>hU#H?RMa;`%|s{cj)PIxzei($r!BjYb$MsVW(Vx%|f zLDNth);iP-9Y+o5N&?p$+^0e@@Cr5ZU#KZdoX`YK5Ncy8hRTvUs86WLNWY!gsFBY_ z&EOhT%gWvA&ye#`!M6w1LH7^`TC3xzE%Tba;45m%f1+k0T4FOZ$x-EOs1X-M zHCP$dk(#L2coWQxJyF*$MLlpE=E2>_b6w{(2L-A4j>?9-Nj$!{-DXr2-$SjXlhiCl zTGWFIpx$z&P)intC2>4v#M9PysNhVR%*$0HIG!N>NtQl%XN28W-5)%LH@f;|c7oZyc1GN;V zF&Dl;Jt%DoGqUWc-==q9%?BXp<<`o zZ;W44HjIk$I1bC;W$cB?)0hs7M~!r@b+N5qftt!~s0SUgo<+5L1GR+rt?yB>;+NK# zG%fkB4Iv8^GCvl_Fw~FPgK<0V#-rFhoyYh0`wONw>2(P8;7h0_yn~v_2dECbwEm46 z`8QN{BnU9Un91cp(O3$VpRKIJt$(6Ma0oSJmr;5D1T`bSP)ig&&Oq01`wF6F zs5~lWYN0l;uBcdWS8>pdgR7|gEStgPb4ApbPjxJSV^QgL02L!&P&;PyAdl~_Ql>`T zKL#};6Hy(TV_lAlwXLX`-e>Av=QIau@Fr@uh-sYORl>+P{U`s$ZZw`Vzg$|9AF+kEkAcGMTB1gLNsV!7SJl6{Pb}FO$cZ z5&uJFM_^{Nk3^t0t}dwhDX28wftB$&D$Vm}VdGQ&H{n1%nt@v5xu_j)4QgvWiR##S zRD(CLKK{hkSTCyyzI~|s4_U8RpQ5Jx3o0o6vzc;S^!@%X6$hHa%=Sbc)RdL9RzWRI zW7LQ{p_XDQYCl+jTC#1Zc21%0zlz!MF=_w_g3W_dVjjwwg2{jVTwjk0rA2R4gX2-J z%OzL^m!qQhA1r|hvzxuXDr)DOhzic7sGai;YJ>WPn#pWAOoz&$maYyeJG$g>&0ET) zqBIp7F$_Oq2o}g`-utak4Gl)6*E}qU8&U6$=hk>3da3Xys;H6Iunt1a&??k@`!FB= zxy*@XsC1i!Me!_ZgfViP5v4<|aRh244KY9VwDl`dQNJ5=;5pQX%Qw^#Ce35o z&4}qKyUjSzYtu!o-F{S0PoW-g7qujxQ4Pn>Yl1ZpD^bpj+K76fW}+X~z(uGv|A2bX zH`E4~I-hB`2)5Pxza|Gtuie&1sA!Fy-*hMiD%dihqCW(+RCQ1zoP)t6_Av~=_XW)7 zcA`RN#NntNwl->}qA(cOAwU1J@o=D?{)HOJV|&3%R7a8(HlI`(P(f1$)uGy`C~uCM zsjjHt9D{m?97kQ}En@CVfVn9LU^%RTfy)0m94PvCqegfUwFF;meVn2m-(SZIMAZ+m z&Oj~6N>ohjLB-5DTaH=G_K^0aq?ez`-uuobI7V1H3Q4iRMn#pUn{t;@4KB77jv$Wj@P|tHS+KLjW z;HrXIF%koC94e^Rpkm}1>H+UjBmIHDW1%vpw!iHzUc6dTW8BIdvus2%kX z=E1Y5f&RqG7(ap_RsJ{PKsOFXH9Qj4fr+T#yl>AxvFBf*X67R*Cj2UxFPqq?8H|f+ z?>E$S8Ek!S)JJM4sv~94)!NjuCt9O=+}@UZp{6*>)(=BP`9xIEt+eNNp*~cOpc+1f znvq+m>z>;3XH@&1iYB<@RV4p)VE`2Ym;+U=g6eq#)DpBseRvEsg zd$#<<`p)_d)lRfZrrki){kbZ+rpLvoP_R@&1zCMuf?e<#Ca!EA^e<|P{i}Fk4J5} z%W*y)N5w|V>SnFmp=O{fDt3CK&YwUn@mW-R_fQ@9hzdeCaSijrud7KwJQLc_ZiLQOPkMiES9^XIX(Z8N)_X{eP{Og;J#>ZUB|D+sf zEy7V#RUJdIKWb)nqu%%LaTVrkV5a&mhEx7!4R2`jdn{^64x?t^7iuZ|8<`HIMLjPI z##R33OK!MYWdB?mA%&*#7YGkJd2n5cvy=Q$x&<70d-?9)D6Q?BcFom*nHG$b`$EI zaTS#XKTsV>-`sRKFY5kqRC_h7&6|_|+VQ$lp{eSNdcY7=v`;{Nv8+Yicp5d8w@?pw zj~cl*(wt9(Iv;@QU?J4ZRkr0es2Cf7n!#m}uDNj+62I!qHgqW zVN8jt&w;wX1Zr&~P$RC7%A(d-83&;9{-ix0+ihujngSI>IZzFiv{tb7wNZO|8zfep z&Zv%d#bP+XmUo~!cm&nn4XlX&L*19Zm3apgL8gVz&lL2wWi%r4Gcrg+&EN6=ApLcm8b_DK~4Qh)Ijc`2Jk;yevhtt{+$Cg z6sLpvh)jcuf&8d7tAyRL9_n-b6b7JQN0aXvQ0Wd5Sl zOfd0@?Q-`*bD316HTqHQ9E2GTb_)X;#s!536*X;ZTT!}=B{8MzC?9AZf8@U5VbL7 zu@-kZ&|23(&A>2J^p8e;&(B0n-8$4xw#|A0HIo0KX6Pg8`k$yQN#4aod3p?>TnyE* z#;BR?iJB321P5Az*{GRViW<>YRD&l`9eQBv-(omrPgiqadGx)6Y`HUL=6rt)!9TDk zUc|~6-py>mQ<3Mo&K?f*;FGAH-$eEFA!_ZuqSp8)>biK{jcHLG&50U77-}Y}qA$Iy zk(i14_NaHsWYibXI`sYhpR*jOft#oeITYK#^XiL-kR?))IXin>7k!DgQ^=3#O=o@@&+I|3FRUMpOrHpl09+YUKae`k1{v z&O*w`uoZ4a#Zsz1rk!-woT!czN3~Z5T}@ea4m83>sEw!>D$h4#D894?_ccFucfeqs z$0~RiOJVjX6Lg(WFQqZ4o$x3sX5OH(DQ`dfr)d4i|LjyurXq}l-Ggl?|LAZ29H7+z z6ErKaI`yBhB9C#1s0re)s3q_lW~MqiYUz@oVj~E( z6s27bl#dlKCpJVqcnoT3rlHn)0S4eE)YM-_P2~?vg8{?MyQ2hZ0JBl&Phd8DiGwle z2=fOT)2(jBktR?5Mw#f%jitD-Gb$U_V-9?XTFdyOO@oE766Hu#7OcY}c+Hw%jJdx8 z9-)399>P*%JC5^2YqZ@;?MKB$dk7V7PH%z6X0Kl~51rM^Qg zq5lLk<>^rAmK`230-xa!>^Rw+e~p^b57u9(mq@%Rrr`i< z7F1A%pgK|sHS+eT>!VNu96yEp*NMgU#0GofFlwYXP%oj!*6;RwlBuSFtXPusB~UXs z5PRcjTmFIi0*X1!#6UXK076hPP<$Hss~{>zg{Gu3D%~2Ornoced>_;d4Yc(`Q5_#= zor}7EB?jU))C}A}1?@kmAdf!Xq;Eb{+BbDM(AL`(b>SG)1Aj-~%vd*|MzS9@bysmE z{tqj9*e7O~9q;Zek29P4pxI^sdr)hB6gBcQ)?26OwZUw}7VLmmFgxXfznlG`1!|+3fQ@hm9>65?JkD~wf=l%N??2z;9Ht`O z0*|v1AEGvjX$w8R|KOnZB9F74a`eUKx^32|KTN~L{xomN+1QTj_M=9cWr>;50@m_a zkNO6-ya|1O|K|t?nxad-3SK6*{0z00Z%`vou++>{8q^OE`B5=a9d*6|YD(LnK0tb) zHlF^N8ONd4d=u(9^ivCd4(haut zBTz9l5fxL*Q61TdnwgWfd>wuN{>L*8^pf}+l}2fnn_$a=+E_}U^0qdrfwst!JH1gI z?u!b_p_mV6p+?C8P3Q z^H(yCqtY^LpLvILMt$O~K*f&xl!ItIFynsn8_M7VW@O{A2^XBfAk22q{2HzbwxT=* zwRE4bAonLZWWMt&9yT8$`>`hVDUa|AN$hykbYR~x^GWvwX@{Txk9(ZyG_(qRd-)0T z6VX7dO#M2nhTl*#Q1PVs!r6=J;A>P?R6OPJ{kvdMSc7u3)25wz7)E&vX2sK30Y741 zz5h#`F;UwM^KxP-R>vEtHO+d~ta%kw2ghQ5JZb%b+H&)rvr&)QXg=U_tZ?4r+{O1; z1QrxbvV)UlKFG}Q>ZO7!)1@}Kg$`6YVaJ^$4pl|&O{uHlQHg9 zvt;v89lVQ8G0iozQ4K)t2eVOI@|9W3{y>I@K z=~L7P$jk@kcfT7@YxxwFHiaIVhPt6Ptof*p9>)-TXY12F^8Mkm6M>qcjTnWc9vgSz zI?8#UxaJ3g2TwfCSt?RKHNo~26$=HPne*+i9p%N=SkKK=_CTfA0u01csGlcZVMmPq z!sGil;d)>s%2~@%<|{wNPt+2^D17-k6{~ zgc&G5!$KJAEn6^C8iu7Q*L`P#aV}<|d=SI%1?Iuv_a0{&x{W#bi-UKl3r>G9c^da` zvv-%n&(v4O^H}Di3ChI(n7^VGiQ&{=#|ZrGlbOL*Sf27$)YANi#W4G4GgEDm9oKcn za-f&RaqAmv(l2JD#ZV15$Hlk`mtn=Prs4P2^#7Xls)`!Od@O_aQ2RrMZ)Rz#qn5TK z`u_X>g&gQ5u>;l9Ll_g^V=4R>{junG@|7tL#R8OT{%0OI26f+c)B~ga@Hhcj0kyGp zKxN5K)KdKZ(`>dtLwK_4?X*gNmV2{$5}H&p`$05%m4}-#rd;Q}G__Vqi3{?|mMHTAGR0tr*IK zZev;eEr!=AfRQn|9%sk$`qFuAY_GGQ`!dAw`hGlrXw4DV>w8W2MWyfLxL(&cCA+B5 z)ICIPG@0UgeLGZl)YKlfe!!NL1LAvqYdQiI?VC~8eX?du;Pw5|sTS%rd;&GIF%p^q zRz|&Dmn3w}!B;9YxCb~NQzT}@xE0mWZ#V)=Ch-=O;B5PUiJ( zJXf(DGt(-$*Y{KJxfEV!FV~Gp>Gl0oT-HrxrYu%!uWu)FQTe$NwG@BhX3X=O*Y|Hg zJ;7!)I3ums*-HIC>Ab!VlvU}?b;|?1z7LWHfnFyK*Ih&nLm7j-zMm^bVm#{I z860S9{S);==5188C(G#d?TD#S+3_6p5&8l3P4^S^1BrhouWuttje(R)pf;ptSORC; z@-r~R4nobqG|YtaQ5(u(RM5T0T$nza znYn7H>uaMr)D*R!bVW^h6o%m_^nL%ItgIgc`Y8pRM|BG zK3=gazC%5@Sq`u7-O(QPHhqqo0l%DH-`}QBf@*gVy6Vwb4zwZ6M)hFGy$H;Bk?U|eW*ILb_B0X+J zm9Js|ezfJJdAz>w_Iwzh`eK+8D`F#TY3mQ5V&Ob0NN=NN=%GFT0X0KTUNZx+^OFCX zf#g(ZO*7&SKlXN1HpI?PdU|+YV|B{A3!0^hQ^@Q4h-`)G(0XJOcJ`rW@DOSyPFt^8 zAD}w$3bh2ETzlYG*qn%mY9NIz2cSk2jJlx^s^K!I5mrSlRc%xdcemwPw!FobZ=z!0 z6RHC-ikObOi8x43MF1wjLZ~ULgo^$~s0VgKbzlJM`q3C27or+ohU)kZ48nt``<|fE z`W<#dPf@eQ_eAy?*Ezs}zT=Ogf-pldv$2%G6qIYBf~zB{;f1JdIgD-bx8h#kSMqRF z{bf{r_7Y|%osPkjkD)f8_s9x6SxRaq$p35{sOR}mJ700s)P`Bhqw=^45(-XJ)C@$T zW+cjHIT8G4=1CR_z3EI;0C(k9ONo(9@Gof#^1mbp52(?KuvL+D#k>pnMr{f zSO#p5k=O^%U~w#6)pW>pIhadDf@-Gct5DH?4;34Us(XF^c=S}PNjY;3V?P{6`7BPu zdNsYi|3Kj-22kEm%LLs;>o;r0+FsumS5+Lyb#5OHCUEc(N8yk1a=^NI7N$v!&NUeFyZ!#<&T!#m8^xiw)Pw$$_G|B8FlV zcEO#v2(vUY>2v}WM0c?e#%pXEE{mlo4@U*>QB-hUK?Ub+)RH{M#P~NVh@&-8HZaG@ zInaq!=OF33KyfiE#eCMr){&@=u18(J70cp5RKwAmn+_*H-@s5E3qYlD2GsM4 zH7EbIrIw{aJ&i!!&;V860=4n9#`M?$_26;#{1nuPrlU5h#i*rRk80--=Eu{h8T@7I zV?>(v6GpnG!6ddK6~?8jX;2MjYhiY*LRgD(cRb7aW0;Zhv{qi3#uc}QNf<3jd{CPbU9GZn%RoBScmdJERB~@Q0xejpjr!Rz~Xz@l{|x~X4?nvu<&OgqP{Cs40#_Y?>ER=bTF!51uy2|Ak# zB2ZJ`5Y>_Xwmc9ulKGe$Puug~tv@i3`d?TS1G|_lyD@4;<{)Y8I%hd3K!tx-^ZqZ2 zSt-}S&NvvgAH2o@Y}C!XMhBu^E>AHDdb*qYlH(Q1p?C?C^zi!r9e}5phjOW&=H=7_ zTPy#!a-cmqbuX{)*JkywA?5AZ8WZ(4A1HmXGUaPnA2akZU%vxTL3s`J#dI4rqwg^l z#_el1s?4bUr4=eT`=jsA|Aup*DVl;x$1|ur|Aag7KU98ii!wJJ!_}0}qk^gjqJknLDrgF#(yIb0HtO2*T~Jd##Fl5+ z^UH1hepE*;quP0l>d0r*gZ&4XrAs}4{8vv4QK24|Lv^5;Eq6yXG!84_JPgL?sNhOG z(0q#J$Ly3VVGHbw+FAd?3D|IuS*qu#_kP%5^FwGAm;BGgPBRM?<;RDbE%g~HSW*o$ zQ&|bMrVUX`(Fb*Y6zW@WC+5Hl_#XeW-yPNwcS@m(DBH1HWKij4{br6mwDTjQV+D z0j9-6s3pFS>d-Ir{r*4UWYcgNYXxgHYaMGNYoxWUwX?OSwI6CrcWrsJb)t2;b*@yD zF0vKNtZS^BtUIjxtVgV;tQV};thcQXt#`ln5ao(afp6}Qk6U;K@Zm0o_Ky5U0QCYPDwN+olp_py9$%-}D zobub*$bQY=s{;u4d1pW-eNw=F@84<6hq~8Bg~AmurTh!arhavMGu{4(rzxQ z16xotcmnm{8>sAhjsEEVN67-~jmp*p+@>6fz$GjOm6Q|T>n?++8*Ur}qE>`&A4Vwj6^6I4)5 zM6KC8RP=8}jeHNPo)v*`o*5=>?2kK$DrRKsasD>M( z(yoiGA7IPl?D^TKELeqF>w~CRdW4#>Sj$W{r9eF}2z7l9TQ0MV{MUmjQxSztQ6ss5 z8tGkB+Ppw@@I7iRzn~h7vD}O}A*vi`%fZ%SsJCQg)P3zR7^6@fT(aCXQ@hDta13j5 z;u9qMlXD)mmY2}CM5w8LkLqyTbza|J-${c# zbUil0u=QSNJTAa>%KvN|%uhBqP(jpYqY1h(s0YkMjdU&QL5EN?cFLZ=k9w_!6^VzAeT^s0R*5 zeYUU09C#IVzu#8Vu^gD2awXIf48*LsUiHfV8yx7HEao;dg+Zuj55-DY4wWU-Z2eNy zr_~zNQXNAr-36?IcTusEeY+WXaU4Lo8Q#L%I0CorAph%dP;{qRqbWFsvUisWnh7|L z@<|+twRW3mzJ=`F&KsJEN>-$6IjTnOyD-M|;*>IRYexqFMh}XHzbvKWCeg8f1)?>!+IEM43kDDLi&YUnY z67!^qp@gUzN{gD2EU2BdFlq)XpCtbkm&bBv!s`zV*gq6UtApE0(@umS{6-#Ai_h@LpARkbmho zP`ZU#BTze7HCt|mO20O!jVH=F3AIE^QA=_V6*F(J27W>XU-@fhAT?0sC{zcAq3_@S zT)=^%a~&!;_M=|ACv5pDYU=LVa@y-=Z8M{Ss0?c6>Z9(TfC|o;s0aRm+6mX7f^xe( ze-vGPG+yLDJ$iu}q4$P~@>Hmx%WJKUYM=`$s0N}suo9J4`%qDS$<{wWJ@^yqgT=XN zw)i9%MzO$6@?U#%Un(@^zoUA*8ug&9*2AbYyNC*&ml%K;}_=bw*tFR{)A!J>VIC}U$t6}ilM46&C<2Q zmCFCV9B3o~ugu6JFdyaKsOVmW&2T?9#dNRDpBW88?HlK@GhV||SmuohvJt3YoP)XW z4r(8X`_}A?=`aJ&cOp4ZG>$+uI1UvHQ*C*^b%}K~D$h6B@^0%P>q+Yc>vij0>l4)e z@(O+b{?Au?BHBCCfwCu={7>=TWK(8T*5pTxygcfB z15~!Odr$sriiS|3ksn1hdKnt{`(j@`GuKy~B;>bn21 zE;^q~2kN0l+5@$-jzcZ=VpMuAcR5glZ%|Y8*&6e+d1<6ZMQs==C>x=sdNKy%ZEN%| zrUQ8}3H1d~?N&fdc}>&?7m1pwuBhwWAsl4pU0phkQL)xZbT)H+{HN0XpB zmI>97P|S)QQ2W7jY=qlUA2^BsH6xyi+Fx!W`wRd7@88T;SQ@plw8J2rhT6%tV<=w3 zVwmi^S;HErj?F^Fz%tbSu@^PMzij!HEyw!LY)Gk5*Hyvv%KwfWXwM&y+RK-s)@mb0 z;Bi!xC-`AH*a9_m6R;C5MlD^upQb)Nsss5@?S-S3qPn$#wFM?o{&(b{1iGk~$39$( zw=e)l{W3wi0s|@EL49)l#DW;a4`wZ}A?o}-oQ(HTLD|*M-xs7kQ8P6dd*MuUOLGw0 z9ho>si<09Lj!P)8Ox@APV;P_pNbZRLnF&#YRU|+6_i+Fmo}|k0`hGF{AtY zqCW^VGufi^`w!h%fQnogfx0mYHDx1FK{m;{5_SDy)EZtx1=~kdtR#=&@5_<`n45BY z>+iPy3~Io?Fbqq_3Yf(YI#kB`FFeeq?F$ZRgpV0E{M}7|-*jyT@ZnKP%Udidp;7?kuInYm_gWC`G3V;5SCc~ z7&Bie)*49mIJHqzRu|Q9dsIidp@M24dT|(PWTQ|sF&PWvB3pkG6`T)IOZzvv>QT}p zW(tE)!Br9!3w2S!*BiA2lTd5E8MU@IP#yA1YGyDdYVDJw?$3h(SRECF-BIn$#sau8 zDfzD(o>8GZ_e*9*`Wq^*Lr@*6f$C^`jKnBZ^!|mK`fsR_#Yk?-DKRhQOn46KV@b@M z!nD^Kb5b6Zg8YBU!5S)*zq3-B3l^hdU?>Sb?iE7 zraq&V=(p77xw%PIt>rLzbFc;^)q27kUY0Umm z5;c%UsP@{U+8<%dGchyejmVDb@^7^I`+i)GpVr^$%ZcXL6mO!o+(PNhUf#vJ2$gmh zQB!{twK2WI>KHSQ5{MfWIB||S{SwCRYEOAB&s8w&^O~4p!^@pfueggD(H6E z@b|e2Scsq5)Mr2icRth%6teZDQQ1)|Gx`6DgD5I? zVyi4Bf750)Jr73ZcR|zx%Ahuq2B@9VwGOk6w2nb7$#_(@Oh>i9z}DBz=I{GEqD`~8 zCJ&EOp?rLcih<<8#{8&_q9#_vA*jF4e+IR|*n9LKg;0Yh^7`+lB?Le1>SKM_3$8;!S5J>p?S@QG6sVwPepZbFNWeP zEP>hc`TKsNX^({{Z?wKZEm=T*)8TUH3r4K0{9np}ruGAt!{P-@c{nOa&Z9>15o=(Y zf@XwWP#s^2>d-}07W_g5Y5YPah5}GCl>^&iN9>4Ku&Cbup@q#CP=C~hG7A&nDy)aQ zP-&Q`i21lokIIT#)=sGNBT>;m9o5bXRC?}4jrbaBL;45R(SOnR`@fh)&6=jf=$wc^ zHBb#Tk`~rp7>DvG)O&s!>biNT2G?8nq4trpsOW!;O20R@{wwOGl%N>-uk=dBfz~<$ zhG9okN7kX1U@I#BZ=rU)52&|XlHw-#@}bJrQA^bgwdQkC*>nJl;9b-YI4Me)cJq}W z{}s*ksnE#Apr&vJ4#$bI=8mE7(#h2YDrF_ zmf*5Z$I`!7}E;vZ$b{jEep`sI_j53bN7Yhrgp9G#|B=>rhdC3bp1>Q1{0UH#3+T zwIoGROV$(>OC6ExTxU23TEpq6sab@2z$(-TcB4jc2$jbdFf+z4YerB2)xmI7u+_8m zy-`ay0@eQSs4Q5HQ*aYDQvR1NXQp@|Y6iBTf@LqNr&mxnzCtzl88wo)<^6sC_Dd=( zLwQ?-*<$}i&0I(YGmz@mNYuX318d=U%*pee`y6O*k5|#(d4UyCQ<<-lc?UE=?cD=W zLA43>pU<8_Ey0t@CWf3UW-HE%bE)r!8c6J_CddO(u~ZTjL$%OV^bh2qJkG^}_z*Rf zDXWvtN>3a#i=vUpWeKgdPB|~*E$d*G<9jJm@>K4_>e?@;MTd@!o zOe;|_aKx6cqSp8wYDe_cFbyX~m2;y8QX1P~GgL=UqT2h8IWc)nGxBiM`OY<6GxEh$ zRHfntYAFiUGB@v$YmR)i*)a_d(6EwfO4O9yL_PQ$=EK+xP4t&U)ptY9+z{&|EK7Ml zmcmD<83}5nfslW-IM7tJMm?w(#=!ozei$lhr=n(JIcfyQQ8V!vwf3J-GnAmQF*_># z%A;nsDJqD2q1qpf@p!&7nFDPw3s4VQY2Alv@G@#9-lEbhMiVo_IH(S!LJc6hwJ7RA z6;KaqjM}hTVHWI;+F$0PtEoT0fp)OB*b?(L_4obJ=`1WvIeIfQGojY9s0J!oyQ8Ll zHY%@IpgOP#)v=?fAish!@h?u?aKxxeqvawD<3AAj#5Yy-`T?rYp?*e?d0$KP?Ohc{xGE`9R zL3Q|)J%7pNKx_X5mB;T;JKuK zr{O2;j$^u;8FIgIppD1BhY7MYs2d8PqPLtaH?elX1=PE!k)-WuerKEs>rn2GRq&#% zPuI)rtUa+3^@p()#_#QmE!XMEfgZRP6(svG3Xh`R_a*w6^8-=YFwvG*q0(?ScE%f+ z8_V`JS<(j;6aB5DQQv$sP_eNKegFN>5qrT6^eqJ{y5FIuFjK*VF zwR8Q0T5B)YsXhzp#+<0NFM!IP@~Aa#X3Kq0*H1zXUW(w7*3@rRqB%!QhXNYqHWp?W?THMLW%^HAxx4E5mas2F&O+LB+RX803o z>HfnkdjDq|VWzYOY6J~XG0_GU&FxV)bjGasJC?>Hs0T$KX*!vi@9Hd|qdvaBy#W??cY?dSyGwB|5FkKkNN_2#xE6}LyF0}liWM#H zUZkbPTBMZs`Rv^MPTv2VGkIq2TpRoDW)lL9Vhj`b_IF@gk6J$0Pf|^-HsLUHcorw-mr?@YagQ;*JTmp4#(oJ{zxnL~%WuO99gVJwk z<3UjVdKrDAY3QELfqFL2gSvK$p|)nZaVyjo9Dxd ztY2`Z+tOB051^qCJ)h?%8jTR#hxuTUSx%t?R6=v0uG>PW0Gpt;;vCdoUxrHL4r~wO z&34}dc8Ait0hRbYs3m_7bp{g5kzej#W*S0>ML5(w9|q-cws9lW z1L_!*pVv@NRL@+emk!ELVW^2zfO%m9=>Pj4J{sDSNw5H10<*$PFc5x#8DXku@ zr`5)1P}eQT5|>agl!G-;cF$lT7;UM0f)}^?=&*jZklNPC_O42x^NmEb}=> zWtO=aHi!Nth4o|rwRb6&yS>i>HIvd%hp|1>o(_Y01W$!c;9Tqf1q;&u0F_X#74BMg zhP?WDdiiK*>F2>fxEJ<;x1p|4!!GgYUhAKN(z_0;!zioV?WqOzgNmWB z0(`#Oy)VeM)*bG)Pzm_LY3NBd3o66&5PeVFb#CVIp=Oo_>Y8PSN~94Cgzcej#R#aC znhSN9S3yl|57d_3ggT6=);qnnkZb7kgwoIw4TWvsR;a_3XoI^xMW9Y=EvS1NZt@W@ zi2fX?E%*!-IPOL_!wgXJ{IDXd0QD+69BM-IV0PXAWi)h{&OqJk-%Q~P)SF1}Cie_a z2=%~8VGM*C&k6O+F9Ky>)B0_Vy5TI&|BhR_+c|fR9iKN8j$YA}I`{pBNwC&t~ zy$fArg8im&3Km6v6Y82J+~JlwKhzm01-0b$pths~RDz*U_k09Y;tQend>2$=7oi^I z_iX(24(`7)iSv^?G$~+4`q`~t6UuQ5SPOQCW#L|^CHx3A^AbBARmn!G%wOAheBP?>rf6p zLtW40``ooE4Yj3}p;jiy%5 zd@9tE&b0m#s6Z=Bz8&hY9fS&W11hmUpaOn{+M*Z-EfJ{kLeT&EU&RECpd1B59S$GV z9!`Z?%H2?B<7cQXxDB;ZUyWH0xs|956`&Q=?dS$|`ujrp9clep(5JmxK||N$-Dyt%b&r!l1+E73!X{9+V+1S@ z&%x?2{)K3s%dja7gt;%epOV*s_31B!dh7NlECNekax2pv2GaNSr=i0&2WqcZ8h?V} z0US0PFLv1-&dP8kdf!4N_z-GKUPB$a=vUlCQbJv`^iW%w-}+%tXT}G4HRSJq($EU5 zggV_@VRU#BYOl^i-HPi_4&OkX;;2{M6EitfzZlebO{l}%5^6#NpzOy%-IirgTX_n` z*X#d78rc!NhPo!HuDJ}eLnTlU>d99M>NzkKD&PVr{mmvn05ySAFeAJNdBS-DuDifx zp>9_PDEofU|M~xT8p?FGaWz!nT~JGP7;1~oK>wo`YDS--mOR-FcNnunJ!q;xy~wnJ z3fRl!W1tdT2xY$=`Xo3S z=NQzAT{rn7D1RTI5{-U~``>~_x?AouoqkYH(s z&Z?&21F;BD@|3=`dPuK`J*W|jhK=>wqx=YmS8EYwys zhH@MPHN&1J9}IKS9}ktlcIbt#pbqsrsIC4CwPJC6cb((xP!7vM&EOl8w}J}T6Kd(C zuN9gI+r#-#34evUW-;$Mz3NbQO<*b59#(`4U}bm@DxNR%eWzFiYA-87W!M2~1$sdR z91Jy+AD|4U!hCQURG>>xkK}t$Tl5L)EW~}_m=WfsU(EU)ArCa4X8;ZD;W4PC`~~Xp zT!S^?OV|b$edyj3PKQeDG%N@&L+xqwM{Xt3LmleuP>Gj?fv^tL7IcH!%HGib_dh4l z(9GsRIbPx);AcO^y-zNAv$Jm+4S%;U2?4810EmBrDX5S81pO z+Cgn`XOZWRrxy)n?1Nf~8BklW04lK!#%)kbyc_CJUWRh`8&qPipw3A2r)~?98nZ#k zOTYkF4a#o~=)eEd@VR{+U9Z`smNx8;Jx^PsUr%uT;2%npNKFF4LeqbZFqFb8b>(m5Cmb;u?{&1fl9VjG}V z6^ho`t6LvVEh0Qg*qEsUU9hK16UIV{plvS4l41>khA9VJffk~`N9T1KQDtjU8h1&cFmv?4Td^9eNFxYTu*;4>;kL5j^^Q=m}fK8ncLwfDW0dH zfX|`!?yWKE8~3uB1eQl$z}Vfm8P-7l7i08JtGH`9JPW>F=;H{qi58`TwNibl8CYYp5-%{Ly^~ zH5ux#J%vgn{wMbyvMH=ce+l&IMdJ|-%`nqv_tUBNFa!O0P@h=rg&MyOwNfenbxWQJ zYQ+j$zcNfg!i{0fD11Bq#a+WbU!C1BsKYw}YU`$a<^F3=7a`D$w?OUn9jHU{6y}2O ztsjWF0_KN$K$V9YZw{5<2__L zeLxJa|F3IT_R%+<4Y_#dyc~#Q2Btz443D z8`t@ZXG~^H=g8lGprHivLcREugUYZfj0>AU?O}VUNA3wI{hLrL@Dj#>+2eWrXQwdK z{VoGF!=_Lx)D`O0b2y9*7r^m)M6ITw85fT4^`FYpP=RYgDK>?HFbFP!!{I2HDS@+F z4YjnJjVGX%{4UfX{sgtMu@ZXyPuL_-XQdeQ|NFm|G?ZBw)O8!D0l3oSdrW=>Dxo(} z4!#&OCUP^bYHSM|F+Kn)fwOQVybZOoL5W?$J)r;J|BN-kET~L3LLH)AP)mEj#!o}7 z)C1#ls7LB+s1^GgYKx*KaT7=m^+?VI^(|QisB764YQ=m>`1@yhXv{>Q>v9yzARwvN z|MHmv>iJL<>TFbp+WUG?50JJ{j=DiP9tqFD<**J9pzg`M{*UALr||lJik>8;Tft3G z&zU_bx&K;{qX^{qS18Aip|;`;RNw@uoMCcUiGD^{0d|C1;uTOUupMTHhhaUQgwJ6i z`X$o1>-!xnPJcG+1~2$%Y^6~ytvg(=jZ@OOnG{U#_5W82U*J*n_GNJTLj%43zX4e| zqt|l<`CX`)Z_niQzgr%f+3WvCf1!)8yaU!Ax&1Nm=9{^ z6|G+b>TI-vnP4!~ij9RjymO$oay!)0K7iVq7f>r2kj<@N0;rWr4YTR>KRXQ_ntD)& zE(pq?v-SHxIUER;z(^?lNl;6_1ZIVsZTu>%LjOLLzpUBanaT|{^NLVssulEq|KH67 zgP;!IB&bur9O_VQhPrkaZ2T6~%w8K~=5YNCkS*sQtGGl|MP<2V(xk#gyR{%4P!**%oO)}ej@SkQm&t^tk?f%xARr-`hQx!0uDky zV@3Dsy09Ymzbb+&2x`MLl^i?6=mgvbJ0Rav+1>l}RV;I;HxOH33-}0*fMu(?GjkX= z#r^>thP*^|uO}Gpf&GvN)*vxB+gH=Q(MV9+>wnW&2Y!#@D!3kIs^j&49(W#Rrthii zPIne#2poubBh(V-s^|6p!Sb3=51ONJ9{dbj!&%>W{htHAgL;kd<*e`Ze;+>>YLC~$ z!ZLtGVg3egse+-#=R=*Dmrzf(gbm#rmda4qZWJs6Ps0=NE6fQ`G;#^NhR5mGYs`~3 zfcu}ciCfYvO}+kisl8!2mS!JpisI*HZe>WyVGCQ-s}J4^C>%cJ&Wm|ghh1!LpqWGiVI-| zcqZ7rDSg?AQ_uK_&h8#p>*8kA5jH_S9~OgepeB$r#Jx9c3e_JD^TSOhzXyZp$LZ?z z|LvD<&^HA^l<&MAaXS1NW(#$P=@0mre%x+e_YDS=!^&aqQ1*hFz;dWVm?hkeFE(C) z+IvrT_h8Efd(o{6bqx=9=l+M$DA&X5`4et{o8f|dwKo;7vwFd2g!ooF3?HX zhJKYk?)k6`W}x4ruX`<+0(CuiLjC7+&tVz*rTe>E)F0|eIKMylzcP(o2xRat)V0eu zfJY{Vx1i3#gYVtxE-}zOdI!U&$cMwbFl3NByfp@U{r}_1WY_@tXQ-{JJH)+>Uj}Q^ ze+5g!5|c6{vas5)ld(f3vfEjHO#$FI0$plA2QsX zja5(&w!2Uh%{9VZ_b{ky?pr`31&xbPhv_*?4g*KJSE=GqdsxBxU12Tyyn7aQ%)&@`xPw-w4y^f6w~4p;!L(d++H8hV+WJl4H9tbrxyKZ509+Hvk% zsMfF={dv}ZX#I@i-PUx0n&}3p75xbHuVji(@OnPeum6L4Ur}eGdw#Tpt#y3&(9q0N zOmd0TgZ?)lupII}uqE6M^)j8{NB2O1FJ5@?1o`4q3G5B*tFxg{{(bg%y}D3_bz z_56YTWmpFunMvZhJ_%+y$Bm)xZJ2SM@g%H>{5@<1i_dmvVVdzE)U*91RKhjpxJUCC zn4bO~s7Lt?*dHdC>z*THp-+wv(U5~E^W03^8u!5F$dk?Y`hPYY2DP;N;3oJ9R)A|4 zIQdIBjegFBUe7kTAN~k?Eb{vQ1XI9b_h4HC&#^KUmvH~Dp^$Kyd(b?CkLaIW?p`jp ztZ-)`#Y(sL^s-imcRs_73}@1CH`Hn{f*oi=hv zk-vsIV|h1o&GZ23wAsCzy<&U{^=kHyvCJ0t7HSyOo4heFF5_djy0=m@V08M+q0Y!U zs8`41P}l4O)M3uE&FlZ@CKT#9aM(vfhat{(cTJkZl=RobWbioD9^Qg_{r?2h!1OyD zOF_N;ZfgA=Fc$rZ)}IB_(ccC$!HZCdzk`b73;4-BI#a`82ueXI?1OsXoPwIcd#HD@ zId{6i&0uW$y`cYr12yASFe|)i^z3p8Wiu9lnpi2ANcX?KYk1m2J^6aW#PDa>5#E4p zV7cAyS}uSI=&v*Gg`?=7fiGc$JE@Cj7H{r71FxPMD%bU?5N z%5nPr?i+-BFeCj6)^86rv)(WtoC~$2r=XsEze7Dqa~yEb{0dNeJ`>9CRVaT?;R+b@ zAct1>e@Hk8YFT!l_32X-A9&z%HkfrwY zhdLYMVSG3p`v3mlGE>+K6EbiXY76edlJGT*!Zpi%)IEsu9rt?n(eDoR>X`SW*Z;$) zkx-A|-=O>yKIOh~sRET~4XBl9Z0vZ7`>)J;o5E>Y0PznDI z^`i6@YN=zKcCVf}q56%j-xq47mYnAP>olH3pryGBbuFGjU9*5QuAdHS$%1CyZq%z!cBMyNBh6YAsnr%)6B?4zMG5bqcFE_fo0M*j|M4HM7aaSx|>=A>=4{w!%zs2hRf?V%iZgql$})E*9ndLV6s8{rMel6uBo zcW+{kLp|7f-f*vWS79jq1UKFIAn03!Am=Uj?e;0CPpy{Tc5gIZ-*Mmb)xGNu(R|nm z{dZ7LuvYh6Kj6OC|2Lhxz#bZhTH;O*+}3r2T8VzJ2^zGKXOU`qf{$@9E~i%JgIZ?zW;H z458l})`NH9M40yvxA%LY;>3OB-p~~G(a@XA@1d^G6{u(X2dKo7|LFo$fWzsJgv(%z zzufa+9jr?KC~N^^y>{#XThreUb$C<1aWCsRpw3WHs7JA{8Vx<^nnFDZdqSPgu~64& zg^eGCdZOKedbj)z>cNxytvjSmp>9WWsOuU8z3@9@4;$}i912N*-~XYZ!!ZZyw68XW zwNQ?>K{?uQJZj^ojF+Ge+byX3{SYd_r%-;=y>ou^K)tca2X%c*L;t`3t>lT4_k z>Irq|hC;n+?SfjeV=y1Q0(E$zy?4xOYzp-}@IeI_3H!iVP}eu!-|l*+gj%UU7@+%~ zlZH-bZm0xmLp@SkKsjm+wG!b_&xZj}GZ_YTm?lB3&<-fOy-;=sp#OaVOhNw%)P%mk zQZUv(+(mFD;sG2S zHN$_9O+zn`q&}gWoOTvu2T5QiK9bKN6 zKEC9jP9ocE1o{c3=dc<^n+QIF%x6)LGNZIOyN!(P^YmmjW+OX_-f*f)0S-@De5t&q z#%H{jzsJY*BohyNl^L|FV&8~ZzP#!Xa0E_%rLD4-fNfFehe1IZntYq&v`@h?Fo#Yn zr3m~)u-vZe{~FV_Q=MN)xF(zr`QN%drHI8}YWH;E@6USp|HeJ#5sYQ9J4#dO^8;>A zhe!?rnRPV`>dPDD5dG5V6-6(e=?z4l6IoLHY(w`Ulgfr(7m~dJLx`dBfI1Pq?5x!8 zDBQndD5^}ta4X8Om`xO%9%Y6pF-&K(lukl)2M{!JsZOU(B*8)gjmGXFK~$#VGdZhs z9=o~t{Y2oO8GD7VblQKFxztA}B_W9c7#ua@y!5v)mJ8+B$d^c&k{J0H5?q4KYJ%y> z(*<9HXzPPzmG;Pf)tD9iXg-k1)WMI+XMFe?kkL4n>kN)^k$C~A5=?tPidW6SV-m`P z-g+A^VqA#5m*n=NAIiAOM`{+5NyV5-Bid64KG6DC39OP^pa1G}`$`CU;zTd4Z3vp# zmV7ZmGh4QP3%&#}mX+Xqx8+%eZ8K(>(R8+w#3ppsM<^TT;U_kFLDcWH?Emx0{$C-p zRW{3Umf24@x`ccv%8^THW}-)S0vrSpoOe{7hqe-WBa@N<$FXZ*DRc_=nJBPG7m zmOVT6`p=C2B~C=~<;U4F6uK}_k%7n5Z5W5JB9GDf-m?9N@n|^EM`|kVXm26O{>VGp z>OD2b1&!BD_o6NLS>)fEZm@I1|Nlki!%=9Bqh2@-#ONdK^l)9IWh{eEGM2I)Ix3q9 zo)}ww?xUB*A~@fJU4Qg~VPSZSiKJnyY9v3h4Pg8!wln$t6Hf?^uHkgJWj&Y`iH2bm zGTn>f4CFl-uR@>#INO0^m6|xHV~&p?&%t;!^qVuj3??SoImpjbGgI@Re;b`o#EVNk zj?W)`wj2jBn1V0|#@h+V-x~K+!GTIMWTokswtd$#gTL7AFNM&lL~8_fF!CK*4azk9 zp0z~35a}Q=&kuT_{)hul_IqH{Wi}y?61+*n~y`-b&J7e(hc~L`Ud6iaCi$R zx8PiANrG=Bxkl#r4Gs$1s?5V-LThKl>0{~%(~D-wD|l7fqX?#QA0B3Fvl6QU{E6>B zJY`sVmDaX&^KrC}c4afVgJMGx%z@riWMgd`j^HFaWBkQ#55M&0nW;qSt4t@+h!TX& zNp$|hegZ6lFO~erW5uM?1V`tlz5bHK_b=vw%psTMKhJ6UzYak5!BRX;IKDUYbfmw= zbgJ2yy3J_6w6z#ddnIdG*Tz2*;}rH8NO3GFUBJ(2WcT%CD~sR@1IMZ3$ZsT03ZpO@ z2PH^zm(44jc0^f$vx?|UrKVwiDp6rfbQ={v!&yCo zsoX?)810NOsb&8!PQNt=O>oecKtB*z-}&ERY&i+?dv%@%wt|(=orBIkLI)F=1tFn((RTarKqWn*PNMm~%OP^Veu8oEwDGXY+s-_BMk1&Q$2 z$301q9fc}0u^CDKG2~YxJ-3K6hPY$pcP)ZJ)M|9vF{|zHDTBFatGuJHGLG7cRr#Al zYY^-pPD*eWG9oVy@7nAq(hnhUKTBvkzJF#c6n`&lf<@8EkKa1_AgTyig_|;R&vTSM zlR!nBCPV%sirsKn$aLN_Dmk)=Ve3Q2XLA5pFlYyp*TtNrCzq!lYfGB5GRx5WN( z*Z;>5XbvN2Gn+v>`lT_djM5~QO(ls1ABXWYw6=#2W&et0Z zb|6Sk+SxG5h_hxmE`rV)R-i8ZM%XpS@h4~I8AH1^RpkI<)hwZ3uzP_lEp}_M>q)gquG@W=b0N<044K~>(k~wMZw|X&N!=OIfj*r7t%(5auDnb?gASO2}6Cb0e z=;UB*AP(QMLj2aUrv>s+$W*?UV1B9T`j2}k>|zk zCTxcM9yU)%G?`n0Hl7MJQeyNogEt6P-I8+%#py=pClrFUU5GbN#!Vmw^g(p8gCgWqA zzTs49kDwFA*_oY6Tr(=lj9wy-D2c571A=YXq_n{LWJ{$1$;_d)NAFt#{l<7@+5xoN zm~ZLTBY0!%f6$x9qBMTNXd!hj0}07`9SLN!Wt72LODGQP#4Perd!d^f>gW9t*jF{DB3tr3QY4I@^fBabB|10;gPmRudc+$pv zYf-Mi3XCVf9BN0}hi&h_w=BPnlu#UW{%=WY`uv-e|CPnev=K>6!hc`dJ26^q&RvH(?C!f$ZQ|El7-!&nd68Av2H?Z{;m&SMZHHT=WI7Qh+= zJWQaC<}X#G#Pi_$iob97|3{Sn!GTJ91}dQtQ9dGXgQFf$zs0O_nnVkb*m~rd2$qSl zUbMfGc$Kr?J+o6#FXU28tV2-cjc(u5dIspUz&6A6`o zwW6^9V@$!R@vyMj6+yY99NBmS+Vx2$FXI_(dp6=I6~SW>^c)iiV5|&WMp8dwuQC_A z1&m)ucQ3vsQ+qOrAxvPQ{=r`|9E?J_mdz{^$`Pd=&g$4~iZWh_1UfM|8fW)$loMG@ zf}KK7Wioz3@pp_w=FtBGU(=8!MYjvG#^|b?B6tF1Kk5Vj+cZ?#FnAZGG&oy9&2LNW zW&8v3f6-}$^A5C^;CKS#Rj|p5Y#H?#i7rLA7_v#0bOYMA8S9H}X;!Tqi6>(cWwEV* z+!xCf`N^7RHtkhpTi#aUC<>8FRh+G})wzX(n)LIb6BE0cC?2tiv?sv}$l^1efEu0l z5$sl*-xxNr0@2z3N49ibjAa-MCz=0Dxjgc8Bz2MgCFGY0avFzan9Ty5S0R{66lS#r z+d=5oM|Kk(l~3kJ?Ksx1j$KjzR3!Go#+N z8Xu5tN2i3@AI8^U68*_0C13YQ=r%gT)uHH@(Q@f~+}4ql7NO9U%wl0&)0Y1fiYn^~ zR+#{KP2R#d65V%<=R@x!392+D*aTYv4=bb60sS%7b`ti#I}Tftz$^F*d~XWzQLafp zhiUe+U|R_`)@Iq3@!y%i2xJFYrMa|K{=`Q?#v;l=#y{I6B&&(uJSMtIKX8aB(J=@l z`{uUv5%R^6`Z1I&15Iq%TcH0EXBW`9OO1(qxvjudv&%r@k4-&VFNE50Q@s033 zG^X1Um!rJ^CuLENDD7=5iv^32i&K%MB~Tp;HWb~$EbknWh)sP!vT&H zLHKzBzd;s;tTgTO=$$0V=jiJ90ncjxw;>G{sX|{REy^d5ox#aw zl9`X}05X*@lHp%udd@TcJ3b=HO=L|8*vFC#*Ro@ii2k22kg>Hoe=lvnPhs4Ox(9{C zC@+VX?My7j`7hS)fPPMkvKS}dAuo%5DV$EWRnzdl_-cgRMaJKfxJph|MWq&Yy%;Z) zhah=T>W@M`*bL=|$g-gjN}xVC9%2b*p4B6HK$1lH=$6CJG1T-6GF$zhRrXN!jAVc< zan!|@&L561+o*rx^nzuO0qc6`MwHmtOrsWI1`};*BgRUgy9(a}A_VZR&Gb3!tbM$W zbCn+ud`4M6^iKm1F|*RlswTmvFm{d^WhaRWoW?|!Ok%j5gkw{4<0n5gDY9hL*_KRW ze6^q*j<374lVBf}gs=D~!9HF>IUNB?5_qLDp;SSpl8qTWL3ud+^ysLhr{9o%N2t<} zpyf%nobA;_lWVL1iB-Z!8}uhoznYJ-By*i)qUt~Hc)~z8Is-5q#K2AZD*G^0c}Vv6 zkS9h*Wi9e8IBH111<3j%Tg^OGLp#>Fp7M%k$e zkd(mDDQ1=p=f&Y7oV~T#Eg+G)%=`!R{**V$4Rd%ES%8+CU`H&m1h(8xlh=R7RZ79W z=-ktD{6_-ZBv4-x_y#8`1sE*FDkMkV4%t8w*kgeT(_V+}QpQISpf~+LNIDgMY9Ld2 zhpZ=d@90M*SYV_?{zkrwS{A(-dX6u|aJeb`f}`C8y^ca@jAP;GDf}VQ5}rjT4mS5; zMV$OcVr|g>NKz`HmW0~h(EgnSc9{Pz*r*)9uS%!CXiUV}af1GUgWM$44W*+vtwGQj z)LJ-6iQc!2Z=^0UC$Si7g!~=BRr=zi2lf%=F9P$g@I9HM&w8COAh~Zex_{w!GqQn} zq}P1OCOiHbAn!%phAqFx=E=+1>WtijT^8&rkn3=AD2A`7$c8aA4E;{XdzjB~CL4~t z1U0?MX6ctyREk=%{*HYqPoSnGAGthK&`9NH>HP zb|+gtwV#mePb8^wj&@v2{uw&e@U8L`UwiTYfw9%LqKk+*5t(lzihq!8YMc~9s1lAr zMf$Jk^Y;e)B_GbdRg1k>IZHxek+$b6<6}wuJa*q8Z)w4Uko83thu~dd3tNd*#4M@r z8JFYi0?Nfmq`wVDA%SfeWVc{D>HkC>jb0iO`kk?ZBv2CPDmm$2qu&CZOE^Ae6Zuc$ z^i^7-GsEOgf?iB_{yfn!UP`S_zHytYBNHk^-H@rXLp_{aXW- zB&I(?`=1=AnaTJGnQe6Ao{KoBN#%DCD`w*VU3L%Rh* z_rl3cVuFN}hQ!#0?j%-VI6imKuj`*U>mPukN=jRS$+VZ?WFhsHjU~l6$l5t*Z?a?( zn(QWyBg$_CZ$gm&sJqbp9-V=-+t{qvpu3;sLy$+)hmwCFcupN;9xgGc(!s$~j%=e* z_mf}|k}5$}c@6`y+k%fDOeT2~93Qn{eVFBBYJBQ>^cuqC=#HS>8lOHd0+o2SjMI!$ zY-Wqi(a+2v1Ht}pxlFQ?a5&orKH&5)KEEZ|Tm(@`&6ya5d=&Ph%|~~aF#kvir57k~ z#b`Xr-3b&?P9VEV0tt}qBhWI8mg1lg$pzRdeIVhU=>0%|jP|^EgiSTZ_hQ!-{eOv( z&720%PeuPvY!1g_|C88^|H9}lN*6IKPaTTF0|M>9U?cnZga8YXcfjd9bnB8#R68?| z8CR*s*fY3*{#Wc(+7oQCo2_R$KFZ-wB`flj`pobRK~~~uw=H>XltyBZ%Vv`tgCUHy zBGD~44!}@lEy0$O(0=rLTYv)SzD530e@p{B|4#-m9c|R zC8ItwI)(8TYE&|sOo0DvPzt+fKfri4@^!E`dMn{xbGQZPCoGXu@HF)d^*`i2uzzGL zC0{K`ZXW*5F@BzUfqF4YWv-t_DZe7ffZ;$gyh=MY+>HD>?KkFV5#!BC^eJO~nCSo# z>o=|7vn0N%xL4^7PVrB&(!S3y!zti-VJ&Xn$vkS0J$@F37#9J^2{s>@{Xo6))M>!ekQ!DD~M2~md)l3!TzS!!}(;!yf&L==xn23ff-~W*aXHS%1N75 z6voRC@H>JeCW&kW&P9DnZHv#**u28%1zR$W>YIh2ErQ}Gr@{Dd%T$g(G1i2n$}o1_ zX0#Ne%*gAJKs98E=x?N*pBhnq#ZO866tJYqDiAiI=*QLaP~sr_TlZfj6TeS@6I!?;jKwqUGw!w@Yp^hLxv`BiFS-DS^*cDqvXT_UB5}d1F_WQ_E zEh0d49Q9Y^NaaWRFG;G3t;z!nDwUhac9Z0&Ncw7~N8Xuwje3}b0-(xld{rdQeQdnc zm$a+ZWf_v8FrMt&KbBdmcBJkp(R~P zo;y)(z>vyY>Q!VbFdK`jl+T458&@9gY)V8a`L5+4eUm^oxu;}x{F$i09wOY<|!*nR7(EF7M zs0^Tgh}saJ`JKqKpQP8I8-mUqi>0B>`u*{Img!?0#>TKU&Qw-lu%6ke#9&ujVfZge zeMQ!a+8(Fv(eF=EDjOJ^$Sfz?u^flLLG&Y+5jGYN`)iCp(YNNwadOF=R3`X4+tF&s zH`}akSR!&(8QtlOjUeC+^In$rC~TY3|APHAlTW8z6#cRE4>BQ@k2b+>@P*GZOiO?g zWOofFvL(6*dzR-qF%g&(Kbck;mJxyo-a8IJGTSaM?>p%bDaLw&VjoWBC7mE2G0KdI@o_A!8YC8Tiz{yMG zQ6ptt$Q-A|a1u2xW3OREc}5~1EWz0XyFfi}Hr-GPryql=(h$4cw2PA1e{7YnAi~Bt z_={4dLG~Tv z@#%+9%d&#$8J`-P`6sl)GzCY={ciX+%>p*Hv12$sN9Ej=&J;?&nnGr zYze``akPT{EQy~(v}ZB)9G13KX^X#}wA&)v#aJPH%p-w{*!Vx~+DXvVDCDJIABT_0 z_7jR3Y!#v~HXd1bOSCTf_vov5akQS~zJd7n7k%8P5;Ly*^fe6$%tyAy>^qsQbP6)I z9{DwrYDj;ItzIDh2H2!SZL&pSJ!HkmD*-l}(LG6Se_-2yv2^&&gpb$gbVQ!m+36*Y zr6*86>VGK5vxy}^F$?_@^q1qTrB;NJ2MSN$ zj-dVEO8i}SW_)$=J%8HFYN4#+Md^~u&~tk}x8w+iz{PQ}8|Ra0C+CJl zVRo62sno*pFvjkZL|a=W$!q8fWs9xWcQC|~a3jqBtS#XySPI7t3H*R$uA|%}Ld$pv z=eHQ&Pw;%Sms&UkA!o?V*Pv3X+pr0WWNK$oH*D? zfU_`id5`P`P8OmQ&&E~}bRM$Z^gGx@YB2tnB~T9=l|9sb)cw>0)GEZhf!)Xe{UC~R z0l{UKrZck}iPIcpcguooga^_2i?KuSF!ji^RDYEBpPe6({)*%>^$PVWRb>OyQTdGL zL`>5hXK*tCk|_!neru=|AW7!p=F7b%&J=x#UpFk2SCj{c30 z$`=MZGteZ`pyU|{R0c=Y36O%*6;aBQSRxYYhU4@mABFBB6guFeE_DLqDnpTvr6zS< z&pvE#GWHiT{{^0o@;(w+!zs!MtHbyxrDb?F%RSYWY%Yn+rSD;uhd3D-aj?n~enkHs zdiSlLRC<&v^xH7D4S(D5Tbp)O>QR4i-bm=%{+}&?44yNiC)9K(tDL5-vdY0T#~c?X znKiVBkxT*XKghXlRUZ2K5pXAbFCy5#=+1*{EU3BiOu)AR`hRTzW(Cz4PJA%Sn{FUBsT>2K1<=eHQ>gVRkUGK}^a zYIhuc!AS+$DjgXg?V6r4$Y0`g2eLM{ax+MzHM;GP7bQSMd29AR!f2LM#MpOCw2{tV zNu12KSw|;{{5TnEv)q9^gc((awQ^^O#55lIYT>?(RKEwSJ6*AQP( z89U3Y&*0}YlS>Pu<7ZA8V-`WWkVHFXr;-@O z3e-CornQWVxFOFT^i;|aMqJTAl&T?NB)l_w^$|n#v#DH`FB56xc0ig43|O ztRL0KGQ-I@J&1Bd8HS?DLkp_*&ym`zNjNN0{}JtAWZOwRFM(I$_YOYFo1Z?6Rl&zj z##0b03N^Z(e-&7chL*%hvg&Iq5f_Ie8DERD_hdX4c_1>CW+eL3+M8*oF#Fo*bjIxoeiKPvt7{9lYgIhG@XWmlQ(S~K_n<9^8YqjSX!{8oI)L!eUFy@J2O%_MRX$Mdlr zMBRvu$`^viL#G{n@#YSdbmT@q}6LGL(xi+w5d{-s|WolK?^jj`9%X~g`5Ji6Y+-L}ClIFDngPh%P< zFpenQF<6f*8#SVY5=12-Q&(9=I*d0KxCjM8W6O-{z_%EzWxP?Y< z2EHPEhVmn70#4MbNNc44^U<5nSW4uv$o_i^Qkt<=)cf?)<9sHJkKXD?$u72u$xlM+ zBlPy+V~dY3Dobn@zvBEEH9bz^;zXqsj^f!7pTe?kB9UZ_HAQDW_MOKN4IeHGvP{L*-9=PhbloR(mV*ywow#czJouz&98- zMsOVG8L3HdewH99$@mS9BFY5hue>{dN*$1~U?NY&p20zZm4iY%^a%~>9TFb4^HS}A z9qBW43GWx!J3O$14Fm`F?h+i>K0K&r$G{*gb`I$p&^3DTF5%(5f&=??3F*)!FsNh4 z5IG164eT5o-YvLy&jIof64oKKPsiXqfgzm&gZc)Aga)+_-TAnCz_fp2wr?NYGq8P7 z&z-%yL`gn4cEJLaeEKpg_me1rv$j2nQa+M!=jSI;CL}2v+&3hwvpL-fkpTU9HQFk{A=r*fQ zo2Zwf^y#*_JhFmQ1dd@n~hjL&F0*28V`b_uD<68+BjibRC$X ze|5q`kp{XkX$97=TxsY015wk(DBY+-aOcpFz#e^qLW3jLBqS&>sB`C#K4HB>`UXWT zPEVGHb?g|@t9y7@Nc)h`;4wRoN8P#ec(hSz5>yK6*)z!RxlT~Wp5Z%7KZtf?ajiN` zsb{ck0z38TshtWBb4w8t)+xAWNH|Fa5jwaRV=RaIVW{*C##>lectjS#`F185?wyr5 vZ3C$W1s+}ff98_UQ#Jdn`dy-zDR7V?#frNZhXTbNid!j8 zq1d_pJM(^ce>=0gvm^ICy9tyt?p2!If2VP81_jP?_`m3H948~D?BqDBk~>b~^Qv{6 zZRveZ7Tk`5@d{?b`WbvqdhCs%I0dug2F#6@Z8=^>pOb`g6voGrm=r5w1IKZl`W)n; zVm12kIu5~`s0TL9N@EI6R7G{91*XMTs1XfBb@W$z{<8HdYKE?3KKz9FF?XoX$&0PA zAWp|9Jc63(x0s#hJ3-lePCG1WosXK*fb2e}4TfQ6oPg@!uc-68P&4xv9>$AdKBqj+ z5BE7a@iwabO@z;h!B{MfKVuiXf^IDiDneamnak(w#JorxI)9^X{11oY z7mSB)l+Q_sCndlCRp8| zf+ngfpgPb86=cIuBc6_m>i^mDpQt>)j_)y`kjajZsQYsiHuo1qEkz8L#73A4XJJkJ z9jhzc*|s{iu!O1P0?H^wKEW zj5HFpbmdVUYKZDcC)9O)QE55LIu~74EV32Lt!u0st=p}8t%s~9P-%I_makZES?^n) zT3=fKwSJB!|J4D18Pl@_)}+={)(qAVYq&MaTEJS&8jYIjim3E!jf#ZL;UO=`@Dn6;y1vPK@bMBGiL3ptj5iTVDzlOf^tZ+Y0q|>xoL&C8&47E=-H3P&4+> z);~iHwxeDem+%KnTGe!T5o*TP+wxx2 z15Vreo3{Kn>Rs{?i{n?!ip8sG-yr{*bD*jF0oA}c)C}CQ<$rBCZgrpYn)(c=w_eg3 zKJVp~17j)Y!)P3ZmGA&+MibWbIf0l4)qY0QjOE1CJl`qBfksjfwMK2QA9g`a-Ca}z z|DtxVPpF3C)H3&_L?7j>_#U&NmL^kepOXy>S({)mWfv7Q3(-{&9OXdiaSr3+Gt^G@ z2DO$>tO=I5sB&^t-lsuLZ5Dez6xG4psOyTLI$jDj6Xj6t)rj`l6mU1T{nBU3+2*>cO*6 z4KB6i-)wo0EgwOp;U&~t@e!)QFBpai>zNMbL&Zoms@?@((yz?Mg$f@}s(!nvrak7#5%To@xMH^MA95`%HEEg!JnMLpQx*vxDYszVtt zi}F7&2MU_n7=ZOr9chG`k+!IG>WT`^F}N6i#O_$UiO*??D{(v~Z0d7n;tU*s5zS1x zEkaHCG1Salz_dKydBA}l^c6Mr37VS=GNPtF3ibV83A1B+R4{#S>!+hOr1hwd|A8@h z3AI%Rw=gqR7jsb_irP_EqFaK4I~-_B%-qsUVOiAH+Xl6P3`YgmQd|B5^&#>SBQQxT z^9fc2b5QP#x_&llq`OfwcM8?|tjY6|zG zt~-g};sex@)M#VMFR(J@hHZULEnI+I@i}S+o3}GdH>#cMb9z(pnhJHKLwob_*bl2v z-jB-DMBnoHjLC5uKE%$ru!D*I#NYXx#+0{UchVqPN1t<&^6*YR=MC2E>~lt8`7V5} zbN&eb?*!$7Za0&cx=Z<40a*=aJZh>Q_AoQ>4{Am}qBIKP4iq$tZN(Z?-tR+2{Y88JA8bVV1FGRVy-b5`P;1-;$KX&@ zkokL?FQmMvc6OjX#m=JMHII>{a2WkEGmyS;4vEYy8_uq4lSo^YTv3?FEwt}T|LJPj2Sr?4Cb z4Kiz1AJwt%YntG3Dkqj z+wxe{NT#43v>vslTTwxE3YF*AP%-rk)&6_bRvtLS=M=-ls9>x#g#1?nwW&}LbwK@w zVgTxft*D0f+VXK*K8t$b4O@PK%7VA3SV=h4%v4rXFc(7Ykkzc;qTVGVhLZo?6zpX!wYX2|P4*J&R zKs^hhBT~PR$cHhgm>7h`aSIl}m#FKq4>xOG2DP@$P&3sU^}sIHL8z%7kJ>+`+xoev z0lF(}#THv}5Va&{P-*xG^)C2?d4O+jq7ndzQmz8Xtd86i|=s|x?@c2{Dx;*;vkrcfN|!+P*gUQwdJO$4P+o{>s^dmn)Rp-K0{?i;CR!) zaMb z@>J9a=b`TZ1+`PIM?bzn4eUK?Mtn0()W^emlq;a_pW||%DO!l?*(%f)x)b%llc+Sj zg1zt=j=)y4%s1Q})JW3LHc?#zt5bGy3jTqFmece{)3N5LC2fuBpxehD3`K1eV^JfR zhKkaes3^aN+PPj?b}>g>z$u<9r>4> z1NAHuhG9NbG&jP`I1C%(d{lP)ixsfmT=ShU2a8iaj_N?1dFCw|f*M#Q48?Cz*)tLK z!Ll6-EB|kEps7kb-x!X{@4~hmi`uzbp++>U^ncF z1@Ss6h?Dia^|&Ky z?R!~AqM~~`>VxAqRFG{%1=DtW{xa$t@(n7_)2%XDP#!g~witqgkr{TK`5XjOvB7!{ z^=b45bwl#iCVe7NH`cIrM?Lrl^kN0|t#<^~(Hp3l{eVippfxtDQ0>NI2IYT8dt!`r zA!_Y*qGI3>s-df>k-x?y_#U-}@qRNglL}QIg4!qY+WN_;^qYhFPPl~HDgVO+%Kw11 z=ElU<45(nqfqAhcszY5->DM0>bfZv9H4PP%b5I>vgX-8W)QlWQ?Vx|5+I?uxe?V6w zjJM7_AR{Wz!%#QmLp`7%U+C<@oE3iIC)RlAt=C4Ap+7 z_2j=sl#L2KATKJ<3!@%f92JD+u>jUZEx|a{eUnfd%}=O?H=vekFKXnMZTTNmjKteu zVk3SZubT3gs_!iY(;5Ku825Y#r0J6lc6U~95H3l_>4NyJoVJ>h6+wy4ZR8)t5M$ObZ z)KcuT<;$ogdt}T0?WUtCP&1JYbzeTOp8PAzfu^_)s>j1n4a`DyY#pj&dr&uCw&h2d zhjPFUV}7hixed0%U$F{)v(uz;L)3G|V-DPeah3nKI8eh6P#t)O74Vx~W@_tTAm#3; zsqcdduHjgVyqb=>@6K+Y(*!@Dg1X)w6RdquOS%Y);yzRdKA@{;&bHTl@x-FmxIb!b zhoL$))w%$c|7%f8wB6PpM9tWF)Qmkx-T&E^lk77c&xneR2-N*W_L2X(upAX?pf0L` zZm1Csu}(qVun@KOt1vI_M~&na7Q#&XO}f>!erFwOosPPHIqJE)_q!%|PEnx;KR~_5 z-`ES{{ch^hqM|ztH3KjP#3%X`p_xEN}QVo+OkON_wYE(h8w z=UEq67h9L2mgHCTrXGKxyxrC}Kjd@TQf`Mz)1%gBs86h*!^XTAO1UN$#$MQv*l|~I zpc{Qhea?CeLv6K}F&GmcGw<;z)Qt^M*H1yMG~q)U1ym&a1Noi%6q6O{eY2};e>f@RzyAcJ6oQN8sR$B^`~t83tLX{hk5N5LhYEn zQ9I*W)Bv|)5xxJPa-bfCo;2xE4~tWtj0N#1sw1B<7{gDQPq7%(zR(||@dxV})B}^B zHuW`7c|RGoUu?%}_*iA-f1y9kRJF%o%A-+vz7(}%tw+5L_n;a$g0=8ptcjJ+n5CJG zT9T8f;Jl8y|8LZFA5d8obJjekF1lK)J{%}I$D^`f0V++_pc*`2&!0st(PIq6FQ^Cj z&zbv@p`to7>U?F?1FKsbqSCI7E%!cWfBqjvg&sT()$>`XXkUuj2iDs1epG`eP#wI8 zdeGmfj=aS3_ytR1x$`D_Tnwf>78R_^QL*&LoJ< z6+H88{TbACFHsv&+KXoC%A@v?TG$iY*z$SQj6Ouo`oS5w=_kb-ubSyAA9G?QO*%)JP{-7uoaM zt*0;-=kKD@DcKb>#c44&W+EqQ z=PQDGP-$CV32RWUgM)A(Y6df0GY^cgMxnAOKWb)5qdL+Ieb@n0DE~Whpr9Cvy6`8| zR=EWgj8{<|dt&PoUN;ZSjhd+vs5PyNdO#agx^_j~-w!pAv8bh-jM{JJVg{b?{K0`n z@W@{97S$2|4bwmfs=<8L;;5-Dk6kbZ%iv~IJMU04=D%rTCK0NmA*l1kP%%^qUG=;< z2lbhgE?9)}@3+iO_#bLb3;bnnY=cV2?x@e~5!eKOM&K!wn z?x-x8j0)OqcgX(>99*y$th#Hq%41lT`nNa%i`+9WmHnuhxnRq$F+1gW_stSUp*kFc zs_&25qUWRT+ltDf3z!R^-Y5UH)@dIYOQN50E7V%HLrr~m)JzSq_2W=$Io+OLi2AX7 zg)Lu4J?K6v20o&eAkjm!1BRmN3%VTW!V3086I8x-#7ba zX3GIjO_XOxy;E{o%b;ee9%`U%Y4&uHENHVnxPns%WVA-)YRR= zav1oJDObh{l)IqrTaOB^tEkwD_uM=%Cn~lop_aHRexv+v$${3eD@NiRoxlUAAUtEe zj{1Ioh?;@m7v@2YP$M5>or(Hs`WFnu73j?@s@)x^89R!ursg^a+8Car%AZjAo%E$K z0(C=K)Pw4y8fu4nP%qT|15h0vgKB4*^%qooTTnrK8Z{G-Uy}dYiJnoR1_NK2hJsKH zWwGTPs4cVzY9ysmL0A>@U{{R7`B(~1V0}#R+Wc*}mZkY6*a&}1Ot7PNvaWq+zA4}QYhFHi-kZ<< ze6Bqxi0V-h)N8UN>H(EdQ(OzzVts6iaXv7mJfJl;!$JR1kC#6BoDNvvv-yLDxnF$F zUao(E#c`R$H{|WFKK7^a8=<5scf-q-5fcMjEebiFSMeSJ2Y(=2^ z+-%$i zWB>ONYn;X0oC#5r~!4d z_Csx8BT*xtjhe9)Nn8^&JE+jkbQYB+f1^I3!jhT}FKPtkP%%^6p0AGqlpCUE ztO+W8+u3qgREPRoN1=jys>^}a=x01ND}>gz8w*6an5J z&1S`Hlv`WJqJnc3YR2|qC|*N-^L<5a(V0@3cFS99Vls89F$Y?!PN=o(jS)B$wbsi} zLAePP6I)Q%?ZGHKisASUHKmzTnYGT2iiv!vU@nMiw~J;6Pl9gD^5}fcHz}C3uK(rgUaX@1jQd4{9l1p<*XqdNX6`urlQkERP+r53Wg1 z{;LC7GnkR&wH86umqw*cbyQ3=vbIGnMK@IN_Op&d#mZ0CRjB=7kM#tWqP-=Rj>8#R^vQ5_gzoq!to52)-|h6=`A7>bur z>G{!`K8qJXdCLjlc*WGiHeygs0}P`u!)5- z*n@IsR7_k)rSomn2ao%ZgF+kxhnRG0fC`c+s4a6ocE$Cm2C`%|Gm;I}u{_pNs9>vx z>S#S%-x}3kchrmyL$x~vnMv1K%t0qAR-;CeCe#>;n(92LwJ(NxUrgYe+m?@_X6yobKmXt3Kx^|FHDZ5+S%L`Eeozp#X4O#* zwL&$}8MToNLJeRUsv~Pr?|@yXE%+Z)RwRxz?PW#njKw3#{~8>WqC(O8J?i^?IhMxz zs1J;6IZSYtKy979Q5)23)Ku<6b?63a>HbEoah#myC6yY>QLc<-aU$l%KXSU}z5kI4 zHIyosNw55e z8sYy?BifAG2X3K8@)8ST!aSxv8Wr`imbz#@>Z6vj z6{>x=4+mP~$*6{xqM~&hR>R$>jVM7rGZV=$mU3a#nvX|4=m*pew;t8-pV$E(qp~YD zzi}WcMiwElwfzn$PWD3z-pLLv687Q8Sga zu-W-4AeTGcQ624x8pt4fegq~~{;%dBm=oJkL30(=p{J;z`WH2#xJ68GW%!^yG5SC%s~s>W>2IkW-iEyT9Rl~Ow>WGZ97|D zfXesvsHxwM3eL-@n0kjA@i)cIPMQ)`&WxIo?C9zsx2-6GYN!lqOggY-CAf-uEk8rOUgJlbH7|#1s4lAEmbTpAo*#u8z)aM04x)C@8>n_4xg2O~ z{D@kL^r-qMRB)9?J)j<{gI#R>K-3aVM0I2VdiwzCfje#aJSyn!VFbR%V01&u znxHC&dfg61JzyMaq%-knJca6c$8si!`k>Z)Fe*5wqju0Gs36>r>eww*hu)yFDX_e$ zPl3#^>qKy%o)t!oxGE}bTA?~L64me|9E>YaQJ=kn>1Y({LB+8s)}SPw2x%s44sfb^Qj^b=z(I5!83W zMN~(wqL$`~t^b7TuoGjhON6ebI4K7@kq#B**-$|jjXGZ&<6sk1!>v#=(gStf5L=#% zYG)2Ax|i7ctr$%CfGyucb^JvP`LFl>7b>(y>8qFxC>r&E7N`b0p*qmlmIqtMT7N*b zGY{49Hq`xxQ5`;u3hFzk7<-PtV4SLMfb)QZ6;;iHrd2ajJQtf$zY?|A$E$8)qXOz> z^DQd9CSoN1f-UhRY6p#~VLmjfV zo=@4->^GUQlivUNIZ&F-M@8*2R0G>lBRPbc;uBaLZ=kMA+sxdT6E%YcQNdab6?6?y zOZP2mKk16fmcI7_^0cnLMKr>Lk7Y;GPLgyEF4qZ+J%+80`2 zFm^?adi%n}jy$sdiyC>{mZl>~Q0=Ed1$$^q@?Sw#o(kRA8a0(YP!AY~8u`!m{IB->R#XR1 zp=R!`Eq_J@Sx_r8gC$Yz)CsS^KqeO%F#>p{bmRn)We1GmTRIq z*aX#JH>`@oQTLrdveY?=3f?oQb}yl3^d@SCU!pqb#&2szlnNCT*-=xJ2g9%gD(%{! z8lHm<&P7G}uc!uBqM~{oD(DWNI&c!z-g(q@_iX(W z>r2$e_P!JOuNyLSwy$ASxfCkRD%f%()YP>^%}hU3$A7Z*^H6!d(RviM#y3zikfe)= z`V^?82tmzUF_#1FU}ddMQ6uS#nj)Ro4HHq(y%-hUt1uXkpgQ&lHML(+Gm@;UnXypR zOyorks0^yTdZ;vXyVw(humTlRP*Z&l_44`4mOo$^<+$C=KLv^$(YDq>TOYAxmInaf3tSeAG-Hz(WNz_bSMNQd#>od$w`7P=llA(wB z@+pQ2#zv_7+oAT2o>&H#*!ugJR{8(RJK*nT^bBw=azQo>$B)Q9&Jrn#q!wSnvO~9B2l5phiAiCvYbI4;P_2Ql^gy zrlqKcR$8~C9&{9S-)U3_ucMamA!-A1`kFK^jnNeQp{s)}98|`4m;+1qGk*fw5zA2C ziVC{-sGTllf3pMDM#aoPR66a!Vt5;KVuk^{4awKa_$}oL1I_RMUto301qYG;wK*6u z$n5E7u@dD>gH5>|22);(G59A|#B@WI1DMy(0GNYC{(&ZqSgHoueZ-JW138vrWpZ?m6K4IaR1_zaZ=#m1U7ZEc;4YTyDM!1&_= zoc;I*?!YPI&G{-5%map?mSzQJ!8_J~iCza?Co2bf>&05zqBe-Ws4aCcY7M8MrhFwT z-L|5p{tzk~E}*9P9%`TX$NJ9t#Txf}b3TbD`Ip*OWVVJ`b6X2rOIs^hYg!wiI?w_Y z8(mQy?S)E17wh0e)PQba5Wd1dR*)Dh5`fVqym>29Ba)=qzd}E~C=zK5FJZ*z*BDkpG&2_&=Bv-=KP)+L|5JKtT+_ zvZxtoiwfG|m zX2s-2_y~q^W9Xs)=R2&58tF#Vl#hxFWzQLw#8+izD$99$Z2Gf8}8R zO7ms2f0eoLGxnpt^lCGL&8V!nib|i))>3QCZ^wqB-f~ZH8ixKB;M~MbxB+LZ4RA)$ zp-Srly#N0H_#F)rgE8mzO^q~%F0 zM)?Ek8?V4F6FWUI4i8+1EvetK+YBuAo&f!`8%{$EMRzj?fNJP2mc^9E%m+*ZtU}qv{CEr%w4ZD_@9_ZdTeB@@ zqka>X(D(lp4wP=GPMAMHtY@8oKT^L3y{P}gY&1i08TA+N1`auCzLuMuGGDj9Vh}U) zH`eF;*VE>Y^Xvaqis8gtMH*W+ZJIBWif<4;(Ia>O~)!H(F1@~^0k zD&BdsAB3W|tr z#Jy}9cy=YgSwek_tLAUX_^+8DoPyz8w*&Q;Qtwo|yegKZz8B`hO*kDN;8h&>+?=oX!ldbJ)YknczC-sS2d6kV`O-w? zyjSM$Wk0x*^L)^Prj-OnEwLN85@0R65K^?y@@`X zw5x*kC@)6M;J;W0OMVG(TH#dd3#t5%{c6%-18M|;dRhATwHZF4T-4|HKBGee{9Z$a zQNc3-6|A>WGmzNt_r43lQ9EQYY=E6mukrn;jqIZJGrG|{C|jW4sfg|3_?<$yGA=jZ zU-A6jXZPFqerFFic23~;e)XCop|LM2E%#wKKEd)Bl*sS>4A}s+AuUGD=xb}%#D1qO z<=Di2*IUEQR4BUdqAm>k##kTq@)?cM_#QQ-MU$A34Mk1$d23`+Geg5r*PlUcXvvfL zy+2ip!HSgcqdJ;1x$F0SB`alw0>`kU584?E2t$%l+N#c2eiSpw38~m-)V`5+zfta6BlI9a-o{c8 zwJ$VAMf*5Z^#6vMfdiNwPhynb|F1bv(1nEiy$_Jus10H`>V`2$Po1f#4P+r|%2!}n z+=^O?57-FfNBF&8*|bL8zY{exhpcC?3*{SlNcmqi(u^Qk4!`$O2}a#G4Ts{-sGr}{ z<}@>qA3IX6fNJ7HC@7r>mJm!JfQ0FURJZy)Wu`YSYf9=(S zsc4Eb?THttSon&H(!_bq3DsB9>apY#kMSg|(c zrv=SYl`KU5SD|87A=B_J^i%!^HHEKGGx5i!s8jztZq zDeC&~Q0?|{Iq>ojwN_&=8!ooxBes0cmJ<{)F%X98KvC3;l*7~*iz)CsR8|Z@MgJt! z0~et>uo`u}yN!dm9Gpg_*F{v%A7LoIMBSLGsLAVK>_NEzR>LKzYlQQn zN;gbHc{D1v=Aqg>jbw}Kyyl<-71fLTz0cxJs5J7IF!jw)Tj@c}f$vazdPqsX_rq!< z)J!x%b-W#_LtRlb+sirt73{;1P;jQA_wRpB=Ri}k!d|c$l`e--JL4nN6o0`;{HB!I zc#7a@$_udq_9$)k`pu{gC5|>7OpSRcr$t47460+bF-rO0fCF!eP#u|vYT#GY4I5B5 z>_GiQvk$e#Z&2R>@ynPFv_d^-DXPO4Q1{rH4n~!iqddf zE{J6*mq7*RNYn!spwj9z>H!JL`MsZ@k|SB?)JE0UK`luWjKH?2bf1K)aA`U6UmuUL z<^A5b-((y>xj+TK_jfs0V{6K{aWI{2l9H!&=6bE(a5-_>9wWd~Lt?A0lLkHCyLjsG#%JG3K<^ z$8hRh9D>Vn5@xIG_x@GP^{AOFTF<2EdK^LdGnPTOzS(EoeH?VA;y$Wpu?Wl-(JpxTMGHncWJwbK^0<90^kpB;*W z{MZlmfEB2Qx1&b96E)Jq_WUJOnm$B5@C|BYpD_W3H#aku5A_993L~(cb+UB}djI<$ zw>Z$oa~~_>OH{)}T9_V}L2qQJj>V$#xGw5}T~HnDhq`VYYKxtQ+HhuI7W@e{Gu!O> zJuMi&MzWs@?NFysYkM8l&~q$^?@?11)zZ`#LOq}~s=>0Dn4VQewNtN^*`V5BUCQ(D z56-{9Y?ODm@q7Oy>zy{P*?I@G^?SduoQ8_d-%vqw6V-vBb|$(jqh6gooKci-u#oH&M>i5s0v zLockaP_OAXm;vKmE{wnsPUOJi zSRJ)Rk3-GK0W5<5Vj;}a)x7W9V+7^l*cDfx@;^;CvyqL(?jxvyE%xTq=3fa$OZYGaB;Z75SwLAewaw7;QdXeTQD-l6h3xS!wq zH{!!l>HHV!z8AO>KcIqiNq^2O|2J@;^!XjNW1T}?a0iuUFKju%0Mn5)sPj>n0!yIQ zycQ~ETBADH2lZVs!k(Xlx_*@{??qP^oUtb!qdM{#)liaw=0PE-8OVcLyNalewn25U zC#nMzZFwH5oy}Mc4`U7t8f0Rt6zb!%yq&2a2Dn8@uq$^>RnQM zg1NpaYKh%09B67>>r_<$j2Ogr9z&FWk z(aBKnnAE7}Wkr^Zpa0E)(;oA1;wRJ(2uCp!{*9Wdgp*B&a-i0_1ZwZ^X6<7gWF2lD zYn^1BZvDxVX#1b7Sc2NqSK9Ih>o)5i>p|;r>z~$(*6Y?g)<@QVtZ%IUNuJNo-DV_l zt%SZ(<`{Eqzj!CDQGtlLo=)J3d-H_%QL(WO_0BkgTB^sWHBK1LbgAB0NZQK;ZrhYGq~sNg+; z+3`B6!vQ~<4yQt$&-EkuUzmeZRA?vbgX-yI)JPVgVq!mPs*j@e{$%RY zVFAkdQTKm~O6#$xPqF=26d&P43~}d}J$f}N?GBJ@npP-)9`er{X>8 z2HzrcLwwYQX;3$YpdZ6fBg|nfff`wL)Y7#^jl3^vV8hXyDb$9w6m|b9>2k2kR-8oj z^rrP0s$-w99>!U0I@kntU29asJy2WnNLxSEmj7qZuR^8iZq$sON5#%N^#1$*Ouv}) z$%%Sk5!4N3Y`G!oL9K8A_Ck&1DQcuIQCac{HG_dm%u*&owU+@k;%v5D$d*elA^&xv z78Q!(R;U;lf;n&!YE8GIruL9Me+BDMevFFll1t44>Y(zyEowiQfSRdUs3ls0`heMv z@rkXAOUZww%dKVR0pZL2&T+~mkn>L5U(K4wM?EMpD!8(u8ZLnvKvh)7n_4@gIzAZn z;0dT1`XA26WvKfrxGT(tQ5Q>4F%I+L0nCkWu@GikY4W=Xs^RZZ!8r%jpM?)`pHXNe~XHd85oUwFb2P1I96V7?2d}|A5ov_drujo2fRKo|VD8oM?$!f@v6m zzuWq!s86tr8_g6JK}CCAtcFccS+dO5Z$oWddr?bu1+{c{u?D_GFaM)AnUUAV!JO!g zSMWKG#$%h!50^E!m?c_*JwOfWw~ZQZ`@<`${5&7$4(!&gVU7Vq*It6Epi!Gji&X&Hu|(D8C=0rtC8+s?!`c<-F*n87jD% zqSB`=YD#;dt{;vX;T%*uOHnVUz1AD3>px-}OmKw!S3_Nnn4M}cDvC$rFr0%5#ZZXS>qbwfQYjDt{b zwe{EnZ==?-%n9@J`&?8sA46rqYgC6a|6$rIhS?}L$5J>F70mmv96m<9uH9TGP5M+v z{ail@+u=b}1Cgi922~SP9*Ih)<)|zZC+C4usy{eu{3_hMp*Js^Ib6uyHkFR zERpN9J!3{Z6g7fPsD0oxD!pD=KcKc)=d7tuhDx_IsEsDl8jV__`lvkbiHe#3VJt2~ z1>buNQ~n2>GZm4j4irE=s3t1tT3~$aj(W`wu;nqRjc1B2pF*weB~%Q(!2+1zyt%&= zDmW{lI#34_@_eTm2a3uL_JY3X{oIb~&>YkVH=&~ZI4bDwT74JH{aH{!6@}_RV^mgk zLk0OrTmJ)U$6bcr-~U_BK?oHGQET}CwFD6t%}i87^|&djqwTG|QE4^;6+3e=7|)^F zdxOO=^(C`)*TyQ8XQH1hd!L%9~JhxJhpY=s(mH`LOMv-LlsKCzbC z@;1~+52L2~0%|62qhjI%24ku#CN>IRA^%m;)>e#0rQv$igD#;u@(}yrD^$95xN7d3 zj&&(-#MT(^n&0~`9Xg`Y>rYhHygc~70#p_bJP4P z_69~#4!vc19E&9>4@1SkPE?Rx!ASh(FZ0$bf?C3s7>pxr`4`j%br>~3_X7vTIY@BZ z>{Jy{H#WuJa2V=AQFqLr2UNqQlxJf>EP2Qz9-HWHf-Na`N9~ZOu{P#@ zV)h3YyHXyDW$+EAz(P+=Fjm1l%Kyn6Xd~H;-J!B_~j5tTs2LOENmVXbFv zirOdI*m7rUFY7?-aO*g!{GVbgW}!BidDa!Sev5Ut^`P|xDtpeNw&I7VHBI--d>uz( zHOfO!GkX-3O_xwvb01xe{Jp&(;Xfu_(xE=J@}WlF7uE0()Cecp^Ruuc)AyD6 zEbot+fx)PbO|#BHE!AT5;~H#$>rowu|Jn>R^tEfY))G``cAaT@I64a`yXma{O((`CPApF3PxR+5A~pmsHyK_ z&ksS3crvPi#i*%WkLu__RL3r&I`RS|FvB|&)D^HPOS<>w!=gNDC+mRGI2KFbVXS}wA56z8qhg=|YX9hp8sPV~JkOL}X9ow`kxtkX zUoZ>hjQ^QEza(leua9~Qw#FFjk9BY#s)H#$nwcwwT`0$*W@L}8{}a`Ld#Lu_VtnPl z?~_@Rgw_q$S22_L9e1TqGUqfwNk5Ms`I3UoA zjf|+M&x6`us$y%>s3Cg){^xdopcnn;QB!jj6;ux}4}L)17#SGoMQ>qLkVRV?qpt6b zTI;c>jx0gN$`MqSJixq|K8~?k9RB?ioftxeM!XKo;%iiJ6^d)>`(iQ5+fe(%D^$?s zix=okbyw>W)DCwIy_rDGVB+|J-rA=|#Y8x&qs8L$-#;nu8&VM$n`0=pvyMl-eph2I zyo!1$#Y+(AeURkAoRniw9~ymZd6IP-s=a%t2gXlmW;6_yT@73g)W8r_@cfF3{*$Pn zdxo0A1c^*J0u^i(Pz`>I`sf^ude9VlKwNL!Hs2hGn<@pBGNdG{k)h$$q0#cZcrpMNlBT>Qo zJ!zB?M9$xbOP$Z^RPBEoHPPRM(HI>s)!S_E@3~aRJz38Pa>i*}b2Y#`p%xbRBfti*6 zg*nia)<;e0BrJ-%Q4PIAHIO{i7>=5uQm8a+fSSQ>wmcj)ke^WZtw6=XUR!?-72NmG z`}=>7?1|T?^a#ur==}#mk+_X=s_Z78PoYM7&6Xdc9`FXWk0cB;J7r#L0c&AvG1QWj zL}g2bF!EmysA*5c3lH@EE@)Cz8uqs?K*hij>wS!(?2ica{*qcg)L+jZg88Yx9~tNz z#g6{B$;mcr{;3Df5b^nOLt+ByfdWbPRb)Z>3qFNebU z1HC`@tB+MFFGe-+%$5rlFfrm{1ocZ$`@~7q2(uJ49j}k-&OA)z$t1*lERuDHKHP@B`J@(t~#o{ zmey{lePk#q`e&l|{r^9EVg>50v=8}iM^O#mLybH^2{W={s41+7qp&fmgEvqke1h5u zKiK*tCCz;qupIT_7>b=xOELwuZ_F!6{%cA$P$7?@I`9{21aV542V}M8LyfQus)1Iv zzMplBJwMZ)--H_RaqA0II;Spe%v+lL&rL;DDzqj8QA;oimA4a68_`ZwjNCMb!t?Q6-72aryA-(HBd|00u|+hP%|(Kb^lJ(44yzOiTjiTt!2`3CYUm!E-Z+O z>I$ftsf~I-6I91KqejpRwSNr9Fx-opkq4*_zC{IF{PLzg47GHHkoH}t8VC9$YKYUY z4K~Hss41>h!OTEARE%^*Mg3^hee+NaE=LVyH|n2mIgaHie_P4yuq#nnatk#OUu8-D z2XUZ{BNXdmNsPj2sJ(p;KEjWvsk|3s-T?`#n1-WJLDdHJU%w7PEy1j+CWh9dw&J@u z2Scivf$YSLJl{FXfkyfqBQUVKiT)_8Ot~r+#_6c3JcfD+Jw!b?VGZ*#$%cA|G(@HE zNc7_d)RJyNE!kmI2hXGT=l?G_PzS!C);dK^)ALNIaxGLaHAYQcA6p)STH}SNy?rC9 z;X}538ssp#)J!F+V`eB4bzgZ5#-7&cbzBn^8*Rk}RFJ$wMS0q~CfKr|-i}33Q`o@Pw?jqy z5L66(kDBTwsO;H<3eJ6~w7ZD9{vB$G;<)w9heRQ4Lq#{#gU+BXe1U4w! zqZ*7wO?gk$5==&QU;(N_YcUv)qITBDwmwM%Q}2dzps9^PJzxyR;9|^;Pcav!Z)k$9 zGOFQD=s0;r%Zhnk6or~&jx-9HnR9m`NNw9k4SwU4~VRLcLPO-vMLM?Ih@YK_aF zHkg{I2Q{{KLp3-GH4_U^X|@e@-!4=Kj-!_Fy7eh4TmC~m=bNT%SUlfJ#X&e`MQt!u zQB&UowSz6dws;r2W94QhX11bc=7seg>i$pGtj*1m#Gul+5vl`iP#x=wuA+Q22l4TH zR7YlFecXlZF{nkL)6>VFd}3RC($ak6)og8EK7%lT>xNie)CfnSw&aPZ_J2fmWFh{B zD_fKQgE(m1hK+%S&*M6b*DlamgxlI1n{){D{;cQIcY)4Mu5Z@Sd~Bxe6zKhNTTL8E z{boFlMLU~cF!;Nej-J7a)PF|JK>4mFs~U7A|Fvdas8Ejwp)MGSTKie3JYI;}`Bq~n z?#5ueZ4KyV8Vp5UR}9r|Rn$(`2-Qw+R64t;>t^X-ItR2&rf3!FEw>pJWG7KK zJU~V7zqXvDhpEqk^Qq5^8ptWEhZj*xnX_l0_m@sapz2R!O?0#M3iSSvs5iEwVlNiO zY`smx%~3JZ4F_Of)cgJ)dp@d<$%fLX4mLrhVQ1`$<1sJ3LuE;LUlS8Kjr{u$9B5~% zhzgEQsE^G)<^pFtdP{+d?uDo+JdBFs>!=xeidve$ekT1QP!BAQT8h%BcB-S&xgmQ0 z{a+Ujv~!I@^?Zgcufu$l_o24rSJ(lQ_vZ%`f^#71zD)xHoh5h>mChXpni+eHT;{w$ zb>tN)2Hsf%22s`xNjT7kk{;E8!lnBkH=Ns2%SzdL72% zl#>s(BS&?pA!-I2qxZl6+ns|zDn{80#-s9iBI<#YQ86&bx)3#`%kBBi*8Qk=#Yt2U z{)dW*fFUMZQlOTgAZn?jhmijv98{q~BkYX2aX4y3<53U(3FF`b)S53vt@S2be;IY( zP1M%=0F^!OQQ4Ags40h|+KEODpyE*SU%^wC3PpVvRQ@kT?OfYXQ+No~A!nG`nv>yN ziqTjSuVEObr9Dl3G-@eYpxPOL1#t{&>2_cqJmqqblY=i<2y+ZKUoNdsu`moZ(zzIn zdr?987iuPgMwpR=pgNuhHMQle)luo!0QKN;s2G@w+LGP*9B7J{q1J8sB(^Xq!&yK}yCZ=F+l zs@{54`gae~1GR+lhPj!hhU({pIy1#!K3E&-uuU}iBB;IJ4z*%upbVSEoYldn*x*gMWGbrPsYbxx=R>p?w8{($M=P^cAL z2bJJnsB3s0>aaaCzPIu3e#fZBqtuqGS<^bg~d+N!2dk5(VlUJr*#WISvR_rbO>*>tBj8j`rrGm(atd^yyiIsoPP z3e*xkF@A#Df{-)Z(#C*V+N4nTJUi4%lruJg8R_?c^0OG~iMq+g&q4ps{~ps&zz;AJ z3^CIgWQE$2A}}kg4pYIQFezLGlfhF^PsZ1<6?_NvWTW?m}DOJKQ)5dGz!B3#ywDmKVdN#XTG~m^^CKiuG>whgkmpn_VuCcX2I-m8`Kl@ zIZO%z7CO7+P%F`7A@^VJbowArhEt*T=mM0ZH&8PSx5$Uy1k+WV_e6L}4F z7-KAUTbdo}5nKY+f)%X42xg)=!LU=%iSA;+bi6jM_uU>NDB2ND+{&M zgCP2zy-+jX4>hwhP}l4VR3f2PxrAdttxQfR{R&Wrxh~YiIzVl?Zww8+c$|V#jJn!g z!$eR^lnpk9EnsqZ2Q=3V3cMHUP+u_leOOHQ{{syj zk{oN@j4Hx3^lL($f&NedXWICBs5g<@p`PIfp&mFVj2CVE7S#KLCs6i3tRHoqlc$2= z^!lHlh7MgxV>76GKG3)n4x@hx>K<2F@Ai5Y)Do|Ny8rv2w(KC(d&cjuBFwqLt?*!| zYk3^zgCC*)>;H@!-IFRG)Sk4q{xYcRbqVTl#@^%}y~&}jPa3EMib0Lng*tRCp;m4@ z)RwM>I-G$}TX7U7g*Tx8`~Tl*Xs>c?c8*FyefzAc^*ce0_k}veW1z0tL8z^`4|N7! zK`r@js4a=P#U+>s>YC?-O1uixmbcr&{a0o~5a?Mx(G(U#&1etQp*aDQ!5h~90X6gR zTip+-lEFgsJ3_7CYN(mNfb##v#zSoj<^Sc?;!ue{-^TsdA^Hb_-iZ8wTB7LN-MiXU zP}ik0)FJ8wwGzXi5}Ri7Wl+~|H`EH8f=cin%nH9i1xyp@9#q+3Z~FCoG-P-Q%JBoJ zrTPeU*dpz4U$@tRy64MaT6h&^hyTGkFxyUdJx4*=uZ6mv$Dy7Ruc5Z|6V%E?-{s`K zBs7vDNCUM6WuYF$^`R1*4$H%3P`Bbe^upM?or8q14gHi*^082UCPS^zQYb%LVK{gg z2EenBGvo7|r=biVL9M_mH{kgNL(-4B$IU1v)FI0PB`*QBq-CsM9V$?5ledC8Y+a!2 zMnfewA1dBP=>PhEhbf#lg-1}1K3hN3Ugsz_)Y-@i^yPq4uga)HVAPY6eq`E1(?ihT7}Xa1ne86S1}< z_q(NDe!%(L2wO0|59)R#Kj>~#Gw4f!U?>d*Tmdz+qp%fx4KQ95 zpblAv!|v2qg-WOul;1&cFnG{t7d}&}ZH4$O((k_rWr7KfD6NoO6lYfz{~$3#-B^ z=iM8dg+3ZN5xj<4qGT7GK{}|zRUT@u>loX>&g^k78-I4u9nMcsFH(^&xdf*`J%|=V z9lAiMiJXMGW#^%`(s$nkNiMrXlND+S^Fysb9jL8n0rjNp1GQCypsv>_D2Gd+4)Io~ zC+2bMKeO>4P=`6f6*r;u5PQDn7!enqF)B|oaOr_WVw={IUVqS9&(n2{X0JZexjP;-bw}VQg z8`Ku{hr0KppjKop)RG^ATFDzwuLYl>4tK=sE?!C)oA{o*G?ZZ#Cq?}K{APlHPE z1k|41flBa$@i){~MY`bo*AZt1)vgW1$7%1+_u;M zWeBv_YoV5G50v8@P?^4int|tzlShPdoC0d)vO>+gFl-JhK_$Eq>YD9@()$Kw7y57a z9x;ZGMll4HVF@@9D&Q3;#V1gE`4K9?n0MU@q=X8X8EPhlpzKP(%&;bu{ZOb!@L-!yW4wKSf29>}us28m}FtqM}z$3S}VU01N6q7=&KyIi63PUAU*;o^5Y3oBB z#vV`;83~ox1gJe<0k!nojK@uW6YBGaJt}(|&kdDe zL6`-WwEmw^hq%A>XF?^g(E6L9o-@0kFDZ>HG<3~A+rW3I8N_(v63PH`(=P@UxHr^c z8wmX~h1%m4Q12f$LOl_$L!F%;P`AhX)V&->gPLHLr`&&??tC`T0BTA5Kn0izbq$w6 z9hyB*0Z$trLA^it3AF`Dp1JYturmGfP+K<(>J82+C_l$x26*k6&%MZmcpl3CLBr`` zZ3gDUwD2>OgTyb~A@^$$b$vs; zaTD}aq@m1vK%L%UP^Wf`$!9_B)k>(DZiWiD1L{y6gt|_bq5la7m1yXYl4pWz zVFB0{K8L&m(N{83*svL?l8WJE9sYH8NN%iEc0w)rVW<_mV*ST34hesTVMFl#;HSHWvHx{;$)W%A|1#3h9%YBx z)1pw}+BVc+s-TDWi0$zZ6K;5_T?@$S*{LksPgh}X6fGyz$s6!m{H}^j+ zjViz0i$-ragZ^rG2NvhZiAe&y{_leQg4&{dAsmN7y_Y)+bHQ*Sz5W#|0=37zq4ej% zLhvcn%W=w3jx9nle=YrD1ZUu5cnWUvx_r zt)Z^#VyH*?E~r~`!TQ&r9?h?zo*!X-;k^DOOak@tngwbvOF->yO{fP&V`FP$Cu2|J zK;vJ=@y6-K`NrkO^+w-zYwR-~gG%5W)brpT)E+;D5#bl8Jq#J%>wo07h0^Z_wE|QV3Wq@bZkYGF7UmV=t{6{tgb2P*JOD7~*RDGU+O z>;GWU6mU5G!%%kRBDtllW^4hrt2R|M`C*qPmQuLn)-QeqN|d zt3Vy1dQeN-#Kt>7&3K4$G~|)W|08lMHUsKaaVgXU0-+A&X_y#3fIi(zPc)Z6Qm9j% z2kN@CgfdtR_42s`>iKXD>TEoR+WU7!KK+$4&{ZGQivAq7D zo^OrC=bvc_tHySRr2*7oYYFA}PbkO3p`LtGpaO4%vI~U8;UQQQdgHhiEDd#LYQZ$H zIjqc+a5T(L|7Kh_(TMT5|9KGPi|6(Kwn|sHnf^Vv08WnYm_31;$tAcC`TT@l&tcdo zk<(9>*z5mn$1CtEa$gdsUn{BC|1LRMGOzy&kU_9FzCWSA#J1n`OPH9zG1$Kl| z*ke2oHS>qoe*twie!=80bPBg(>7Wj2eyFXi1$7OFKs|8AK&|Lvs1@{Wq@ktS4O7Dt zP=Vh;9l8)Hok3Wrerza*384~51*M+_>hKnasbDo5?*&WJ9}H!G4C+jsf!q?G=OGOp zs$WnJBByfwL{N%ZpiX@$s6$l^D)X*3-XCgalZ~s42OwMSxek@+O{f>CM=%ro1^vJO zpFXvlQ8_5b)uHZhBdDeA1$A9!LoMk}7!p2(A>d1>Yxlxa3-ebG$X%hOq;>$`A)wV{0h5f zbgz2tGP$#~1@=WAGPBqJ@;wl0LaU(v`~N3s=+K48;`RU6>FO{a{rzw;{0?uxxmmsb z|F_p8o7Z!QwJnj|>;FDM=$!6)Hie_n8vw(wL}7DzJ=;kL^z8G6y#Ak( zmoCix?~lQu!tUj@ND;566#bsC0^DN^Ta?pJz?!fH@&?7+z26W0i5K_!zv!$E>oGnI z4uyB2&P?+XUQcc8hrq$~Z zzk59lv(oQU-aYddL7ncS#_$!~%&I^w@oCrxzJz+tw5;f!d~;z#`gwhoy#DY1O@lQM zoPwEQ;>vE1E5RJ}=fYg@0@Rz*&{f=cA*eGm7G{T=U@`a@DzVg6o&OH-IQ@k%9c)|8 zCE%M(<0yi6FbXTMt-4#%qcyz#cd4;z@>U6XBUl@~xwYKN`~%z4uUy;f|JBSuSciU` zI$r;`XgkA+^bZ+p)O9QH7-}L3>-i__^Hisi6v1++B|8pv&7Q)lFh+eBxFsAxe>WTs zOEho~tdsBu{r9jseAUoBatk+dFJkjxAoAOAD-)U0*z5mrtFleKe1<&tZzqj~D70(l zmMVO65;GSD$Dvkce0#6wFu7Fg^L$F5L&zX&FWr=hPqjkh#(4V!oJ`ah%P9(+f?a%ZpqGhYjL@%ldp z^c_5iynk2sASv9<1!@NyBYy(V!jj$HwTu3zdo9Qgvmvhw^*7^2!-Dkh^x*!dpb@X9 zd-W>>OVFcQrNn&@dYbl;;4cK5t6j6=U0)L|M8W5a_`FS|FO_V9uA zBMfox0b{}(tWZLzx8YTXy8AsA>g>FLdcK4m=Ik57ZS;MA(O5;J;Bfcy_!R2d{~P9o z`Tp|yzn1F;3)9~WOT!P=&pX2PdqF*L_Cd`seIAM0M8TR}ZYe8z2X5P@D9JC65ydeDC}f!hIF zO!E3a5qaulujdVR>8J3fRQEsbRF`=xsC&EGc-5^jX$9#kY>6| zbQsj5_%PJce}PIg)(rRFuL9I_;|MIK`~QoE92B1EW;n?m_kho?}G@%;)}JN1@_E_h3o6 z$m@ATKip#X^7sbo4AfZS_INDpNdGdt2#YS|Ht_l$eVNy@1c!xIc>RAt{lQ8e&GdJy za!<^AtKIv8#cMd6$TO{Ve%r0%{&&LB;&txbYqa%_$)OHY4r6cVrN0;IP2FJ_k^Yel z?w!*`sCUQrVLbQ@Y6}83x?7bK7NOr3)`TmeuKm9oxt|qjl-cC2$5g1p_Z-H80h`?( z#({cJ<%S7hePd4;pZ;X)uY=*}pS1pEsP}yDpdPuAwz$NzLd7ZMqmhJ0Z8#YAG=*}`$(p%Q9t>ko!H{j-hBpzi%fsOP{bC_fjWUNv7rotb~2z8#eN4AhyaW&M^=Ur%&{T9Lyro9_R88oFlDuehbI2+Ps03AH8jp&T!Sn$a4l zJ=_EJKzaw)!&q0{k{*F;=?7eM54QC%Fa7A(-K%E>sPP?ef$o2+8}7?%?@jkzs=KfO z@=Ukg*Lb6#9w;|pYnb(pdxFh?>KFRk>;I_crLe2U@46*k47GKupjKiF)RXZLlwRC> z9R9vEM$;$`z4zTSx-48o|2EVX40zz~>o(Y*{vEg*)_dq~O{_8%H+u&qa__6zX z;UY{zf65d0=5q^7OaJdD-2ZemLO*o@vck6X>%jT&0GtP#JaaEH|3bY;4SnvuhPw(& z&@cVMZN+HVj{Zhi8ODF<_5VfXc2Il&6{dz|U%59lonLYP^`>$=0$rbIuidjfCsbn9 zp#t=WL*N0p1eSQ?o(IohDf+)*Jy`0k;{w=_{&%RuSo@uO-ERqXhPpys!y!HzdeTjX zdJ?XOI-N(LuF(S<{|WU(i}T*SOU?@Q;AsPONGC(xj;T<4J`Z}~3gbE(-(uVYm4NRk z4IPfFP>vp(!c!Lw(_r9LjG!D8Fr?-ml=#&*WZP|t(iPyr6W9`G{M^)2_0 zyWTaSR;nQk(EV>kL#MM1R01QQ987~+ft65?;LT7o*adZnjzg`?TNnaLRQe*kgrikBzEAB$z0LSa zoIZuM2$~bw4KpZ+{(I#4VM|z9dtl|UC8BOFg6qJkjJ3o#&_4euPwE%*4M)~M)wljzoR2m?!>qF3(hRPQB5B>WnpVC2~l(w-yZAQJEn9N+` zD4a`@Dp6RWoTjgSV%iHCuR`5u`jQu-T^XCWOu*NMV4DyQG{eVatWwMNZUcdT(hrN# zD0I>?o(ERMZa7Z(%vpZ6=Qr`pr~QP)YcO7nx*7Q!l2WNozc1Usmj|9u=%jKh>GOoJ zWxRoMJrr)>c(=`d8cIu$uf@SJf*q%3pnnq9g#WQxQwbUxn@Y$|QBPCPP|s4&QB}?x zAES4P_DAei!Yd)z|Eo3_l|lWO{0uYSiNb0e@5J~XNwgvR;Vxsp!*C>Biew*>!~o!Vu>JF>dnu<1gRM`2+%eGbj6z=~b(Xt;TS4 zbJ5QT`7`jIFE}iVPB#lKN9oW#%S0mJCmMAHva9Ah3<;0Ht{9v}a24jy>okgdimGQd z11jS!fu`1v!+3edRsObQ?itIOZhAND`9%L4V~K2A6VMKYZ6_rRy^P1OvvtSfdy=8l zf~*%YaDvQolW__ZXChxn?LY#V8T*5o_Oi@tTXGiHkH4_Hh^|U$>@%3|VA?-SpEphZ z(hR>-{Qv*L^*tGF87q)wBV;4UxIan#ZBFz^u8H%pjBmxbuQ{rZojw(z7L1ARX4=sS zmX>w_^g9!L1p2e^7gU-v)(k&cwg117&LvP~QtBea4tT?iC*mOpw?}#-+?;qMB@#)|H*evZ=l=!U+&k5Se$(CQy@YF$el`Q+A z90CR}qiwYk7~`Yg9)*ttc!dv@x{ReJ(U6S&jjRrVgGygkrILOpX&(b$EbECVZ>82F z0hIzM9mAnYViMRDEQ#nii;Ud>>RMKDn%PLV5B)vnGZy}m;zy-{>F5oLEB^U&$1#|K zTv?7e83@Zbp7QQfv4lE z8)NygOGE-a%-2v`38%@|6^tcEuO%^klTn^;iZKxU#L<46T~C6~Krx(jkXNS9FT{EN zq5stauRu2{$;KwZ`ve+9-E6Z~!1CzD#r76Kqfk{o!AR)b@xT85Bo-(iirvW%m&TLc`p!f+#J8ZcntA*@5PH!StiAlRRcA2p&%1ZE+oF@;QU@O>x z{t|0TKae)R9OcP|&nx&^>O&9#!4({ov@Gw^K0<(RWLbse;stXcC*SlBWenrn&|S{z zEvEAOXPye^ZpNkwfmIISrwPHOGv8*H8k-v=9#lHe?n9u3tjPZ^pBek)fB$VGb!-I|5-<>17S6#r zlvWYs6jdcJI*+LZNMa*(DvoE6NGw=}s;`Rs220=ozT%<3A=o7TGhahV`n&G`3T9B5 z%zL3Y!Dg}wUc*sS_ElxEtu$!NJVxCQcH`lClNov8XDk z80&0_)@1?ugC}IIy!e=HcYz`8@t8B+;oGiy# za;QI_7>ea=!HiWR@VuBn@FcXOVqc4PbabL)+tK{A$1Vr{yC7Fd=%Z1b##dX$oV4%K z4u^3GIF#`;)J4>i=0t`;B_4rNqF0u&_AG05+PSd}4ORM+U?LJ$;d@m6QX1JZlHP}o z|M_1N4ai5nNfByj?DiqQ zjXWQd$d2qe&Qr>k{x-&+n&0&3Oedl9^!u}-4e^;zpTEZ60`YW3_%F&q)46Pc<6HK- zZE5Gye}Y;CoQJV(q3daipCa^|A>T_ve2dp#_@5k}7mOXpw|=Q5sEnua1E0QaWcr(1B5~w~a^N1MnsZGppG}_t1u>W&RFop#BW88)QUu2mZqxLxZOaT1` zR5t?ijck4|;QUosYm&I{8? zPJ0tUyQ6ax-MzE}kd3EJ@%b}&gm4}X+T$P(PREd8H%3Ddv=f|!JSH`ktx6VjR?%O> zcw%O_4NgX;QWp6nf@PrnlOQYUw_^MmtJK$YGT~=D?fm-xR~Z=0MCT+mHHq{iy9FpD z$4Ox`kmIieN{c)y$*Jf!8C0rZqY{$wT5tjVtJqFOZ#fARGW`?CH_^|}8EC>}LlD=k zzpN?o5$>g`G$-qBHd`lQsY$FevegJi5#Sf?a#a39i)Sr%RcKeWgfk&qPye<2S)xU3 zEGLQ7CE059eJRLd9G##N3&$Pl^V4;INnytGVP|u&9UT?@5L&+*ppuq=JCO4|eNPHz zIR@@WzYKQKnT$$Sv*-UL1r@&kN0us|8BB@8Iyh-b{{RV8!>~TdL}un;XrDv(9nQC* zcaHu}`W4LCK=c|TZv!)1@ zT`L=C`*tHNiScxl!{U4eJc&UaTcX?~SD1kDG5QzTP?G6_^PM&W`8q!RzSa}(*WhW1l&b?4|OkfA64Zw zWBaM)N#qJPn+Y_X_91N3V!>OyNK_vk>lwdqNzK`H@4?IQx8!=S=!d_(svJ}dn_BXhRs!|r48R#w}hoi{q zVy|)seTvVs7=^YHuyRwV?NI)U$=qR5qv$tf65nmbt0G%MRf)%fsSIE&3p#UfUI|}M zktJm8Z_|@b1LW{ zvgxc*P)R`}qxo5kt^SCtN@?@)2XXq*enqX}*2w3XjH1eMEfS7n(!PUYdfGQ|p2ikC z7kVLShl6>knQ`6-C;A2NY1ovcnGFNrqbSyo$Ik0rgIc|Op;THK#;ct$O|{%yA$mu zRF!q~`@w<4@zt^!XrKoJwQ;f#**)9GipbVm;6=7Fky(YHvYz1O2)Y-WgxFLiNCQ|H zn?P*anc^B`MbOK~g#VzOhf48zUSQDBvL1=!8DuetOf+ZprPTuQC|hSJWD`7h0ShFdcsU9|SL@X4E1sBhQs!`xYLhLnIWN@eY>I zUK^i<(@l)OW{jVX`%5ef;3N10+L2A()mBhS4`}}hOG#Jfucu|~C4o^G=vN)0;-D|H zoMy9FLGUW9z+%Q!Mv+ugbbFcYIQlA|(FsMJi2il_Rkgs|N%|+g)|*}!c${(H0}CMI z@+hal=@0^Uvsqps%iK1Li?myzlZODY8NY*VGaMx)n3w)8xX}_Sjq}0iU1Wup(pK4S z$?U`C9sOwTx3GApV*6Q`XV-BIRKDOmBmEbQ4Z`^jDggHC-`A~o{QI1Rw=8Oh|Jz9W%0=$tg$Ae&sw_&MX@soNNP3~%7W*M!b(9EPN$ zasdZBaXJOYqJIm;IsOs%Pj!{aJdT)wsKO=}r zd;$(7z%`t=p{=r*No2-$ChY~-s*FQFzm2PZlkxR%E_T_l?@dDg>YIAQ7?^_5Te3`n z!M_A8gyLJ;!)zueNuVkHgBV>#zXbaFCPE;6{&1})8%~3lWx)b(WUMTD{ji%vdj`JZ z6ZbW7e9`%59FA%c{5c*bF_XVh4qj3dtS$y0(CdrdBpe;WNpGCpBTyiHl}YF=M^7a_ zK0Z2# z<1tAlF|z*jzoWZ{Kq@J5tg;tBx6mudfnAHHgQr1>Z?HKwX)(JQ%L>-9J!Zuh9=aVqJPp}*)4!}4INu6g_1tGse>3IuN5+pmi z*N`tmzZdeeBsm0|)!6)N2`X45CKl3GZ9KX)(Os<{1Wm%h5<25hI)WpW^aKtnV` zSS}pow)JaEU!@}bSvJ$JPUK02-Uk9tWo(*_X=n$29@6j1B%=q(gU;VMgb4{=j;za5 z*I`_l{vdPun)Xq$4~LVTB%Ih1IECKd*bYS&9y^uOw0kh27uY;t>FI6A?#0^ z?G0qU9d!ERB$=(SrR<1777Pv(aHa*TgK=-36|EImAJ}9L1j&d<^W* zKCZ<?uT4go`;8&n?A|4qOi|1(>@4#0o#;y-_~>A^p>F?a~mFoPrJC<(GE z1WiG}^60h0L1&v`I)Z1Vord7wZ8b6wECo8<&3+SO!|SvMF;Ja=gUw+Tj2DnZcbi2V#xmkyF0v))^rVJoEIxt0vs!hL=cKK2pY}`h z<0L$ENa8ShgGf4)ei2|Hg0>h0z|3q%1GpPQm6HTpPd|8hL6VI}cPjO*^P8utdv~;B^woYg;qgbjDl1KV#$Y zrLrPeq5;^oMt+1<8iM?ueh|;{I_#-+^sU4Ap#AYmd zvuv-o5~zgjwSop9Urw?Yu$_&c$)=~VqR3QILtj=is)xc)42IbZX5sv_tw0MD&yeju z&d&euWt-hBdYc%3L;nS{zGN#g7}+Cy#lgo|n9uym_&x2>OrnT>5Hyj%H8GlxgH!~W z#6VEl%52BuC<2aeBF{;(&yf8~qG8aTZpjyc>!_p9%g0!8eC9%b6MkFaHy7MRtxiow zRjG_lN8P`VbY5au7DJV>HnT}&84uYl9Q}#&esB%4dKNUb={qalBhdGeoJvI6577@Q zM=WRnt1*XKk{GWUZ>#t4DxH|+cr%V`%2gH6#-o$1%4!n*h4U_^^P6Pyu@b}K6p{-8 z7oqbOUpvs>j_ydtW797SU(w%4O+xz#{{7GY8Dx_jVI_iWArY0cC{(3RLcYinOF%N4 z38FF*&NI3C{Vbu!*sNsi0!(NtsqxGtH5u7I$PVB$np+*8CpSUg67-`5mU2Ni=*fnG zN%^A9WJR&7yyp`X~M31RQItb`DO!Pg7)hSfT6a+@tURk3eV5 zaT1(9XRsZ$zLcRCgC~qex){#tWf~YJ;?-2DO zt5p!4Cageu+DjR`?O%Vt8heDJ_6%&GKEUCBC~v?~e^%i#!5=dIH#H5;4l~}4ag{Z; z%*(L5jqW?flQEgN$S07{f5>KH*Nt`##!jL)jH==*gyK3fP09l&sV%n~;&&#@aY>B# z(dI+sJnPV@Z+d~qqmaZGl2rMEpS8$Nketdk+NDjm7lBn`;o}`K|AJlhLF^xK{N4in zf@d(kfWyQnRWzfGIB6kcWakO;p9Pq~EH)!6NiBr!7h91~Or|ZedDzvknJRcgYo~;R z{JO0F5tKUP@H4^gl5tVXcr5LnIL*b_e3XCC&WqDu7}r2&D@mqd7Jt!hgRCQ4RDt@5 zK$T!nd4%6vj8~`rOYO=)J8WBOa>4gM1T%|bhMfrhh+xmCDhU`0mdL3jBZ$}$^mAa7@elH6G}kILO(2V(gl70FFgBo11IHz1(4!s z{X^+ZA_Xzp4@bj{FeMHi6D%tICDe(`^d(HgLV7-6^z}(N@GLiHkqHtB;dj%EN5D|jt>)|}OC6S#R7runpC#IY z@j2M~i_Q}h-AWSaX!`fRr5&;!2p;*hc@v41uy+TR!GnI|({*84FFU#>AS9e2cbG>+iEA)5p|gwOMyW zmVmL&$i5OJoyq%Q)WVWt*z=yGmYTi#3DN6@EU1)bm5v4LOa6oU4!<8r!WRdFGdTRq zl;+VMM27dMrBS@b_(R4T;%G>)r7cY&i3uEnv8m|RWo!ifL+ItjZho*NW3i=y=KqNK zIL~;35X`?4StMo2pJLn=;dC4f$N58;fc_k6Q!N$c7&=dpt6azCC}WS1siYu4HkMiC z4`k=4nQbfMBF{yfhm2J)`;h)I|M~aZc;cXR-1ase&SImGmTWV@au~I-K(knpFVw#< zD~8jEBoW6FEQDPvd_2Q$5A6|7r=O zC&5gGebgD9okR-C6u?cXE?fnzRJKD?(V;ha}rN~s$ z)BncUaAb8!Bm&9xrX7ay*~nX?;~PRpKZLr?z)KWXVU(Hn8v<;ynb#tLIDVJBwKmzG zmcTD&dcOUyJYK_a2IlJ-t?b`zrlzJ@ct)Dr8D?5lne><~_a z$}Y0qiP0klvty7DM=CRsPqySXB3EfhzZ31^*3X7c0RlXszQaczW_=3Z_enek31_#! zf6~uEQuDEoq3{1yV(579%L{b@*^bhfwAxO>jzt@FvvqG zF)PiPvC0aP&I&>daSZyd}C*uqlH~zx^B?*`;uNkjWqv2hb@BKj9=94vM05j^%nv zLJt`GLRIO8VF?oKfjk}#3!xvEq-HR-lmr_gE63Qb8O`Db#7QTU@Tj~CmiIeyP0V-GG9l}M|JzKx3^p~UI|qq&`C|8Z49KxNh=ss z<}m}6KjBE^r_t+4KN-$SGOJ;!Kh5hNYT`$%LRL4TqA93z#MIFE+oMDQ{;t7-ROmQ}D@k8XbKnwhVN^s6Gj zj7|w;2N+vGKN9_KZl!#lwRFNF3@RmU3G*Y%gh5P#$G~_FdMbrTWF)~4nawelR;3U1 z3;JH`Uq=ECyF_-pT?bA;3iR?-OArECqieQ`v1gYR5r#kMXnwk4w8TR9V2}mf?R23HkCM zSWIUx!9yb$VJjiU=@?u=IRQ!hp%uYdHC87P@?3B>eU*K-TG^0QLH8@Zn%Y<&*pu-v z$S+V;9*}To63rjd)7(?fmZcZM@;I2wfPPW5GxA2%k0f`?bYz^J_7(I>n6vS=QX0FB zECYVlGTRB%+UO3LaWQg0jA=y!LKTaT+nBgtO6^XLDxu+Aa_j_;Vwwuq!AlZ!RhlrK za7wk0F?>nUh+|8sky6xcSgLr@PK0Jv`rF}TWMPrLrXLPIAlc@$hnoHm65NXXBAL}D zVU?Nqe?>bjxAJe~5oE`%tYLBo^|Rwj2vzQ(bO;A0aC#r3e`tFw{d5FBN0MIK&O0y% z`Wcz(Alk36DTJTy*yKe%2;D3MYDd2(wGlcsZH4pUwj8qN===YO$Px^a(1}Q}2N>3X zO)x&otX>h|7{P-|K4u|5Dd916g31T%3o@`HnC_nhElgq;ZFLLcw;}zd=oW>)Wv?gp zD-^zA*xY6t7DvS_+vX^}wJ66;_8nOXWP7k{1ryT`x_OOB`Zu#%!B|8~W&}EK@cjqe zU|aQ;1XO%!Q6563Ls1xs(K!0m$gq+d_tYY2Yx+%KBWfvhCbD7$&{G+L!+HeDM0+jm zT_lqLU+1v7M_c6r!Rp%N8ew0WS^%4w`r4rx!IvRuhH`f51p2=*Rw;qfFoLR-aq#3| z>4y<$A`YJ+tATz_n^i&j_vn|SszkzHWJ|(H_=1LhRO%K4$@I0uU>nJgQAZqAXYdK_ zcx1hW1X{v5%yyI|BK0oFCt8x~$G~PgXJs}M*$;0b3yY8Z=!`&D<$|#`?FY1fGhRY( z+f}OLd?&%tO>: non cambiarlo se non sai cosa stai facendo !!!" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:71 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:296 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:844 appTools/ToolFilm.py:1106 -#: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 -#: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 -#: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 +#: appTools/ToolCopperThieving.py:1674 appTools/ToolFiducials.py:844 +#: appTools/ToolFilm.py:1106 appTools/ToolProperties.py:449 +#: appTools/ToolProperties.py:452 appTools/ToolProperties.py:455 +#: appTools/ToolProperties.py:483 appTools/ToolProperties.py:490 +#: appTools/ToolProperties.py:493 msgid "None" msgstr "Nessuno" @@ -10604,8 +10610,8 @@ msgid "Number of steps (lines) used to interpolate circles." msgstr "Numero di passi (linee) usato per interpolare i cerchi." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolCopperThieving.py:1563 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:274 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolCopperThieving.py:1630 msgid "Clearance" msgstr "Distanza" @@ -10619,37 +10625,50 @@ msgstr "" "(i poligoni possono essere divisi in sottopoligoni)\n" "e le tracce di rame nel file Gerber." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:85 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: appTools/ToolCalculators.py:342 appTools/ToolCalculators.py:385 +#: appTools/ToolCopperThieving.py:1298 +msgid "Area" +msgstr "Area" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appTools/ToolCopperThieving.py:1300 +msgid "Thieving areas with area less then this value will not be added." +msgstr "" +"Le aree di furto con area inferiore a questo valore non verranno aggiunte." + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:99 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1255 appTools/ToolNCC.py:4319 +#: appTools/ToolCopperThieving.py:1321 appTools/ToolNCC.py:4319 msgid "Itself" msgstr "Stesso" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:100 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1256 appTools/ToolIsolation.py:3391 +#: appTools/ToolCopperThieving.py:1322 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:4319 appTools/ToolPaint.py:3116 msgid "Area Selection" msgstr "Selezione Area" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1257 appTools/ToolDblSided.py:761 +#: appTools/ToolCopperThieving.py:1323 appTools/ToolDblSided.py:761 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:4319 #: appTools/ToolPaint.py:3116 tclCommands/TclCommandPaint.py:166 msgid "Reference Object" msgstr "Oggetto di riferimento" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1259 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:103 +#: appTools/ToolCopperThieving.py:1325 msgid "Reference:" msgstr "Riferimento:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:105 msgid "" "- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -10664,29 +10683,29 @@ msgstr "" "- 'Oggetto di riferimento': eseguirà il deposito di rame nell'area " "specificata da un altro oggetto." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:114 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1301 appTools/ToolExtractDrills.py:495 +#: appTools/ToolCopperThieving.py:1372 appTools/ToolExtractDrills.py:495 #: appTools/ToolExtractDrills.py:628 appTools/ToolPunchGerber.py:1068 #: appTools/ToolPunchGerber.py:1240 msgid "Rectangular" msgstr "Rettangolare" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1302 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:115 +#: appTools/ToolCopperThieving.py:1373 msgid "Minimal" msgstr "Minima" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1304 appTools/ToolFilm.py:958 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:117 +#: appTools/ToolCopperThieving.py:1366 appTools/ToolFilm.py:958 msgid "Box Type:" msgstr "Tipo contenitore:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1306 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: appTools/ToolCopperThieving.py:1368 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10694,28 +10713,28 @@ msgstr "" "- 'Rettangolare': il contenitore di selezione avrà una forma rettangolare.\n" "- 'Minimo': il riquadro di delimitazione avrà la forma convessa del guscio." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1322 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:133 +#: appTools/ToolCopperThieving.py:1389 msgid "Dots Grid" msgstr "Griglia punti" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1323 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: appTools/ToolCopperThieving.py:1390 msgid "Squares Grid" msgstr "Griglia quadrati" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1324 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:135 +#: appTools/ToolCopperThieving.py:1391 msgid "Lines Grid" msgstr "Griglia linee" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1326 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137 +#: appTools/ToolCopperThieving.py:1393 msgid "Fill Type:" msgstr "Tipo riempimento:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1328 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:139 +#: appTools/ToolCopperThieving.py:1395 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10727,58 +10746,58 @@ msgstr "" "- 'Squares Grid': l'area vuota verrà riempita con uno schema di quadrati.\n" "- 'Griglia di linee': l'area vuota verrà riempita con un motivo di linee." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1347 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:147 +#: appTools/ToolCopperThieving.py:1414 msgid "Dots Grid Parameters" msgstr "Parametri griglia di punti" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1353 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: appTools/ToolCopperThieving.py:1420 msgid "Dot diameter in Dots Grid." msgstr "Diametro punti nella griglia di punti." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1366 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:166 +#: appTools/ToolCopperThieving.py:1433 msgid "Distance between each two dots in Dots Grid." msgstr "Distanza fra ogni coppia di punti nella griglia." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1387 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:176 +#: appTools/ToolCopperThieving.py:1454 msgid "Squares Grid Parameters" msgstr "Parametri griglia quadrati" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1393 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: appTools/ToolCopperThieving.py:1460 msgid "Square side size in Squares Grid." msgstr "Dimensione quadrati nella griglia." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1406 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:195 +#: appTools/ToolCopperThieving.py:1473 msgid "Distance between each two squares in Squares Grid." msgstr "Distanza fra ogni coppia di quadrati nella griglia." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1427 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:205 +#: appTools/ToolCopperThieving.py:1494 msgid "Lines Grid Parameters" msgstr "Parametri griglia lineei" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1433 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: appTools/ToolCopperThieving.py:1500 msgid "Line thickness size in Lines Grid." msgstr "Spessore delle linee nella griglia." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1446 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:224 +#: appTools/ToolCopperThieving.py:1513 msgid "Distance between each two lines in Lines Grid." msgstr "Distanza fra ogni coppia di linee nella griglia." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1485 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:234 +#: appTools/ToolCopperThieving.py:1552 msgid "Robber Bar Parameters" msgstr "Parametri \"rapinatore\"" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1487 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:236 +#: appTools/ToolCopperThieving.py:1554 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10786,35 +10805,35 @@ msgstr "" "Parametri usati per il \"rapinatore\".\n" "\"Rapinatore\" = bordo in rame che aiuta nella placatura dei fori." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1495 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: appTools/ToolCopperThieving.py:1562 msgid "Bounding box margin for robber bar." msgstr "Margine contenitore \"rapinatore\"." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:255 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appTools/ToolCopperThieving.py:1506 appTools/ToolCorners.py:557 +#: appTools/ToolCopperThieving.py:1573 appTools/ToolCorners.py:560 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Spessore" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1508 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:257 +#: appTools/ToolCopperThieving.py:1575 msgid "The robber bar thickness." msgstr "Lo spessore del \"rapinatore\"." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1540 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:267 +#: appTools/ToolCopperThieving.py:1607 msgid "Pattern Plating Mask" msgstr "Maschera di placatura" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1542 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:269 +#: appTools/ToolCopperThieving.py:1609 msgid "Generate a mask for pattern plating." msgstr "Genera una maschera per la placatura." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1565 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:276 +#: appTools/ToolCopperThieving.py:1632 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10822,6 +10841,22 @@ msgstr "" "La distanza tra i possibili elementi del Copper Thieving\n" "e/o barra del \"rapinatore\" e le aperture effettive nella maschera." +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:290 +#: appTools/ToolCopperThieving.py:1668 +msgid "Choose which additional geometry to include, if available." +msgstr "Scegli quale geometria aggiuntiva includere, se disponibile." + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:294 +#: appTools/ToolCopperThieving.py:499 appTools/ToolCopperThieving.py:503 +#: appTools/ToolCopperThieving.py:565 appTools/ToolCopperThieving.py:1672 +msgid "Thieving" +msgstr "Deposito" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:295 +#: appTools/ToolCopperThieving.py:1673 +msgid "Robber bar" +msgstr "Barra del Ladro" + #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 msgid "Calibration Tool Options" msgstr "Opzioni strumento calibrazione" @@ -10831,7 +10866,7 @@ msgstr "Opzioni strumento calibrazione" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1221 appTools/ToolCorners.py:538 +#: appTools/ToolCopperThieving.py:1264 appTools/ToolCorners.py:541 #: appTools/ToolFiducials.py:794 msgid "Parameters used for this tool." msgstr "Parametri usati per questo strumento." @@ -11174,7 +11209,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:49 -#: appTools/ToolCorners.py:550 appTools/ToolFiducials.py:864 +#: appTools/ToolCorners.py:553 appTools/ToolFiducials.py:864 msgid "Cross" msgstr "Croce" @@ -11735,7 +11770,7 @@ msgid "Calculators Tool Options" msgstr "Opzioni calcolatrici" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: appTools/ToolCalculators.py:152 +#: appTools/ToolCalculators.py:191 msgid "V-Shape Tool Calculator" msgstr "Calcolatrice utensile a V" @@ -11750,12 +11785,12 @@ msgstr "" "angolo e profondità di taglio." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: appTools/ToolCalculators.py:220 +#: appTools/ToolCalculators.py:260 msgid "Tip Diameter" msgstr "Diametro punta" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: appTools/ToolCalculators.py:228 +#: appTools/ToolCalculators.py:268 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11764,7 +11799,7 @@ msgstr "" "Viene specificato dal produttore." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: appTools/ToolCalculators.py:231 +#: appTools/ToolCalculators.py:271 msgid "Tip Angle" msgstr "Angolo punta" @@ -11785,12 +11820,12 @@ msgstr "" "Nell'oggetto CNCJob è il parametro CutZ." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:154 +#: appTools/ToolCalculators.py:193 msgid "ElectroPlating Calculator" msgstr "Calcolatore Galvanotecnica" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: appTools/ToolCalculators.py:284 +#: appTools/ToolCalculators.py:324 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium " @@ -11801,32 +11836,37 @@ msgstr "" "calcio o cloruro di palladio." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: appTools/ToolCalculators.py:293 +#: appTools/ToolCalculators.py:349 msgid "Board Length" msgstr "Lunghezza scheda" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: appTools/ToolCalculators.py:299 +#: appTools/ToolCalculators.py:350 msgid "This is the board length. In centimeters." msgstr "E' la lunghezza della scheda. In centimetri." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: appTools/ToolCalculators.py:301 +#: appTools/ToolCalculators.py:367 msgid "Board Width" msgstr "Larghezza scheda" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: appTools/ToolCalculators.py:307 +#: appTools/ToolCalculators.py:368 msgid "This is the board width.In centimeters." msgstr "E' la larghezza della scheda. In centimetri." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: appTools/ToolCalculators.py:309 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:120 +#: appTools/ToolCalculators.py:386 +msgid "This is the board area." +msgstr "Questa è l'area del PCB." + +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:130 +#: appTools/ToolCalculators.py:408 msgid "Current Density" msgstr "Densità di corrente" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: appTools/ToolCalculators.py:316 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:136 +#: appTools/ToolCalculators.py:409 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -11834,13 +11874,13 @@ msgstr "" "Densità di corrente da far passare nella scheda. In Ampere per " "rad_quadrata(ASF)." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: appTools/ToolCalculators.py:319 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:142 +#: appTools/ToolCalculators.py:428 msgid "Copper Growth" msgstr "Crescita rame" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: appTools/ToolCalculators.py:326 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:148 +#: appTools/ToolCalculators.py:429 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -11853,32 +11893,32 @@ msgid "Corner Markers Options" msgstr "Opzioni marcatori bordi" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:545 +#: appTools/ToolCorners.py:548 msgid "Shape of the marker." msgstr "Forma del pennarello." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:48 -#: appTools/ToolCorners.py:549 +#: appTools/ToolCorners.py:552 msgid "Semi-Cross" msgstr "Mezza-Croce" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:559 +#: appTools/ToolCorners.py:562 msgid "The thickness of the line that makes the corner marker." msgstr "Spessore delle linee create dal marcatore bordi." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:85 -#: appTools/ToolCorners.py:573 +#: appTools/ToolCorners.py:576 msgid "The length of the line that makes the corner marker." msgstr "La lunghezza delle linee create dal marcatore bordi." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:96 -#: appTools/ToolCorners.py:625 appTools/ToolDblSided.py:827 +#: appTools/ToolCorners.py:628 appTools/ToolDblSided.py:827 msgid "Drill Dia" msgstr "Diametro Fori" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:98 -#: appTools/ToolCorners.py:627 +#: appTools/ToolCorners.py:630 msgid "Drill Diameter" msgstr "Diametro punta" @@ -12237,18 +12277,18 @@ msgstr "" "geometria." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:509 appTools/ToolFiducials.py:723 +#: appTools/ToolCorners.py:512 appTools/ToolFiducials.py:723 #: appTools/ToolFilm.py:1069 msgid "Bottom Left" msgstr "Basso Sinistra" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:501 appTools/ToolFilm.py:1070 +#: appTools/ToolCorners.py:504 appTools/ToolFilm.py:1070 msgid "Top Left" msgstr "Alto Destra" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:513 appTools/ToolFilm.py:1071 +#: appTools/ToolCorners.py:516 appTools/ToolFilm.py:1071 msgid "Bottom Right" msgstr "Basso Destra" @@ -12532,8 +12572,8 @@ msgstr "Progressivo" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:452 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1072 -#: appTools/ToolCorners.py:416 appTools/ToolFiducials.py:563 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1115 +#: appTools/ToolCorners.py:419 appTools/ToolFiducials.py:563 #: appTools/ToolMove.py:229 appTools/ToolQRCode.py:466 app_Main.py:4813 msgid "Plotting" msgstr "Sto tracciando" @@ -13586,7 +13626,7 @@ msgstr "Generazione codice CNC" msgid "CNCjob created" msgstr "CNCjob creato" -#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:586 +#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:593 #: appTools/ToolFilm.py:639 appTools/ToolFilm.py:883 #: appTools/ToolIsolation.py:930 appTools/ToolNCC.py:868 #: appTools/ToolOptimal.py:145 appTools/ToolPanelize.py:613 @@ -13708,7 +13748,8 @@ msgstr "Riscalatura..." msgid "Skewing..." msgstr "Inglinazione..." -#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:152 +#: appObjects/FlatCAMObj.py:487 appTools/ToolCalculators.py:341 +#: appTools/ToolProperties.py:152 msgid "Dimensions" msgstr "Dimensione" @@ -14076,9 +14117,9 @@ msgstr "" "Se viene utilizzato solo un punto, assume la traslazione.\n" "Se si utilizzano i punti, si assume la traslazione e rotazione." -#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1617 -#: appTools/ToolCorners.py:654 appTools/ToolCutOut.py:2411 +#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:501 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1698 +#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2411 #: appTools/ToolDblSided.py:946 appTools/ToolDrilling.py:2649 #: appTools/ToolEtchCompensation.py:459 appTools/ToolExtractDrills.py:699 #: appTools/ToolFiducials.py:962 appTools/ToolFilm.py:1387 @@ -14092,9 +14133,9 @@ msgstr "" msgid "Reset Tool" msgstr "Azzera strumento" -#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1620 -#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2414 +#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:504 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1701 +#: appTools/ToolCorners.py:660 appTools/ToolCutOut.py:2414 #: appTools/ToolDblSided.py:949 appTools/ToolDrilling.py:2652 #: appTools/ToolEtchCompensation.py:462 appTools/ToolExtractDrills.py:702 #: appTools/ToolFiducials.py:965 appTools/ToolFilm.py:1390 @@ -14108,27 +14149,27 @@ msgstr "Azzera strumento" msgid "Will reset the tool parameters." msgstr "Azzererà i parametri dello strumento." -#: appTools/ToolCalculators.py:77 +#: appTools/ToolCalculators.py:79 msgid "Calc. Tool" msgstr "Strumenti Calcolatrici" -#: appTools/ToolCalculators.py:151 +#: appTools/ToolCalculators.py:190 msgid "Calculators" msgstr "Calcolatrici" -#: appTools/ToolCalculators.py:153 +#: appTools/ToolCalculators.py:192 msgid "Units Calculator" msgstr "Calcolatrice unità" -#: appTools/ToolCalculators.py:196 +#: appTools/ToolCalculators.py:236 msgid "Here you enter the value to be converted from INCH to MM" msgstr "Puoi convertire unita da POLLICI a MM" -#: appTools/ToolCalculators.py:201 +#: appTools/ToolCalculators.py:241 msgid "Here you enter the value to be converted from MM to INCH" msgstr "Puoi convertire unita da MM a POLLICI" -#: appTools/ToolCalculators.py:237 +#: appTools/ToolCalculators.py:277 msgid "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." @@ -14136,7 +14177,7 @@ msgstr "" "Questo è l'angolo della punta dell'utensile.\n" "È specificato dal produttore." -#: appTools/ToolCalculators.py:246 +#: appTools/ToolCalculators.py:286 msgid "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." @@ -14144,7 +14185,7 @@ msgstr "" "Questa è la profondità di taglio nel materiale.\n" "Nel CNCJob è presente il parametro CutZ." -#: appTools/ToolCalculators.py:254 +#: appTools/ToolCalculators.py:294 msgid "" "This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" @@ -14154,11 +14195,11 @@ msgstr "" "nella sezione FlatCAM Gerber.\n" "Nella sezione CNCJob si chiama >Tool dia<." -#: appTools/ToolCalculators.py:265 appTools/ToolCalculators.py:361 +#: appTools/ToolCalculators.py:305 appTools/ToolCalculators.py:490 msgid "Calculate" msgstr "Calcola" -#: appTools/ToolCalculators.py:268 +#: appTools/ToolCalculators.py:309 msgid "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " @@ -14166,11 +14207,28 @@ msgstr "" "Calcola il taglio Z o il diametro effettivo dell'utensile,\n" " a seconda del risultato desiderato o dei dati noti. " -#: appTools/ToolCalculators.py:331 +#: appTools/ToolCalculators.py:336 +msgid "Area Calculation" +msgstr "Calcolo dell'area" + +#: appTools/ToolCalculators.py:338 +msgid "Choose how to calculate the board area." +msgstr "Scegli come calcolare l'area del PCB." + +#: appTools/ToolCalculators.py:356 appTools/ToolCalculators.py:374 +#: appTools/ToolCalculators.py:392 +msgid "cm" +msgstr "cm" + +#: appTools/ToolCalculators.py:437 +msgid "um" +msgstr "um" + +#: appTools/ToolCalculators.py:448 msgid "Current Value" msgstr "Valore corrente" -#: appTools/ToolCalculators.py:338 +#: appTools/ToolCalculators.py:449 msgid "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." @@ -14178,17 +14236,17 @@ msgstr "" "Intensità di corrente da impostare\n" "nell'alimentatore. In Ampere." -#: appTools/ToolCalculators.py:342 +#: appTools/ToolCalculators.py:469 msgid "Time" msgstr "Tempo" -#: appTools/ToolCalculators.py:349 +#: appTools/ToolCalculators.py:470 msgid "" "This is the calculated time required for the procedure.\n" "In minutes." msgstr "Tempo calcolato per la procedura. In minuti." -#: appTools/ToolCalculators.py:364 +#: appTools/ToolCalculators.py:493 msgid "" "Calculate the current intensity value and the procedure time,\n" "depending on the parameters above" @@ -14494,45 +14552,45 @@ msgstr "" "Regola (scala e/o inclina) gli oggetti\n" "con i fattori determinati sopra." -#: appTools/ToolCopperThieving.py:184 appTools/ToolCopperThieving.py:209 +#: appTools/ToolCopperThieving.py:186 appTools/ToolCopperThieving.py:211 msgid "Lines Grid works only for 'itself' reference ..." msgstr "Griglia linee funziona solo per riferimento 'stesso' ..." -#: appTools/ToolCopperThieving.py:195 +#: appTools/ToolCopperThieving.py:197 msgid "Solid fill selected." msgstr "Riempimento solido selezionato." -#: appTools/ToolCopperThieving.py:200 +#: appTools/ToolCopperThieving.py:202 msgid "Dots grid fill selected." msgstr "Riempimento griglia di punti selezionata." -#: appTools/ToolCopperThieving.py:205 +#: appTools/ToolCopperThieving.py:207 msgid "Squares grid fill selected." msgstr "Riempimento griglia di quadrati selezionata." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:324 -#: appTools/ToolCopperThieving.py:936 appTools/ToolCorners.py:127 -#: appTools/ToolCorners.py:353 appTools/ToolDblSided.py:307 +#: appTools/ToolCopperThieving.py:229 appTools/ToolCopperThieving.py:327 +#: appTools/ToolCopperThieving.py:946 appTools/ToolCorners.py:127 +#: appTools/ToolCorners.py:350 appTools/ToolDblSided.py:307 #: appTools/ToolExtractDrills.py:141 appTools/ToolFiducials.py:191 #: appTools/ToolFiducials.py:482 appTools/ToolOptimal.py:138 #: appTools/ToolPunchGerber.py:381 appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Non ci sono oggetti Gerber caricati ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 +#: appTools/ToolCopperThieving.py:242 appTools/ToolCopperThieving.py:847 msgid "Append geometry" msgstr "Aggiungi geometria" -#: appTools/ToolCopperThieving.py:294 appTools/ToolCopperThieving.py:889 -#: appTools/ToolCopperThieving.py:1048 +#: appTools/ToolCopperThieving.py:297 appTools/ToolCopperThieving.py:898 +#: appTools/ToolCopperThieving.py:1091 msgid "Append source file" msgstr "Aggiungi file sorgente" -#: appTools/ToolCopperThieving.py:307 appTools/ToolCopperThieving.py:902 +#: appTools/ToolCopperThieving.py:310 appTools/ToolCopperThieving.py:911 msgid "Copper Thieving Tool done." msgstr "Strumento Copper Thieving fatto." -#: appTools/ToolCopperThieving.py:334 appTools/ToolCopperThieving.py:354 +#: appTools/ToolCopperThieving.py:337 appTools/ToolCopperThieving.py:357 #: appTools/ToolCutOut.py:551 appTools/ToolCutOut.py:927 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 @@ -14548,72 +14606,67 @@ msgstr "Strumento Copper Thieving fatto." msgid "Could not retrieve object" msgstr "Impossibile recuperare l'oggetto" -#: appTools/ToolCopperThieving.py:382 +#: appTools/ToolCopperThieving.py:385 msgid "Click the end point of the filling area." msgstr "Fai clic sul punto finale dell'area di riempimento." -#: appTools/ToolCopperThieving.py:496 appTools/ToolCopperThieving.py:500 -#: appTools/ToolCopperThieving.py:558 -msgid "Thieving" -msgstr "Deposito" - -#: appTools/ToolCopperThieving.py:507 +#: appTools/ToolCopperThieving.py:510 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Strumento Copper Thieving avviato. Lettura dei parametri." -#: appTools/ToolCopperThieving.py:532 +#: appTools/ToolCopperThieving.py:536 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "" "Strumento Copper Thieving avviato. Preparazione poligoni di isolamento." -#: appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:582 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "" "Strumento Copper Thieving avviato. Preparazione aree da riempire di rame." -#: appTools/ToolCopperThieving.py:619 +#: appTools/ToolCopperThieving.py:626 msgid "Geometry not supported for bounding box" msgstr "Geometria non supportata per box di selezione" -#: appTools/ToolCopperThieving.py:625 appTools/ToolNCC.py:1695 +#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1695 #: appTools/ToolNCC.py:1750 appTools/ToolNCC.py:2744 appTools/ToolPaint.py:2468 msgid "No object available." msgstr "Nessun oggetto disponibile." -#: appTools/ToolCopperThieving.py:662 appTools/ToolNCC.py:1720 +#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1720 #: appTools/ToolNCC.py:1773 appTools/ToolNCC.py:2786 msgid "The reference object type is not supported." msgstr "Il tipo di oggetto di riferimento non è supportato." -#: appTools/ToolCopperThieving.py:667 +#: appTools/ToolCopperThieving.py:674 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "Strumento Copper Thieving. Aggiunta di nuova geometria e buffering." -#: appTools/ToolCopperThieving.py:683 +#: appTools/ToolCopperThieving.py:710 msgid "Create geometry" msgstr "Crea geometria" -#: appTools/ToolCopperThieving.py:913 appTools/ToolCopperThieving.py:917 +#: appTools/ToolCopperThieving.py:922 appTools/ToolCopperThieving.py:926 msgid "P-Plating Mask" msgstr "Maskera P-Placatura" -#: appTools/ToolCopperThieving.py:939 +#: appTools/ToolCopperThieving.py:949 msgid "Append PP-M geometry" msgstr "Aggiunta geometria maschera placatura" -#: appTools/ToolCopperThieving.py:1068 +#: appTools/ToolCopperThieving.py:1111 msgid "Generating Pattern Plating Mask done." msgstr "Generazione maschera Placatura eseguita." -#: appTools/ToolCopperThieving.py:1111 +#: appTools/ToolCopperThieving.py:1154 msgid "Copper Thieving Tool exit." msgstr "Chiudi strumento Copper Thieving." -#: appTools/ToolCopperThieving.py:1202 appTools/ToolFiducials.py:904 +#: appTools/ToolCopperThieving.py:1245 appTools/ToolFiducials.py:904 msgid "Gerber Object to which will be added a copper thieving." msgstr "Oggetto Gerber a cui verrà aggiunto il copper thieving." -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1271 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14623,7 +14676,15 @@ msgstr "" "(il riempimento poligonale può essere suddiviso in più poligoni)\n" "e le tracce di rame nel file Gerber." -#: appTools/ToolCopperThieving.py:1261 +#: appTools/ToolCopperThieving.py:1309 appTools/ToolCopperThieving.py:1657 +msgid "mm" +msgstr "mm" + +#: appTools/ToolCopperThieving.py:1311 appTools/ToolCopperThieving.py:1659 +msgid "in" +msgstr "pollici" + +#: appTools/ToolCopperThieving.py:1327 msgid "" "- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -14638,12 +14699,12 @@ msgstr "" "- 'Oggetto di riferimento': eseguirà il furto di rame nell'area specificata " "da un altro oggetto." -#: appTools/ToolCopperThieving.py:1268 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1334 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4336 appTools/ToolPaint.py:3126 msgid "Ref. Type" msgstr "Tipo riferimento" -#: appTools/ToolCopperThieving.py:1270 +#: appTools/ToolCopperThieving.py:1336 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14651,21 +14712,21 @@ msgstr "" "Il tipo di oggetto FlatCAM da utilizzare come riferimento Copper Thieving.\n" "Può essere Gerber, Excellon o Geometry." -#: appTools/ToolCopperThieving.py:1279 appTools/ToolIsolation.py:3409 +#: appTools/ToolCopperThieving.py:1345 appTools/ToolIsolation.py:3409 #: appTools/ToolNCC.py:4346 appTools/ToolPaint.py:3136 msgid "Ref. Object" msgstr "Oggetto di riferimento" -#: appTools/ToolCopperThieving.py:1281 appTools/ToolIsolation.py:3411 +#: appTools/ToolCopperThieving.py:1347 appTools/ToolIsolation.py:3411 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3138 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "Oggetto FlatCAM da usare come riferimento rimozione rame." -#: appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCopperThieving.py:1524 msgid "Insert Copper thieving" msgstr "Inserire il Copper Thieving" -#: appTools/ToolCopperThieving.py:1460 +#: appTools/ToolCopperThieving.py:1527 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14673,11 +14734,11 @@ msgstr "" "Aggiungerà un poligono (può essere diviso in più parti)\n" "che circonderà le tracce Gerber attuali ad una certa distanza." -#: appTools/ToolCopperThieving.py:1519 +#: appTools/ToolCopperThieving.py:1586 msgid "Insert Robber Bar" msgstr "Inserisci la barra del ladro" -#: appTools/ToolCopperThieving.py:1522 +#: appTools/ToolCopperThieving.py:1589 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14689,11 +14750,11 @@ msgstr "" "ad una certa distanza.\n" "Richiesto quando si esegue la placcatura di fori." -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1613 msgid "Select Soldermask object" msgstr "Seleziona oggetto Soldermask" -#: appTools/ToolCopperThieving.py:1548 +#: appTools/ToolCopperThieving.py:1615 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14703,11 +14764,11 @@ msgstr "" "Sarà usato come base per\n" "la maschera di placcatura del modello." -#: appTools/ToolCopperThieving.py:1577 +#: appTools/ToolCopperThieving.py:1644 msgid "Plated area" msgstr "Area ricoperta" -#: appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCopperThieving.py:1646 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14725,19 +14786,11 @@ msgstr "" "un po' più grandi dei pad di rame, e questa area è\n" "calcolata dalle aperture del soldermask." -#: appTools/ToolCopperThieving.py:1590 -msgid "mm" -msgstr "mm" - -#: appTools/ToolCopperThieving.py:1592 -msgid "in" -msgstr "pollici" - -#: appTools/ToolCopperThieving.py:1599 +#: appTools/ToolCopperThieving.py:1680 msgid "Generate pattern plating mask" msgstr "Genera maschera placcatura modello" -#: appTools/ToolCopperThieving.py:1602 +#: appTools/ToolCopperThieving.py:1683 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14751,7 +14804,7 @@ msgstr "" msgid "Corners Tool" msgstr "Strumento Bordi" -#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:343 +#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:355 msgid "Please select at least a location" msgstr "Selezionare almeno una locazione" @@ -14759,51 +14812,51 @@ msgstr "Selezionare almeno una locazione" msgid "The tool diameter is zero." msgstr "Il diametro dell'utensile è zero." -#: appTools/ToolCorners.py:412 +#: appTools/ToolCorners.py:415 msgid "Excellon object with corner drills created." msgstr "Oggetto Excellon con i fori di angolo creati ..." -#: appTools/ToolCorners.py:447 +#: appTools/ToolCorners.py:450 msgid "A Gerber object with corner markers was created." msgstr "Oggetto Gerber con i marcatori di angolo creati ..." -#: appTools/ToolCorners.py:474 +#: appTools/ToolCorners.py:477 msgid "The Gerber object to which will be added corner markers." msgstr "Oggetto Gerber a cui verranno aggiunti i marcatori bordi." -#: appTools/ToolCorners.py:490 +#: appTools/ToolCorners.py:493 msgid "Locations" msgstr "Locazioni" -#: appTools/ToolCorners.py:492 +#: appTools/ToolCorners.py:495 msgid "Locations where to place corner markers." msgstr "Locazioni in cui inserire i marcatori dei bordi." -#: appTools/ToolCorners.py:505 appTools/ToolFiducials.py:735 +#: appTools/ToolCorners.py:508 appTools/ToolFiducials.py:735 msgid "Top Right" msgstr "Alto destra" -#: appTools/ToolCorners.py:522 +#: appTools/ToolCorners.py:525 msgid "Toggle ALL" msgstr "Attiva / disattiva TUTTO" -#: appTools/ToolCorners.py:602 +#: appTools/ToolCorners.py:605 msgid "Add Marker" msgstr "Aggiungi marcatore" -#: appTools/ToolCorners.py:605 +#: appTools/ToolCorners.py:608 msgid "Will add corner markers to the selected Gerber file." msgstr "Aggiungerà marcatori bordi al file Gerber selezionato." -#: appTools/ToolCorners.py:621 +#: appTools/ToolCorners.py:624 msgid "Drills in Corners" msgstr "Trapani negli angoli" -#: appTools/ToolCorners.py:638 appTools/ToolDblSided.py:928 +#: appTools/ToolCorners.py:641 appTools/ToolDblSided.py:928 msgid "Create Excellon Object" msgstr "Creao oggetto Excellon" -#: appTools/ToolCorners.py:641 +#: appTools/ToolCorners.py:644 msgid "Will add drill holes in the center of the markers." msgstr "Aggiungerà fori al centro dei marker." @@ -19784,11 +19837,11 @@ msgstr "Creazione geometrie dal file GCode analizzato per tool con diametro" msgid "G91 coordinates not implemented ..." msgstr "Coordinate G91 non implementate ..." -#: defaults.py:867 +#: defaults.py:870 msgid "Could not load defaults file." msgstr "Impossibile caricare il file delle impostazioni predefinite." -#: defaults.py:880 +#: defaults.py:883 msgid "Failed to parse defaults file." msgstr "Impossibile analizzare il file delle impostazioni predefinite." @@ -21462,9 +21515,6 @@ msgstr "Nessun nome di geometria negli argomenti. Fornisci un nome e riprova." #~ "verso l'interno.
Seed-based: verso l'esterno dal deposito. " #~ "
Basato su linee: linee parallele." -#~ msgid "Area" -#~ msgstr "Area" - #~ msgid "Ref" #~ msgstr "Rif" diff --git a/locale/pt_BR/LC_MESSAGES/strings.mo b/locale/pt_BR/LC_MESSAGES/strings.mo index 9a1d4d1e4a12b8c9737655876b292ecd27848977..20261873900f75a1f9cc7da1edc7d403fe56cfaf 100644 GIT binary patch delta 73591 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 F{{XG5@Hqeg delta 73025 zcmXWkWndP^+K2Id@&tExNC+fBf|Fnyc|W|rnU&d@d+wRt1jA1rDy)vp9LIH< zQYg%U@6dYU;lRn|7{PuVFHd z-$0#zgvs$emgM^-U_3_PF;t{qVP2l^q|M`VI%8?;QdCF-^7@>P7>YS@DyoCuqR#I}MdmO31uusB zoT|7q%;yxqTc~=9aGw*6F&Kr5us8mRZUYK6^7)(?oR8J;0oKBZ{6424et}K!IQlV1 z0iQ#PIKikKD2|FieXN6hF#+yHU4IA_@}Dsh&!VnRQqbo*2`S_&=yUdA5hM?tC#W0$ z!!h^?6QLX7bCTj@Ydk8cmSPfIi%PDosH8iD>G3yv{w}Khe^4Fz5aF5zlN2%!NRPT8 zJF4OQs0S8DB~cVAiE5*+Yh};(Ks7iRb>CQ22c}_0TxgGPMcuc@){nUqbm8x)5!^(D z{vifo@xneQ3pPPr*B8Ta6xPPIsJVQOS`BTBm^r_Who}b^^*L4WHeMjB^A=<55}tjjjKVTIbjBEe4b{tK&WD{`{rP{UuOS5sl?B77OA$ ztdBooU9JB#k!Crx#Y~(SfeO)AsFAP047ktM&tg~Vk5O6PsI<>1j-yeL`yLgU52*WV zmN7Zd0W~#os3~-DwATM@3PjIIRo3SWN37)Lgejb+j9%#UZGO zO+no^7gymjRAj1F@HyGA9;yR9Fs0W2a0=|I&Qu+szBke3;?^?Oil|UmM=ie&s9YF|icmZb z!L^lKpVOK`_R1!ihGBl{YplPcI`|$-qpyn3nT};~DjvfL7*o~fjKzyM4P&eMoa%VT zny1FG~F^u{Ytc+W+1OAKZ zaFd$m_zYAo{f43VCn`5wC))HV8S25=P+MlWJzfEoO!ZJ%+aC3H8-QA_t5NTQ{g@fg zpdxnP9)F4&$Y)f?)73KVW_pzeIg#>_NRWF5w(ZRoirU1uA0O zZ2d>n1Aeo|Z`k@1)Vt(8mc`GQ8_U+wzQOuyLqVaNgKFR$Dgw7{{f(_Btm|`La6B98 zt(U5v&wF|0#~A8Gu_BJg8h8X1(WLc#P9SDNwVxdou>zQp=Q|ZBXe3QgbJP*zus14n zcTf$yLG554Pz@z$VD3wgKI*ygE#^T@O^${>Cl8jiw!|RnE-Gi1qpKu1PC?7#945r4 zsGaO3YA&4^lPn2Q^)#q;p9vM(T=skjs)L14*F~Z_UI7(}DyViFpjJVv7}mc+(Tf8b z`6yIzZ&ju z4~#_hY^tpThfYlpNb~J|n6lLr~8fiHgt^*PfV( zdhk3{gKKPkv#lSr^<$`IcnS4Ze1K~36NX~aCZ>Z$Q8`i()oy*PifvK%uSDJFZl@4T z;YZXI+(NDQ$EXKgvFbG%L`Vs3L)PwykOk~rd zI+P7_Y5fvfKxDOE1xqLzrvvy z-r6j;6{wK^ii*qy%*^whzbWWJpHZPt(#Bkn9ToZr)c1c4%!^%6$@HZ?9*^3PwxK$H z3ZwB7YO4-vYa-Pc3sN72+EF*4TaLnQ3fdBLwlg8DjM{oTqBf8*sN`B>>!(m3BF`}# zQ?@ssV3C-gdN0)V^HC!`fQsB1RLB3qN_f9L>tAyd-oc!RM2$EKwF;V})@gfejD1ic zJdC>TGFIM`V*Oq|XFOKz z&F4DjkMaLbQZM25HS1D$X?<2hX2Y3+3f2AoCIbJUBJv*9(ZB&FSJI)fIn>t6q23ww zQOm3&Y5)UKIW`m((Q&9;b7xUd(yX)xHlf!2Ayn31wCDf9SnBUk4L2HS8tjOg9;KgfI`6+yML7xgLj2kKq(5Sa?s@eejhln=Fz8=*!p5H-h>Pz@}@5Zr~qcolX1 zN7UOa#}J=W3aev99BJK;O41Lg>+{B$0g@;u*pL_y0iY?ujMC#*nyHYz91 zU=>U|+{{^1RL8p8`gGLS?lRO|@3S7pWYmwLHn?-Pe%X2#U0v{ug68A{YQ1M1VYc3K zs0UZI^+~9a%tSqC8){B>p_1whYMoz2<3P&t|T30B9$AJ%q3AfWF2c))VpNtDAvEW z$XOiFa`*|=&;`^39-%t+1~rnzqfK(A#~|wASQ=}gl5!mC`qilGcc310*dG54)&5_o z9rTq;K|M=LN2GosQ52(5IWZi|;!Z4%&r#Rq9b@La5^8Q+qaxJ-^}ycN;iyngLG2&$ z_V{Ad0NwTWz)pMMXVjFOMJ>YzsCU5!WW73B$C`R2RK2aOPe3)e5;gKI*c%F*!RI&%hfnZ1lkhDLM|Yyho&QiB zE;GrzHJhXAaj5-dE-J#CFt^tKO$tFA2$*ax3_-1i%C_DLwSf#nZM`c|Q?m`#!KbKI z5je$kFbsA7R;-REa2}?fYNl{4)}Vd`D{B1*PxCoje9RqcBS|ye{JO0*wx_-gwJOri z@Hq=H1{JBtsI55ROrNs?Gom)C-57!QQOTWQmg!J5wx`|^^-+2Rz2E=ko^6)fK-5pe z!%G&N>wpvDv7|ERSb7X}O%^Ks4S$g*yLNrr{pe zI8;`TxAj@55iUX9zY4WeZbLu5L=EgMDk8qQChHSn6YAAa_b+rQC`8LqJ==)dLieE_ zcp9|~|HOg#6vtxwdFC7LHfkhU=bNmqhjppDI1^7HspYi#+H|Z9YDznxI_M6zg;A)D zViIZuvr$<(7nS8#Q9IYa)h{fe5J3#jYvpzeEty53o& z>sWtjD5z&SFcgcTvN;xW;%IDvOHr%i4OYV@i_Le!LM%)D1gZlGmYBC_Flt~mFa*1z zR?jrl2g@ETrS*S{f3;4E4Y|D@{ilpdQ!~ z`(hs~f!9z;oMx5z?$3txsrSMKxEE((jH zV?o@Eiquuqa!dNHNxBNCt$HXb^xH5JAKUXG>&?d07IobURJ&KKZqf~A-IhgVe-%`Z zd!XiipmiK7yW>$G9Gg)|wjGsBd+hnksBg%ZsCAxYqge%2Q3LCQ!8ihmu;jmMlVq}r1{P)pM0nr>skAu9y|xVTtR*79Yb~WIx4d7P|GjvCcCOo?Z#j>t^XeO z#6;_I)ZFbu<-k!?Lsw8Ee}O6SEou%EZ8kZR0d+hWwNDhW$7i6H-$K-P!X?yB`5z|H z`VZJ*ZcJ{?hDw(FSOm+XI@AZX{JuaX-FVbg%|<2VLR1Gfp*pr76_FFD9rQ0$yZ7z+ zcj#(_iME;tWJj&@P}B`YQ4c7Mn(NA_j?}cqU^Mks*aBDEQ!?wgLX5x8jfmcEGjZHQCsXPR8}9vf_Mj&M5(vy50Ux0MRlYt z>cK-%p`M9qXF2Mnvjf%sFW3yvxfGPG`F}7Ys(~7DBh*xM!~)m{7vMrHhsAc7Iq!>F z731&-u0|zS_nl@#>W_NhcpQqeQSBz#W$t&=Q&5k?Q6Y*#g{G;k4@QmrOH_omqC&q5 zHKHS^<$4}9b36$dORA{z&upPwxT+A5Ow2a zTYrFssR!&e7Q^b)J7Q=27HeUOeP$UqM?Gf>=Eol}q1OLR3TpUoR0m#THB7PJgtid| zQtyWf{a{pbjll-2t9aCXw-5N7miP{p)J+bWWF3r}(iK=551~5n4qat)o*&H@PYh~~ zzd+6HXjI2$S(l;K{}$8~?XkyyMn&vADq{ab-T%?nQywxM&yLECaMb;ghgko*unGs% zKx0$`eNiJEX`P9>VL58NX7?sK+bC~B*{j6s z618IvLhX!OPy^hBk$V3>rl1~$oHom&36`Zk154m>R7XBy5Qd#GpJLIdec=nNh;yuG zQ4dV>n>k(&weDx2_KQ7O2Op}g^>j$s3QgY~iI zSu-{BQB!gnm7Ld5_dh{h_YSp+qW>_@X^gJsYA^+5=M>Z`ScY0An@|lNvFHClP0>RP z#80RP_|KX9QlqjuC+d7n)C22Uo1>OpM_V6s&i?#Ange?9WK_@Rp|X7qY9H8Q>xWSd zoTxlM`Xp4cu0!S0Pv=?xN}~JrM1l*Z9)zJBk3wyw zT~IHXiKygRYLA~qUH2Td5oNw;rmiY#A8CLCu%oS?M@95LDw3~V3hH^XOXkMRsN~6m z`dDm_ip+S_i07cDYMregMDO*B8pv~0uxi9K^J>qIBKL* ztt;&LJ=QZ=kn?v?%PIArCd8Ss5cOObg!NHV(+@RegHaE5ty7UHaGkFxG~&c=RH&0( zF_9>M+W8_;4~nwKYhXRH!^5%e4>c{y5Y?CZVQs25P@qjM;d; zbBcmS@W5X13e^$+b<;pFs==bxvZ&Bj#oic=m2d~Do!6*{`EQtk$25Yr(MwVH?Lw`h3s?{z-(&r2t~38_ERTNb?NM{t85R0|s7MX9$0wuaGTxqF zj{32Dy{%tEJ?I`P2i~KmAlZGh1BRfEmvAZQ!fN(JOVoPpg`IE=DztY|BT4bV{PHLa zgQ+(_y<7&MLcbKF@h%p{h==C7cGj_|DOrVT*FA0zJV#}D#z!WUrBL-4>i`U;J_ofi z?Y8x+wjS`qC(oa-B&O6xwB|^|~3=z+USaR0FqB%jOv> zNrRu5jKUyXYmXm8 zh3+O+!N7k^y(U(p-Wzq_HdJz5LFHDW|Ct9CK;>2q)D+jo6k7l7C}))T+~m~t1uAPqZe6JyL(X)JC3eGbB%&FhX0}JA5iN% z)pKJw>W0dw2Q@`C)EV`lfvEe3qB=Yg)y{0|DpY$rQAzw8DiRN$v;MUcJ>`HJ4E)zL zlor)cE?du!+Cn2yBZ)#KVQnmoeJ}!-Vg)>jO)<#}^S9yJp{_fOYUepBGH+k7{uR=X z9FV16nzvLx>o8OY$D6^(YecnkI$&!Y{vXHj(tDrN4U2y?f6%b_ zlh65)>z`p6-1^!4aQX;`Q0LEo0=$Ng;tmcB@dbEESRf$4`)Rf*YAP0^cC59wz7rLR z!>HAB9M$nZ?fE;X>;FOR^`B60*=+s*Z51x-ox)rGF zw&E;2V67Jz;6>^>YWe<+nzB!*oXU_Oz)Ri`REHu_$7|vgt^cMJ6#5%j74Kj@3`-c` zeb*1cTGV$~KcnWlR-yp!Gkh) z$)6;^`&i6?x?wVEne0H_xCa%1qZo{TphErH%9(JJw!QL%*S>o)OhUbN} zfO=ZvP#f4d)X3+fBDOxIYm#O!2edQ&fm$X{P@hntsZ56op+;T=HG(RroM~v!H^l(z z%~26+iCVs$ZM_ewLtj|Oqmp};OF?tA2(_H{+6xY&LU-Qb2kXXaTIE< z*P@d02UJe%L|u0fBk(we;cHY#b7nAeofnl8MN!FI0@ZG5)Kqjp@8|ys6!f4UP$T;Z zv*CSIgZ_+WnI*LbqpmNFI$r~OV?E4|dr?zy4>hnys1CnCP02^p6eQ2Ylz0tM2<1Qx z)D-l=d^iz@;T9Z@`7#H1zeHY*N2%w?VnTWcHNt;TQ}Hhb?8A%aqBLy;|SE;&PPRJDQYAeQ4iXUy6-e9LN`!3^9Z$pB@8mT zPzn1}?}f^VYpCUX3-!U{-ltHKLQt?-Zp~0hG846BF2z2$4b?!d+$JJphmOH`c)esEsH|Q4@*O7(=}jYR;#i9yABF!)-$~{5y8Thp5#R zQ_MIFl_M*VTymYw6twR5ptAocYObE3Mp(EwI~fbRH3s4266SOJ+mdF)S5aH+V^pM4 zl`=bDHRN)qAF87RPy-om&yU6ATL0fs2;#&ZRMK2Qb?7lFsotPQlrYjHXD-xBqz&r2 zMX3AMViDYhHShrjW8u;!`(sc8?1tVBsN-7yD=DY^_-}P?M!=O z9jd24qI!A?H3e5tujQwx*K6X6X3ndi8fuJcxSg$kVb7084PY+nIX|Oz(CesnAGj2> zHNHnpMVdOp0(G&Vrx(iAL!f1qA! zpKLv(y4k=Qp!fHGR#4DL4xk=<9`%6NsHFLX3T@^ZX5@LWAoT*Mh{R%1?1UQWJgkdr zP)YhPYT0F|Y1++>+ClSRpw@pJ1zj-0UN8=oeA7@lu>gIz0u{nlsO!H+UAM;`KZg2F zxQOb=71Y!`vd2H5I_yN7>yn|X5T~M`6IoDMo(Gk56;bCKVghW5YPdZrBK=XAF=hjsE$92X8r5E|A_;dqpY>e22>ICfVQXxd!jlp#MVbxCt2s9 z+F62XcsJ_)Ur-(X1C`XbQ91TMT!jg0y8+JM6xP=^51L)agm^Kw=J*EGUZ1G0$&G5L zmrYmH@|uSEa22-0)2JOZqMrHCsEZ}3&qNLIXVm=x&{m5M$}YXMMdg9R>U;T zy~wyu3ng z+4JdJnf)dw_SE~o7zHh}rKqf3i)vsGY9vQdAwG#^@jB|d%&pCR1yB(zflAgosHAI# zn!2v2{iF|SwG6T6Ct-S?@64y5jb3s84 zpdxq2)<2?>ENy!e!Sbkf8=|JB9jXI8t#R#L)5CEbP$;LNLciF$#U4L`YT!I-Zf~MS z{6Ew(`hayYZ3naN+o8^{Ky`F8DpE&K?Od?_<=PXEQOWWVNmeJYqv>fv)E7-!Td$Am zU`tekeX%x~+j_Qc>u{fsCkZ9gd}NJgSF# zt;et!_4B9^C+cEC-Uu}%%TV`kLA?uhqwYVCioh*fe}Ib2D@>~O|DHk-4kYYqE{sI= zGz!%~E%es2wJT~h#M$~X)D&$&MdmRo>z|=U{uZ?bC+Qa8{Vmy=sOPOf@9+QpK_P+z zf1>6zQFqfo7E}YlsE!mvZOs)?4{C`DeLK_$hoCw>64l|!sQbT0eLH@On)^ejsk(&j z019^~L}Jq(W&@dlTIZWl%jb6t!JDYi`Fk3ZphlVs)nF!6M?z2?&X4M7BK&4;zxnbh zgG$C&)cu`N`^EsQgsbiGdze}4|6i}b-^~~h;9TT_JQ#-Wu``AYG#?yOP@h&uQ60LA z%9a12LiySnILJ(4TGaXMwjP2?>IhUM%VToA|2t7o1p1>!K1L^SE`Eb6P#vi>*d)^$ zR6`rAdr%KLj=JwRR0pr2rtm&$19FC#WgdkUsm7tJ!cGb`@ipehs5tW{pgph>^ zdyCrX(tlxgz=o)t8HQR;2eAy^!UC9WC~rg7YfbD*ed;jt`~PQHmwJietpA1-#tt`o z`X5+>dX5pM-Wh|aZ^3B%9jjxOk>*pZ9ctrRgnCK+fm)u)Mw#Utfm&VBSQtB^R#!YK z;!8%c{#E$S9@vkm>G3ICjMqn-P!1bovUmapa{UZcsN+%hFGJowDr{3?d1^$W}LC83BzA$slS_Ne$nK|uXU5skr0v^G{lLMT? zcnbI8%qix4t*Pb#BT-Yc9&_PsYrr(GgRYaCg5G*D)=sDmVhCzW9f6v|*{G0jKrOdj zsL&rpt%eJz5Z^`Z6aQFWTR&M7ere99^kn^Iv6ZrL0lb8rJ&OW~dIdMdd~x zR7VG*mZ6J{a2jer*D)>ri)DDelVG~pu_~gr$~veKH$iQgeXSEwJKYl0b$hWt9zi8t zi5cd>_z3kaa0cdftrfTsO5GK6}flze83#mzao%$jyaJ6)$@$jyr>3BU@%rj zMW7QZX~$qejK}==BWm40LT$b8QP-u9HysK^FEZA0E(MLGHYz#Ve}(mcIte>-;?m8e#6QjfGJg zP<|B-Mw)qHfcF=Xs^X8-m*HA$x5)fzCE?-#=O^kLa4Ys%V)lug zO9Qm5-K7>L@^N26BFx2Rm(j@nm#Mepzb{Y60yyg;Vh@vSjE_M?(A1s2ELs3~cN z>ewjMh{mHr`lWRfYJd0*^Wam|*K*pm=J);?QIW~Ami14PJ2^R^kq4tjlpht!vZ$%4 zjJlzPJ>M1;(!QvX3`KQh7M{beaRDRgwa#RD;Q9ck62~iJWgLee@aOfc|IZW-Z!ljr zhc}uFKVlrmqrNjE*nwIVS5V96qqV{&^V_jesJGlBoQ)xy1DqT91AdQRZ3%G3)1ew$ z1HAwK|HL*EpU&XkL!)dV5KC>)OV;So2 zP~UjP_nX`qfC+fuR&2-dod?XoG9C=jKfB>H#}IUPP^d!TPwb4@e>6QCi=}8_84lw3 z#Y5&pr1oLnW*lFQG5F>u(}7w)n{T@DsCItGudw7%yOm=R>WP0b*OkErTK|(M4A29x zFh(CUJsgT!6&Gra`DW)!aF_yxR53&d`ZJ%-?WafR(6+pEDiofo-XOi`u9X zoj3bI2x?0%j}5UKs=eJf5Yt>R-w6{iocb$#j5#l|{_9Xkddc*(8J42{9WKT@*oTq0 zmrVmt{|sp^S5ODS4|Sm#4xVgi~38cx38Jk_517Q@0Jd@VLm{DZ<^nRm%|v^ z8E}*JuVr(D0|oE{YR3xy%k;Dn7NR}^b$kPM!}B-`%il7qyI{)&nYZ@$g&o~zq$`7axh5c=Iw#KMmy$r!#I2-%vI_!YG@0*_; z&)_=hYaZw?m-4IGhXKxCcoFmBu15jhKVEYkn^SM)J~m0V9hH@Jo|uiMKdOgcVR}M( z617bKdTQT_|CrD7+E|(61F7YU}3S&y+A$J@U!KYFb}h43G&iBT`j)J#JCOt=Gs@j2?lBHb&~(T3J9tlyvpdK9Cz z{vT0T&Vk~u1DrK@9yRB~-x$|pJ?fWHBMp6PmRWby{_q`YYObKx{VU9j;qS~lqB5$z zI;eNda16xpn3lhP?o6Rjk^_tXGY>k8x*^wl^Pu_|L_Hq0qisj6j+!6L6x=~=y~#eB zWmgNEP+y6P;2Ug&SgKU*Jk*LdTF2E`-~0=@OurF zLM6{sRI=VeMIgD~?|m19p?1hJ*bIB3UgL*R8`(wcM|3Olpge(or#f~{;CD*mhJ@UJ ze*vGWebS zxF@6E`zbgslZjN>%zkf+-HKX{f1;)!Sr)(d9ncZC&`yS|ey1HCb+h@MAGjcI4!`$B zas|JqekrHl`v94i%kO08LSK*>NzP!u)1LE9F(vNA6nGT1lb%C;4?&G$eFpud-6taGuA(#{oVlw;{)8Yl| z1M7QC!|{}PjX{`N>%SNUHBc4xgGhaI!fAy$srRW&dVW1dd={JdF{0|G%K1qzex7dmkVTQ5(b<)D07no;tHo8_050$k$_K z+=ZHocNmL_!~Nc`Y&xLs--n9KQR`XkP5n9^)%vfU&x{~-e!urp2}0dC8%Nd;=)K5!h>(L0zOpP;5RNkP98gauIhLtS(=vQZRT;7rs8^Z+#_ z*&_Vjhejy&q+SK5;U?5uuyi5Q@M_dl{erpho~ z1FdkbJ@E{c3!hP0n!JdKP+HWDxls`+ii$uvR0L|G=DsQJ^0CLGRztaBEYARv6&q52 zT*6FM`I4;vS{#^H(lmS%{nYc$ME&AJZ4{?v5G}DPeA3?5>>A*;o8UQp=9fx2b=-e>U-sAc3YXO6cUd{Vhx(u*JJ325mF%ODRB&dY_wRqkQ&33O+Y5G}mdh`wo$&!G#Gf!9rl?>x zo=E(S`f{v>{iDoYzXR2w@fp2;|0{K6^Wbc#EDf{u z5?GmfB~)^bLp@*_YFYh;dO(sYe(xu!G{~xR8lsLjLQP3a498BWXqu5j$c7#d#d_`7^~o1{0SRj^9IHZE`@0v_=xd1rJ>*Z4-vA(n62|KRMPnx84FmO zVi?C=9Et02I_7EY_x@GPZKz0=Zeo_{HXKX+BUVDUso7`TLlk;(;2x@HG0jX*S7UAJ zWty8keFEw`U^TYJ+o(OgVywxHwy3Rl1XjfL*cTt-GK_6uR?}Nl4yA1AeP6gv6a_UL zhn4ULRQA3?B~f52lbp#>Q<53eVhAdWOQBXnO?$i*YT5QhwKD;=YQ926@)(jb&T~xU zz5gjFOW&iGSzv2pQfq2dM>1k6%xNuzYADK{uY_tR8r4pWwYjwos+~@#9k&;f|Ljl{ zieVh;0qao>??H`tA8Mq(*z=cA%k)0#fiF=b`-n*}tc{6SQPdYu1q{c|)*05F=>6}1 z+@zq5=N?wa=ctAw+nOF%LT_ZKj>VwXabwg2d!srShq`VuYKxtX+Hk(YT(|%gncepM z!M2QFBRR|g?NDb>b9)Wd(EqRmzD0#DqMbQj67_&6RD+cd?PkNy-vrYIaXni3cbubr7rRur!xj&S1f{)t?q7n!9(j~%*zE&u{5UZZCm}YE3pR0FJo`aHPGz!({U{Ii`X7x2bm3R4{D>zJJ@_rjKdh}SFI64lsin0 zOF?rw5jB!UmH7Ls>OSj=mI>^)71t$D=M-iCJ))t)H~@E2!LfiF!c7Vdnm<)(F%psDxUk^-~r7GQf^ zkBVs05hhZFQP(#f!TK*sp*sgU;3AxdAMgOik2LGI;V8fJiTY}c#Z{vTDI35C45FTJ zteJ{1jHKQky$)aw>g!P*K8D(9FQLA;l8$5j7om`QoZq>MjjtW1I{V$io5DNZDX0INGwWu%0 z7<`0vu>54xfhnk-uR(3S2T)UR442_mZ0aNFrue;IUZ0(6BHCk`d6#@fC2!I%%}(lO zqM&38LWQU>YQz;$J6uata(2XxI0Uuv1Wz})5P=$DEmTL^VpcjZ5H$reW|&p+4eGwt zsOM}&z875Q5QX9#_y-GN?wMu-iosy&U!a!dLR50@L0xwe1Mxr9viodJFw4}FS<_fE zS#wxJJXwGF?193l5tp>}3f8LDTGj^Erq)*04%TkgKGs3jVOG~VQEL5vX%Eb?er;W9 zU4>p2qatw(l|1)RAx=8m@BIl%Htb1#25Mt^Yb`p*)O(@^xC-^fwGrJp6dqELBjWwe zmzd%!<3ij_J?~tz^`5t8n`e@!BdP=aP;);9wJPS?`UzCB-9RPlW9*2p?D^RFtbZj> z@A;;ov8d$}kL_?54#iAg`@O$`dVHC5q@OsJz# zZ^22Zso92W@sUeG4b53>9=sBhQs0AGCO_Nyd0W4U%KHDIR?SOP!{JNJ#?=@bQeS{t zwhu8gez5fnOHDl-KXBZwOhL&M^^MsOI-o+|6C25;Q;1v9T`h~;9<>vSjWIy2F|EHh`Y(l-Y4kG)9a|(kgoI!>B*$T4*CSGYe zoEJ5R(HMrEP|5ZsdQ*f6sc%JXaJx`b`3ow-XS}-0?`SC~d2XR@c#P`Ezo?H;XO-Dd zlAuPE3Y81#Q60}`>t#_PZ-8DhqC(#rwK^uEHmZfF`@$t~C+Nh^ptZ^}@DZdM)c;p^4^z)@^Il$cAD; zoMtcFh3e2TROl~bdwhx+u>Lx8UuVoqJq|UHC8%83h)U8UsOQ|qq~zA8b*}lPQ#-OI^78b>Jd(H2D=HMjiIro{JZVlF^zRCI))v>Dk{oWt>)<*X?4rDoC9{dou zQ}1)o{6R$Uk2K6On1gpXp7XHZ`-91VpUf|-{73xGRL;-G`&!U#+4b(>S z64g%Nuf`mxsVIdy-x#}Mr(aqBI&gvmiSP<)j&9==e2IFijXGgMydJ%VP8u7dI@lle z8lH~YVt1i(2v;c~la&bSZ>Vm~7pQrKn%P!kGND`3b1Jbv7z{@1kDY zDbJYYR221~hNzKuwZ~o5{_+iKAQw^X2mEHPbIVXrb~nO8I2{|}KFo#5e>bb3AgbO5 zwF*X|Mz9Pk;wkKd$gNVyg4z{t(m@l|ywf7IpnZtd28K$#)L(YJFX!pto7T1v58^ zQArt!dO#%VeO?=tbWKnVv`01A!=B%Q%7s0sJ^unKvX4;L=ecM$vp@($EMPNDbj z|6it{m&{YFgt;%9?CpeVcnWG~TWsqatOrmz@jHg&GgL>j{AubXu{`y*SOphjUA%#c zT!AaBf6d*1E2d`?QFFco)x%Y&2X8^W3l7@jzuNi*R8IVby6%~+e?~<#)m78M?5N0< zM@6I+YI(+8W&P{GVtZgGYD8C29ea=JNUCdo?>|1zhDxfhQ4RczG58SsV!7)kyEmZr zgB&-^GLA+q^P$)Vm*FJ*=u%J)Ot@(_n83fxug~V7LX_#2-}@7iHmG&H5Vd~Kq8dzm z+x*_IFlxW}0@cBFSOCvsUUcr5eIpc0Q*DTvT6ZdiXbMYE8^}FWsNUlo%zD?TADVq(9?}l~`#%)4CH8(~ z=5iV?roITnu+(E?ThxX!3Dwb`u^nE)mRREJw64&A{H_y`rrx=+p49*??yHI`QF zKT}W=mHx+sIvTabPQXCijB0Q@Dhc=6`cdmC>p9fAzGCZltdFeEt#7TLrRF~2|I7nY zpt3f-HP{|6WG!heZ>@@oL~Ybdr#G;7ZiU-=KEHPpAi`dTw^Myx5C+JJc#UX}yHH?hb0hd1vdX|26N9P#nnd=zm%N zBPi_SfaW&xh1r0Hpt5`?Dyg30bgcH$e3qX@K1G~!sC9n{H8p>urr3-D4bP_dXH&NF=MXl%0sP})` zwO}vWr zG32A!2?wI)bRmwyt*8eU`efdQQK(48qLQ^IrqcS4qo5?2gnG|ULp^9N*1`>_5xm6j zG0kTa+Mls9^?y(yFT!q71Z!D`V>#*@Q3JYT2Sx!@a#cq~pc5+lM_QMo_m)IW@k7-0 zSrQu~6Z7w%1aY7#2eebgVHEB|CD(uUcELAf8`zNjY63NU6%b`M76_q@(SP;9TMlcVx%#NZOylj1fYS>90 z=p}6$YeCfYHBmX$6173~M@4LyOF{4FcvSZ9MrHja)C2xSeHAB6VH(JZx~>E&+Z&^% zswXP6BT>n=2=%}Nr~#fsU4I2N^5^!rn=z%iFbC>^#nJ0ADiSTRGxkG8*yBLO* zQkk6Sj=FDQEibhV3vEM_>Y6 ziMsDwROol3BK0dOS#P1%`9o9$UZJl4fa+-SH0n6(FPB%~&upHP{jh z;~>-xt56*{fC|}VREQs=8uDi_`$bl4M?DNRMUzq2Z$?Gru=Olz+1|qMF(@PJU+er_ zMw7j1GMRN-7|(FLF={SzXEq(oj~a1R9E;6SZ^b`R5qp5a7?{Nvit11_Y9Rek1D=MO zlC4=-|5`qKIG~14qTX&dQFE6pt9d{w45FSBwS`u+)LJ6sBSxg0`;>N;wDK1DT@Hk%nq9#odsK#jOL>iVwMIMnr%usAM2P3b8N!h5Lu z6J|H>f=sBo8%aSMM>Lkju2>3Jpk6kYu^)!y2=sn(`3m)b=U5E$<}^tci%PmNs7Ox6 zAY613K#lq}XirP?KVJ`HCn+SxUUOMG50NYtRTDw@gqjIDdYE=vjXZ>HHFp2}(GGp@v zdOsMnMLpmwDwNMrJ6q=b_N9YbrrohF&c!Bl_!j1;UaDZAa{@b{w%URb<~7~}l`Hd6 z$@@!$Yfil5fI=2p$SlW_sD>J$=6Do_<9t+venchT9c#hDf!?oThhRaDuS0D}=WYEN z>cKgRnDg~eTlR3*9$1YU;aSv;?@$lSP}Cfc!rIikVh!Ae+8N(s33Q5?PqmV$5%no#HS2I*n_e8CtX_%7dI}0f29k33yWBrV} z;WXC4Td3rTC});U8&qy|M}05M!J@bowQ=1>MIf-e*>b~BQ&tZ(pfRW%+l+2;3MVLN znSDZSM0qQi2R1?Vbb>V=CsSXJ8hLn>Sv6%)a~h4>*0^K2~-EGqe9*on_?VlicX=X^c5<{KB00X zVHI-6#qgNoUkZhuHc&)JWH&db}N#lm}3eI*S_lWvqyQqjD&;x;b7C zHIP;qfjvWam*GdxCoFy+%DS zea%2;DIp0#?SzM;&Cd7<)sYgl%zYiv`}w~&1+C|iSRcPaCEsmS1F32UIuEce7Q&Ks z%t$+93F=>>mf<1P-|4)G+KArNHG6#OdS>S=i%U2@1{KL1^+|S@LQx8uyT(`syP&s| zp&qas)uE@Tk!NjS=CBy5p{A()p@%)b(AM{(pW{zZ*F8h!QeZ=q3n|e1`~M*nlw5^S z7et{RSQ8cE!KemCTjMdD`dZX|zoF*zCMv0(p^`0QjHwsI9@HD5I=UYfu_rOC{~{EU zH8K~L$4KfOu@Npp?SN0Q6qadhLfRh{p+%_I^mcpvhOH-VVpc(M4CZ_j)b(-JS@!(5 zO<4cB;8%O#F{+-tsY%L0sF9aMji?qX>)WB$dmmH;W}}jGIcn7$vYtjo@Cs_9yNkNt zX=e7FlrDt|)GJ~a9EG~@4yxhLsL-ZrZblGIT$XEVPwb4Y8<^^h7;qlyy96Bbkbt({E5C-Gv(A z1?w|ZsFSre=d)NNQ5|TCY4rZ@NhQnv5j4x zsHrQ48gUhC1Jp8aje1UB^#1&B2nB_3EGpEiQ9IQItd9P+f!?21*TVMHw_-j_)6PVu zoV7A)>S|giqdIU5_2BcUWd0k~!T-?v-~UM3-n^YMqh1z4*aD-iD{-igUmV~l9MaKr z;6*3%^2yQJeD~+F=CrxXU2z5uM!hQnzA&q#0P1{UBqIF&he8MkYGYFDi&~$<%mvOgR7AeUVz>eo zf%B*kK16S4LoL(vLrs=PpxUd9n##Ji9*f!$JE8aQ|Bdnr{A7aK@wT9H;5=$M-bbzX z%)?}pN#uCI=|t}be|v_?(IXw>yn zN3;I5;mqTJLURE1z~9i@Vo`hl8|z2Z)c9Gp-UkNiK?SYFQMpqV6`4Ay>pG%FJQQ_( zymg^VK^HE^Qn(8>75|`mnrw{uAjyadeSNHqZE!U%!;)BSta&>Qw=PEw;1|@u?qL;t zgL+=sab_!zaVaSKzsJ&e5p`p#@#expSde;k)H`AzdJ#iK>Humv{es%t&)fO~)JR{W zmfuIzz(OaO9H@#~)^2rMsE5k_rWlIDQ4d&w8uH&+&GofV z=VMVhHX7BT`KaVxihPK;&Q5#c59^<(jp#4bmrw=P3%NZ+AC{r|eo z0!qpwTDOff?(XhRa0~7hoM2(_;O@}4yA#|YxDM{Y-Ge&>f(8o`-v0hNbKk7H-mA50 zcGan4Wq*yUub-I-y#@!g416O6=yFD z2aiMV>wl+dDC4WfJ5Yz|3DjGwFHqMf@kICLF%Q&Xst&a>?V%3wP^iRKn0zPH1kOXP z#6M8agRf9$D%vFOzut`|o#YG)KrLYa|h3}yrSbZkDEg1-67afiA#Y)ii%)K)&$gFs92Hv$Fz2$i9Ks@tRZQ1X;e8E1z&BSoRMq#D!; zG>6*TzHkH_0c96`nwwZsDEk~xhqxHjgQ`-%6dFP;c}FORLtq#<8)~L=p!RGbRDw&P z9BzSnUL1lA;C+}M7Mt!KRNbMraGUWG)c9MN6$UcTa7$gsI0Wj6wjNf6kD#6hd1ks# z%Nsx?vOe0N;K_a5r-M4j!HE(O#K zvsu50^(#Uxb$#o%fO^JvgIc-KP`76x)LGaLwdDUm9b(^aZl#kz@9Y0LXlO|bLp_2k zS$`Bn8*o_s~1-cK}y>JDs!>@6-CI?JKzbMpcZwxiDUQpL{1k}W4!rCyfjYd5hQP(=f=1|wDE7Ts2 zhFbF7Fg1*`&W-1VO0=@|J40>7NZ1_CgVGPP-sz`>dK4G7el5rZ1HQHN*a9I%^A!yP)^~zpv1c;&Ws4 zjV|My#&U27Uv)jsMP}g`G^#1cuGHR`*O#2KCOT0@RC88>kiO zX&erK8FqfO=5XvGJ);r+y2J3-?2vol8&&KR5Y% zs9O{{*llHcDE)%L+<#?Q1%VQ10CoS{Lj@iUb!un8v~Y#>PeRS$Ce+G(hkBLEvfaJ9 zReCb^1;0>rVGj0d>U)N~n4tHJVLnX2uD!>V-C4K?*q7q@JyWc6GmNW;H zyqL-BSidFI85scenlcqC;3=3HUWJ2Un7}TVz)+}}j)A(Lb6{b(6Y3HC9_sK_-0d6; zfcfdKfO@jshI+Zpx5sTk6Q~vI0d-4eLml$PP%C>FYT|+OH1g572KD5MvDZD}Qb1k1 z22fA14lq011!edbl;hX1CHxoaaQ?E-UDK9OE7SpMV*R1?$HOpi227>tdtV0XEY*bCqE1i~8VU8B`3-vi|93GB zoyN^jr}rq7 z^q{V9gg=~J85q!>wxN*`&VZWPUf2~rgE~}=kGLn+2&mJ14(f15KI&dA%RnXE4eAFGhuoO<)1~L!lc0@)`@x0=P%Dz}qPxbmU`_ffU{&}zKtp>{ z;gY)^BcKk^M5qVR8mN`o3w1`0z)tM(4XCqG`HItT1T}#^P}l4o)ZzRFb@*ambrVSr ze+rBD!@aiE&Bv@24Y=v%nBth2lYmz z3DjZj4KwD8uSdTN4B| z!w%N(2em>Yp;lrdR04CMR&XoS#7@}w4d{LS@2LrVx7=BX4r`#84(gQlgi7!*)J!fy z&Ey5t%K2}*vyc=j!JIHWED1TQzH(3rSAa!fZK#AM-?sPv%Mr-&0ayjzfHKT<$Gx@6 z0(JPZL+y25CT*~J{sFa>-|qz6l0~}fmOK{JUZ#Rt z+9FVyS2WgvnsE@+68D1IvSCn5KNEI=3!nnTzUSU}B!Rju4WPERBP1jeRD!o)diVg!apb3N&r?9nFeB8G z=ZCVdXl!iqE-;K<|A*0#!x1nQ90zrH);NBqtGuS{bfg3d7N3-`HNf2c!r4eG%X z`K4R3q)=Ov7b?+WP}i(J)C^le?Rih*Xs8vPYyBNiXXO->{=I-T-oTs)!n|^?dbwdn z`t_mSKn#L1m=E;`T?d2UbEp-n`r6sGHco)S$hX40u)`bo3CCin_Z#Wnx(NoF(a_DqAE%!Q%3pq{+f?4PtZ-To>vq6w`RhNPl`*#|1E;Jzqsb*J1D&i1!%I-(|3Phq zKb+q?ObMX&wlb7mJ*f8stzarR5bBUFfO^Yy6Y9Eths|Ju@P6+#qfdDL{!uCf>k%m6 zIXDk~hS%XNzu)_pY~3RGz0cn(Mf7{02aJJD8Gj0Onkz=~d!HSTggNN%f~ny%sI7<= z+3!8`8$q3c(NJ4(H8OwyP!EDMQT*ON4rvH4(9apw?>h;@MsqVh19d&aMRx)7K&@04 z;|Q3a{v4>KzW~$0$54;ps4@KB*2IOn&KaN{!DRw8^dM;r^`PkuwWMR9_G&higC)k* z#?8iE#zV%F#*4-q#s|jd#(#`~FV+Yb(=vs6pv1L)cBltWKB(tGS=bQPg4*--#-lJh z{X0^9 z>Tr#MIx};jW)uvyG6#((pjPYx)RNyezBYzU;I=9r^#1-&DH=L-HK49fQ&eNO~=mMvK3XmOY1&Twx3M?f96<51W04lDuR!KPu*Pww{~ z^)phq>wGi?_dgp79}%>H=~DWAN8xxl2i8gD_y+EfJhk7qAC^z!_x?mnq_lqDF8W8{ zIyfYq-**+}PVe_#?ILIJ`&!UH2{Xc68U5Z@R_a3~dNM#mdw$RO2{xi1Gn1P^dnm=h zP-kE!)Cw)M{zj-R*a`K#I0dz3SD*sEhFY;incZ1R1+~?=p!5U9Y3Q(3gt=fNsJ$Bx zbqzN_9l~I!H>pRVmi{!MUSBpdk1xP{8`+1ai~XhWhj56p%Rz`c{%6xpN4mh zpaNZiI^~a{6hA`+jGWb8e4sL~40Q|YK)na-Y@7)7d{_tBa^FcP{nJnntgG-x_zLFH z{m+rjW!emCCLN(paet^&Jqv0{cft(t5)22wKn}IPVop1>Na>Rmj^*U+u!qzBims!XMyeIIfuMH!I=yzB~S@lw+VY_kS3U zBb4!bU#}Yr^&)ZzW`S>@W|*ujXM}*&U{m@*<^0}Tu7gmwC2o25a@!eJpg$dUhPR=% zu6hN(uOs%qLOpS>RrGuBp6gfQ{Tt12x@Sq4Tf|f{3-; zJE1DDJpGq~EKfn@NpM?&WkEY=*p5XBXf&%tQYjYy&fOahweG zDE@5B+toedJHj-`7r;Od8V6~J1-rSuT?g;ePt@J-TL!g$#=LqEUwHQk0# zOSls*gioNKtr*qc9ij;X+~GV6^=SPL-@@<%-OKk!SdIQZu6I`$V~{(fgQ4VCVGWpJ zFbcJ3^d9W4*C|+xexxDpiB=BEpe@w1e+SF~??PR>m_yxzrx5&^eiL{YZihSJfMIUt z1&2HTouO{a8dwpA4UBNFMpdAeXe`t%I0SW{??AmjNH)^FisgYyq!^3@TR^Qq2UwOB z>I(JhwtbYlo*$u}pw&ma84rf(=wE~jVc-*ul{99LagW|oW8IHvf2?}j>jDJF2(NUT15M8DreH=&?O-XRY7dehL7+<>|+ zxhK1q-9|75{ee(RJ|1e%c0;X5j44i@-dGzpA<$451n*CE_r1(?Ufk%foZ7%O+zmt1?RaZ*i@+g-_|cb-+i{a5SBsy94>^p7Px2ld8ikY zGz;A|?F={5{}1ZXzG;zr@oKu*@BNH<>?N!KE3z5}j-ZfdncuexeunGe(&c{dPcGJ8 z;g79VKn;dU}3lm>P6=R^uwH+{Jt+RAJm)8+?(Bd$5JpN{W>r; zYz%ey0#IAH1M21Z1JpIGy~VBAx-H!QAOv3#=nX@Yt?oVGS>r939QkvY7)IXap8aW! z1z;lNm0=Rt0%`&Qs5i6Yp!cE%lhNM}W5dfZK71lY8GeIWiA2H9Z~#nCe>~K!*bH;R z+fe#3w!0O}40XTrL2XfMSOhMBTDcoA3XHeIC7u#$B6(m!7^q4kGL4q7GVBCpunRVV zM~rEAx}_cjmHAYtnXZC5JKJCu_O|IR7hvpe_v!pH7>DtUd;GqourSm_?m$)~;ETD} zU7u`FpR=uidN;fqriAC9GJOqY7-^s1`|4LgsO!}i7Kdx0^j^SL(7)g9d3&gYPe7fG zyKn*wd%*8otouKi##jV-54t7X59Rn1)a!fJL$2Qxsy`LxgU4WW_#af@XoubXPX{~E zuL>pK17pI=Fe-cmmCzfQT=zfXA8yIhLk;ADsbD#n7Pf{jSlY3$0{uQm`2-{!FWay# z{UaybAx?hMz4r@1JvooS@bEI!p}P*XvVR+Wr?~&hEFKMAr*u$zmCsngI}?=a=aWyfIFd1{Q;;$e9QXbPP=|em)7*b8Q7Z&mnt@Qy_AyYWbP?2P z-vyQ672^}ASHDkChc(O@rymU}p$t%d@)#?@{PcsMCOivjrB|K__`R=2??q4(LE*D* z$;QJb^rt{2@CGWOXy@EL&H!~5O2b^RH`HsxD%cZ7Kkr^Ohe6$pEeZifj%}`Ik z#{n9JWpL4bwpsyd29=EUpk~?vYH2%IzdO{*4S;$wPKT-C9H=ea19h9u!2<9R)RrW_ zuqpjCS6o6vA!pDx3F^Tz1uC(VPzhWz`E{s7;$C%2 zoewIZvQUrc`cV2!VQJm}Ry4G?zr(t47pwx~TyyvQ7pOg31m$2O)M4BKxdgtG);|k% z7VbeE&cC4^%^$2E^H2AdD=|!kygAIK`#+3^?(;^d08d~=_zG&qg|54di$Gnck}xGK z2X(qz!7*?gEDjUi@OytLxgH!&KiW-qR;Iwt^pC;?u;4AewnTj2H5#X3_uDumVyQds zKDW8+w&DbA%Xsp8e(%rije`1o;T>!SyWaPE-}$@@JJ7HFz@3$YP!l>1b*9e4YVbDf z2D3lp{wsk+G|Iu$kNm!cunn9EBR_U;CKtgR^zXv{Fy<4#_rD;0&;>JVRg&HdM*i~hzX&;sh3jE0%v zGN{i7&O*ILM1SkvQq6`sT;>09dQGABehjPxPr%AB{yV1^1oeRH3w4-BKs};o1ZZgH z%b@P_378VzhkD}?_PtxWRFIcTUny7!{sQ$TbvD!?-3@i>_d@OYG3bZqj8~xaZrb>5 zs6+yft?|JWB7AU;B0)Kd1LY`*F%^`f3^tz0m<#GU7KBQ$DAcv?38g<0CV-=%X1)+| zCBe19iQa>{2l7mFxJ2B zMJ658-WP^?q}_}eePp(Q92n?7(T0@12ruAh6^`#xJ5p~j zz7nU8VI6|zMRv^$ilYA-d12TBR?|$ZJhVjA%|~z@IF)gh7~382URG0iVm@DI1Gg}^ z9!HPJa5_$#F_w?4M-em~?XM)q-w*bEggOU#(H%zR|4#c3Ay;c%LOJ5vKPWbD(zFTH9pY|gXuf=#t>L%nbNJ^z9{l08NF#f`$qZc|#z!%n* z@fylMqi_w!yKMH;QCfn04Vp&?c9fcx{&83v{>N%fBWMI{svCh`W8!VoR4FC3&wrTQ3LFnGgb%2Lw6JH zI0VZ?y9oN72tE@1+4u`7%@_;9PcH5MccgO(l!+R;Ou>;#YibOZGrskA!7QP4*E60A z=XD5n563FwLj@~^EHgHpkm)b%1)=v3?QrqJE%DVuc9|^u zp&S;5E@N!9k{Xks-xh_p1bB`QmHLcjAklD)-9lE6z#*kCt5TJpKlANn;Dcp73FR%+ zpGiQa2ueqAsFH#Nc7{qK4$fj=H-Nf^Rh(`%((OZkxA}~Zzf|~9X=pn6U6+sE{JG;8 zOr?9(2DV{z6XhWUOhf|p2^O7IXbi_Pt4!wTSH^SGpAL^>v!C`)uq2Zjj_wj>uJR52 z2-IoBX^5ZSNp1=@mjfvLOm^=Psyww!3$i!KagYZkl~c9~-)J8tfXW*j@($Z8UkN+| zUtJk1j9qdP=wZHw+DbT0-uE+>2E7)<3`{|JzA45<@C8TvY<4{fJ`=^r(m`I0K0jmV z`-eX7s=TrS-B=`>fCTRnXb^Ri%~}eT&`X5vb%MsEs=R~I(Yfip|3Xj_g)IcHVhTGM z>_w1S1k@iM;qwgNbI+7dw+PVIf*&LC+l&vPKE`$kcDZ0OZ1cdC^drOJHo?{KK0ZsM zuaZj7|Ia8qW?%tM!{9s(vr$=q;yWB|x8;_s4zja2{S&!LJlegn%Yj`9R^l4%0&t?O zU_1IttS$Xu+Wd5vFE>6f;cICCK~w~na8SmwyiNNs0X~ssb&^XQ%7L7G(g(^|#yub~79Fi3B+ z4olFIjPd@|dqdg}`5|N~zu7^~j=#^=zJ*-hz*f>NWfr( zIXMSsP+CQh6I7Lg=sctrA&CvtX*ixqBJp8)>MnHphDu;Rz7nIqKGY=sGhahV`d{7u z70jR-nfF3*qRoV_sQa$qs44rZve;Is13}i(?hLzQcg0pI8OiWjw{MwK_dbSNOs}62 zn}f8fkxUPKG{ZJ92%|v+R(Z}q1B9_jN@XRP@@b)OEQzcmk*XLyk`A87p_7=g36|i` z=sqDpc4X&GcFK}|YJK^Pi{3d~p%VK4%QY}Mil8`-j}iPbO6zfc1rBCbf8s=+39D?z zd3>r$dd50gqV<`;0vz8&cNEF}X7Vzy1iHhJMM6I|^)q^#scG=DP_O?FQ5Z`SwNc{h z4Bj`9bCA$#`W;~hoP>pqsc~&anE0-e@OCAGtx8@Pf$`e#HVG|aG7*{iP-}l7 zZSbwqS?~W<8kxcoBR^^Fi_O@07zKmG$m^1QbDRfYNEybMN=(~A*CT0Ws8R#gq^3u2 z4vEad{yP&1DS@bT@-d6(1Sm{aztbL#vuS7yK(;AF6UM{I7-TsusD@V2S6PIg0R*T) zZHw%Ud=Ypox`n9q%%(oF(dcetVif-VrwvqQRy{(^EQ^+w(v9)dCXYe;A@!WuXgt{3 zsR;T9&ZnchncxGk=l@Q4B_I711k|7H;a@}fqA`}r8)N_bn1kXLumyZ#vLDSsQh1r| z7=x4LI7rW~6A7M@b}a1c(2j#n9BkX0pSIZL!GCAuD#-#gO40ae z%cw6Z-=-ZI_;~A-osAbHF3`0s{0;NN*0%L7i)*oo+$2I~~=}&^mNmzw1nt7!h zvSlQ_7ai~UR~zF}bT%@>lsM^#ViaV**~~^EQyGq7ALHf~{af zwarg;lg%SRl}X<3U(mRVvx(+N|CdiC4@UoB@YS+TMc`G`kix%>@qJ<3UadWG2097w zGr;sZkPu%+^2%;>BV(iT8#*sN9dG_DFN1|FtAscyNINqL+_GdY<76azHvywuj9uZXi;`D=%?;#<+lPRAic{$i#IPrZEul&)*qYjgdRB>2@?yIXC;WiB?~2V*a{Vjz2Gk3T zkCK4$5925B+ZX*Z^s}>yZS?o|nM-P2CU2jVkDvdVt!-O&K;5cpJRftB+wt@&h$r+Wqyp> z;^;jAeuP~K%vapK@)n)5)*it40d(VHbD4Sr$Mr0Md9+pLQHwK{nq+>%ZZ|gJpnm_{ zw-V!BaG#cl1eRl*2W6G{%pjyRN3SJYqS74)DbX8;{sVXi+f$7H%-C5A8kw&H#*uhIID_CdsNVUHO5^`kMkB1u*f)Y!h0_RCM)j|9quJQm5R6v3fNb!=3^FxArg1fvP?m3BocztZDdgI#snKUu=rk*%Zu zxBOY6#ceDviPR_A8uSBc$znX6kP;uq?dk7Sc9gVcJRf#42iwq5*^MK8msBMa0k!)nLWRi6;k;6A6crrXD}TO>*1sY{rx0R1H%R+6N8yYq9q zx=J+y>HBgY$T%v7F;Gg5VFq+I5cDDA_c6XsyMrYtyM_wRjPyMNm9q5PGv3Y4l75I$ zWi9@$N!QAH+JRjN%V0bMp+ zx|gc*H)H##l}O|gHk$}EgZ4pev*7CmllhOyw8r;7^mCH@et3XdgnEejhi~T2m|^k< z(xd+ezAhrWL>*3DMGYxQ$)PmkKj8Z?K6k?t^gj_pWd!yrE0CpC{(@mTU%V6jIXC$Yy>PW7~(+RLYr;4#eq4`#H6iTcdz)3W_R6wMaOQNBbsMloYaN-W^W~&R$_b|wxuj^EBg8o8kM^E3Tw%BWaDmn33xAr zP9fxDDVLdV5610Gc!6X#(jNpj5a0z1sxpbBRi+W7ziavqAlr`a2%DJ1w@p78T#W9o zB$5lA|MZ2R?Q}NV5>26fh9%4jw_@1W3=hIg$W+?ev2#6E!*u>Y9*^Wyq7vjK0SdzP z`0hyi7plry`u*TQ;som03^dS#fx0+Zi0qE-V-;lUEbt;*nHa1>NLfeliUi$*O)_kL zB1l8{BR0X<{%VS=krhX;5EJe|y8x9E@co5BBg=Xej%SkbG#T0~vl28O&U+zKc}l>f zmWcXY(YsEtllbXP`v*&IH+_}C*gmJ$qP@`KY=@cgiqSzjQu1q8iN|h zV&R}Kvz%_TSV8dWtiWQ%R7R6jQ*?Wo?Rfes@6icQorL~X{QYEsw~_Q0e62IRi0~-m zfqND}#+6Xch|?hi?rO6CjafO8uLeA3}Zz+ioT=$*MjKn6o%!7MXT68%)h$ zaa+o%7R2+$hlJ=fU?nmje~;5J*gYYcJk(bt@&cXXW*cIYj~PE@JPLIyV-Mjqd<1@> za|4I^$wHNLIM{*HsW3kM>nP6gM%;%V*ph`LtI`_1G9*#ZW?!7X$`v~=(ePWC_D{&$ zk>nSfTqE=cQY-48;C4Y_B}R8iU@i43O0P|^JIi+8R%jMMHzRKX-@(t+3$&9{XVY$u z?NlxRY+7N40hGfU7~LU#Y5={brFs#<2)vc(MW19%H5H@wwdf< z%!lD2f^}s)9?7IY)}Q{r=E_7!Xvqo2nT&guOij??!( z)@C3Xj!F<{Jq|{|OZ3~&E`}qOxC9$u4q_>(P-QOdi0D;;OR?F;_*^ECmB1{#fwrx7^1V2eqH*lY}snrz&`rR%%Pm6CEy;m<1(@<%<@laPl8sX-x_&H zIZX@}+A9l@|3WJ;7vV?}c*Tr16QDTGD%cWAGr0x*0jDvreu{oxR)l}e>sw^b4|^`% z2mSn>N;b3mid`%Gr=Y4-u$5CgZZzgU5hul{19AGJ4c5TG-J>l;Cnaj=BWc$5y~ zNF@t_L&`YXMF^G;2l;LN+R#_2LVvc+^rI8`(xdl=z|$C;ZetqSj-UJVyD-T(A#&}% z${B>o2wst_D^b^CT#f!9Z2UfQ z`AdTS|4MrEqw#vwR`gp$VE=bwtg_#ns=bM%R#`ChrTw4EpJJ z#y~kFM7|uwFBW_(?9V=~!9gb!#?n^FL%SXU!=f8f9?<_zz#jiITRsoKf9T?!KiTx) zLtPB+!;H+}usKSJtU5u{60j0_zv7^i%`h{;bJ5O7@PBPJvJxyUI^E2E5_Y|qP-Sc% zo9sMxe)NCVHv+rh;70~aVtAGIAO>m@aIiV7j`0GL=w`D>$XGTU%tf{You1Svj3pt^ zzpPe$f*dDY)t)y+8(*eDwvv87(-&&2$X?#0@_>fr!o%4CYJa7e}=;c)RH)8iSjd) z8#3zx^i{_H?-`ifjk=G1oSnpWJhrWw_o{&bI5z7co@ zKBAzLoQZ~%GP?i&5$vHEZ^Yq96c1n!8wU-Lr-2cvKjQQ!maq;rCh~3cL&^r624Sai z3EkgpGU{hx#-$iPiA`q-C^OML;n}nQ0~y?eU^MkO?SF94j&=d4a*}pPSzw7)BEhR9 zQqZ<$jOk3Uet*Ws<4a{ls6@kH*9!SzR%r-w{UJJEYXny;<74#C5;y``H^k`%4C)~} zhvT>CG^Msj77m+n=*_mh-a??#w$}<82KjQ5J%{aY_?cpQ8Y_WJB?AoPGNYeS_=3SO zo55_HpR^Tdj^Zh@{m0pPA1~VMX4Biq_zU`fG3yJq5`&RFz*jXMx z>l;Cn2wWSZ`8Y^VkjV^$lr7A50*<2M_)p|{N%je{ZzLKK-5HjAak!Q`8ofe{mBME} z^f%(SC4Te4oz$At)Kryf=(N}UdrRjTh7~YW8D}$_OqPj}UB^*(ocDvPk^O8zGnl@! z;ynWW0LiIDqkSL!kaF09hG8}4P|FbGZ^ql`J-kXsW;wx(6PfZ)3TWeT$X4Zd68(zv z&ZhI7WD2no!{Jnt3kw&a^Aca%(cgydD8>`euK=IZ-#|@C`w{-V=l@KyNrSK|K{k_! z%4rmSqE1G>$P!CRGMfmZG78Q!x%&Mqp@-P4Wb7PFW-F=j93(Xb*+0nk<1@Bf9exp< zpf3sf)&fgezlX1q8v~V}aacao_$VCoMCS_iDDpzo$s{+M{vm32`lSds&Q|RVoQR*M z$O^DRSJAmcKey(8+8n3E=~D)Or8bZ<^keXd@!TY^jJlNmAIvlfYzi0Pcm#TnVNYbq z&DUCzX+;o~#poTRo@cd+qVo$YkcIYA#%_4)@2RmzIBLtldg?tK{)h5<9Q9`vE)x7c zAMmpV*)ft+*-E>d>GmS9N_>30 zBIXF#B{J*(7RRqG&{ud0<8wGnfl?JS+JKYhGDdcmApco_napAnvNF_S*nY4T3D0EO zAe)C>Et{!=H?np*ILOmw{STwm35V|qcAJb#SjOXM_rz&F#^$5^nRY>(e#N*JI$KCG zBeNJmyEU@*Y*A(EI|5aOA>{#nuQOhg`i<-Lq}h4R+&%Tfu0w?3yqc3ze=d!0||DOWT(Ie$Ul*25CO&_8;ouws>*(5oC2Muw3A6d$w@yFaWaQ| z{VxjpbqyyKLj{oH7=57hCXu2T?So@rHkb|v4+$2F{u1gWX8H_fWFmuU569O)^q$Z! zh3-_^%kk9$o7k3|H-EhZM zo!=OHMUc=X1D)TIwZT3Lb~&{7loERWZ$hXt!?GGegIg3G%=m`Hcy~G3zPu*h9 zzOdAhSV@(%$opBM%^9DAtygrOnCKRg$V}7Q{}y)0dLVeq#KO~VZdtcO_jmNh!xSVHM2uP%M?N~cNd4`tkn@k*ikPSbrn$XG~OhL3CX-;&f`&cS&SRH;Qfv$tx@|2j&?={#pP zwW*&N3@I&b>C=#43}#ac>OYRF)FrWtI3ELdo8$5X`oY@LnQ!fs=po??^ zwT)W;fGyb;9OtrGw?~$gu};W75+t+9`(f1Fl498RnxvMRz52<}>xwL-lw*~Sgz8KF znfeO9Z%87L5Q9@V9AQfHXb&R8JJfP0USa$`V~ub$B-GNDBasvY4$Igybn7!VlKw&T z3Su`uRFd)8(qQv{*nFI2JZV_wUzIFUvE+|2Zi8?J4u<3WK1@n~4z;P4igE;<$H-N# zV)F-M50I&(B|vVLS)~KAGt?Zmm5Gq&BhG!sDw};cZ_GRYo{cXdN=I#P6XPra3Yo|@ zJFJLNYYQ}+75P9NfmunMMk9%YmS8dLTH@mgcDre}vjogS{dWM% z7gB06cmc!dp$z8J4_%UC9G;;4&G`-5U9eMGPrEukRq|sui)5CW|5xa2Lmr1@H`^-w z&-`mK7|Uk(n&2NTfh+`h8!CZ5W*8o)b4}+iPCw$bT&Seep%>Hqm1ku$n2*G^!kGB_ z=>7jNvYm(UnK@2n3XL#G8OosyX50R%U4Vo$sX>{JZ3GJtlhsMj*i;gHL;|mwKm__d z%(f`;8dCpaJd?ivqcY4gt%;LV4A!#!j0rDTLisUx9V&t8*raymzJ1u;rrihIvTQ*l zbUUHD5uK-Si?%3~t;}A~KcN?&X*ToJWce!rGcu5$S*UcwFfTekF^g~{vW~HdaJB9I zBgWg?%zwl-Hsec?sbr!5iLv3x>XS%RlIu-7BICayZ-q`^2pxSB>IMVPP*{ag4%#mW zu+e5-hXfLOE_rKhvhJ3^S7v(HWWBLfiHh?)HmPFx&TEs&&iJ3`zjtcBB+=Rbz64YG zjKlN)YrjY1=o!wNkl0ZY9R*+DxC)L+BELjUW{JqhD%uyAX)c09M{gzV9q8;LMrC{r zXMCw8)*snN{UF#uoQ9O0WV-{S2MqpzK{6bv%tAiJlG}h>r4jv(v`bk(H#$WK@QC^f z9|f5834Grr@wg=Xg9YwRKMzUG$3CvU{#TX3a|q_ZEDY`-=pk5xI)g+yD=P99L6d&ah?W)6$CuMU}ofp zN#G4*|I%*|YNa9~53j_mG-JjpD@ZyQd`qy#=2!9-=uX9^JTm?Ca~xzBBJ*4LgHRkm zrv!Y5lhimUfzlb4>oE!4W9$P}r7MP|Nw5d<#5gR5ej<{Z$=Fg7Y>ccTV>@RCB?^-; zvrM9(@+wr`ugF2=H6cFZ>Js4+Odb3&ZlD^PDH!QXeT-D)MyMH#C!uN9e@37~=&R&( z_@9p_naF9XN?Y_Jqx%TktWc$tWuW#*;zY*J1brv$Dl<^okFc~UI|-lhFoky1tgJvY z(+e5vO=AcFs^Dlpb}!KDg3d^EqlePHz{+Gt)&u`Hn0k3^YNK0*WPkPkBt4FnPL)q%&w)93AJ+4?}W~2XcMU%D(QFV zUM5x(Y_DTek^U!EO@9Z#my+wa2&xo8Sdt)_QQk`;YYF-l<);{_w7_|694ChtvH6{L z4`x{%yLIRm#xBTwMWg={@{8z{Mz)`^1@xoS|KwIG;9El{62g#D#+I-!vg{bdBY0el z=b)!jj6_Be{Giz!VQE$RP(PsWxBf+RPSM|nzxVi9Mlxw=Uq@D!vDum!f0Ey~pGG=6 zFz0En!tpE%wg+buY&NYevGN$JJf&X^_J#lAbfn3L(w~VxTzO?7AN!NQE%TF!v0(fj zXCg}imhCq>O<4B5^e8PC$*&W6+ z5j+v?CQxMolUs)WsU#FAfM7A5Jp_+{V5F^t6lY*?3FV|D(LpPMvl^^Ua^(5oZ}e66 z+G^!SRvq1s_-blnePB<!u^)A821fue3RvU@N7u8_2TaXAQHRNUe+RfSKoGgo!)7M40d;li)TU?w3-#k)uik zIF}qd!ap!gkL%DSCAuoVFrI8`jkj?FsnAGhOR15v)U8;m_|Z;|=1=su!70chA^V$t zWO$Eco6#O>`kzT~3-a@1R+ofTX5s%i?M&RtTgaozj$K*J*_F4Lw34Vqo{kEMqVIK6eG1Wn|pJP)DKi#k?hhM zBzE3bwsHA1v45gPA<*3R2MOGTwZtPmZ6!b%G zUK5i3&g@n&7R{0wiOvgrcYy0{t6q|TN+1);L&$U}3ZpO@Prn8kR(0dPIs|P+{}$ z{((A?{&$R3N~1K4pep4Ze0f;9EXL|(CLbC5msR^ zwj;6o9x5^UDuUzk*yV#N6)eVCZ1bXf0{g#7GAlj`SHbZ%6jvflgiz%O#*^VXloL|p zGj`pAv@~Z|BL*)|8YXq_;9FI~Y)BEjwOyE?2*EYFhMD*=`1!A4;|_>ih>}AeW-fRf zHr32bPr?@ezp~&iPr{Ck8(i#5*ebDu7ex!Vtk%qmO~aiFP8JmIW|;7K3g^ui{IyxQ zqeX&m%nw&EU2vg8;a)`;+3ZBP;ASVnpH3e9\n" "Language-Team: \n" "Language: pt_BR\n" @@ -161,7 +161,7 @@ msgstr "Favoritos importados de" msgid "The user requested a graceful exit of the current task." msgstr "O usuário solicitou uma saída normal da tarefa atual." -#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:344 +#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:347 #: appTools/ToolIsolation.py:1443 appTools/ToolNCC.py:1380 msgid "Click the start point of the area." msgstr "Clique no ponto inicial da área." @@ -171,7 +171,7 @@ msgid "Click the end point of the area." msgstr "Clique no ponto final da área." #: appCommon/Common.py:358 appCommon/Common.py:460 -#: appTools/ToolCopperThieving.py:388 appTools/ToolIsolation.py:2354 +#: appTools/ToolCopperThieving.py:391 appTools/ToolIsolation.py:2354 #: appTools/ToolIsolation.py:2406 appTools/ToolNCC.py:1445 #: appTools/ToolNCC.py:1497 appTools/ToolPaint.py:1225 #: appTools/ToolPaint.py:1276 @@ -506,7 +506,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2121 +#: appTools/ToolCalculators.py:280 appTools/ToolCutOut.py:2121 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Profundidade de Corte" @@ -789,7 +789,7 @@ msgstr "" #: appGUI/ObjectUI.py:1681 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:307 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 @@ -797,8 +797,8 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1241 appTools/ToolCopperThieving.py:1493 -#: appTools/ToolCorners.py:584 appTools/ToolCutOut.py:2174 +#: appTools/ToolCopperThieving.py:1284 appTools/ToolCopperThieving.py:1560 +#: appTools/ToolCorners.py:587 appTools/ToolCutOut.py:2174 #: appTools/ToolFiducials.py:815 appTools/ToolInvertGerber.py:231 #: appTools/ToolInvertGerber.py:239 appTools/ToolNCC.py:4159 #: appTools/ToolNCC.py:4262 @@ -812,7 +812,7 @@ msgstr "Margem" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCorners.py:586 +#: appTools/ToolCopperThieving.py:1286 appTools/ToolCorners.py:589 #: appTools/ToolFiducials.py:817 appTools/ToolNCC.py:4161 #: appTools/ToolNCC.py:4264 msgid "Bounding box margin." @@ -1304,7 +1304,7 @@ msgstr "" #: appDatabase.py:1223 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2237 +#: appTools/ToolCalculators.py:289 appTools/ToolCutOut.py:2237 msgid "Tool Diameter" msgstr "Diâmetro" @@ -1314,12 +1314,12 @@ msgid "The drill hole diameter when doing mouse bites." msgstr "O diâmetro do furo ao fazer M-bites (mordidas de rato)." #: appDatabase.py:1236 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:164 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:193 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:222 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1364 appTools/ToolCopperThieving.py:1404 -#: appTools/ToolCopperThieving.py:1444 appTools/ToolCutOut.py:2249 +#: appTools/ToolCopperThieving.py:1431 appTools/ToolCopperThieving.py:1471 +#: appTools/ToolCopperThieving.py:1511 appTools/ToolCutOut.py:2249 msgid "Spacing" msgstr "Espaçamento" @@ -1435,7 +1435,7 @@ msgstr "" "no banco de dados de ferramentas." #: appDatabase.py:1367 appGUI/MainGUI.py:1553 -#: appGUI/preferences/PreferencesUIManager.py:946 app_Main.py:2500 +#: appGUI/preferences/PreferencesUIManager.py:949 app_Main.py:2500 #: app_Main.py:3527 app_Main.py:4471 app_Main.py:4724 app_Main.py:8998 msgid "Cancel" msgstr "Cancelar" @@ -1445,10 +1445,10 @@ msgstr "Cancelar" #: appEditors/appGCodeEditor.py:781 appGUI/ObjectUI.py:163 #: appGUI/ObjectUI.py:174 appTool.py:280 appTool.py:291 #: appTools/ToolAlignObjects.py:517 appTools/ToolAlignObjects.py:528 -#: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 +#: appTools/ToolCalculators.py:519 appTools/ToolCalculators.py:530 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1635 appTools/ToolCopperThieving.py:1646 -#: appTools/ToolCorners.py:672 appTools/ToolCorners.py:683 +#: appTools/ToolCopperThieving.py:1716 appTools/ToolCopperThieving.py:1727 +#: appTools/ToolCorners.py:675 appTools/ToolCorners.py:686 #: appTools/ToolCutOut.py:2454 appTools/ToolCutOut.py:2465 #: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:975 #: appTools/ToolDistance.py:660 appTools/ToolDistance.py:671 @@ -1481,10 +1481,10 @@ msgstr "Valor fora da faixa" #: appEditors/appGCodeEditor.py:783 appGUI/ObjectUI.py:169 #: appGUI/ObjectUI.py:176 appTool.py:286 appTool.py:293 #: appTools/ToolAlignObjects.py:523 appTools/ToolAlignObjects.py:530 -#: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 +#: appTools/ToolCalculators.py:525 appTools/ToolCalculators.py:532 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1641 appTools/ToolCopperThieving.py:1648 -#: appTools/ToolCorners.py:678 appTools/ToolCorners.py:685 +#: appTools/ToolCopperThieving.py:1722 appTools/ToolCopperThieving.py:1729 +#: appTools/ToolCorners.py:681 appTools/ToolCorners.py:688 #: appTools/ToolCutOut.py:2460 appTools/ToolCutOut.py:2467 #: appTools/ToolDblSided.py:970 appTools/ToolDblSided.py:977 #: appTools/ToolDistance.py:666 appTools/ToolDistance.py:673 @@ -2104,7 +2104,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4012 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:83 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:571 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:574 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Comprimento" @@ -2270,10 +2270,10 @@ msgstr "Fonte" #: appEditors/AppGeoEditor.py:316 appEditors/AppGerberEditor.py:2491 #: appEditors/AppGerberEditor.py:3947 appGUI/ObjectUI.py:316 #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1391 appTools/ToolCopperThieving.py:1431 +#: appTools/ToolCopperThieving.py:1458 appTools/ToolCopperThieving.py:1498 #: appTools/ToolFiducials.py:799 appTools/ToolPunchGerber.py:1088 msgid "Size" msgstr "Tamanho" @@ -2427,7 +2427,7 @@ msgstr "Origem" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:256 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appTools/ToolIsolation.py:3381 appTools/ToolNCC.py:4323 -#: appTools/ToolPaint.py:3104 appTools/ToolTransform.py:557 defaults.py:571 +#: appTools/ToolPaint.py:3104 appTools/ToolTransform.py:557 defaults.py:572 msgid "Selection" msgstr "Seleção" @@ -2462,10 +2462,12 @@ msgstr "Um ponto de referência no formato X,Y." #: appEditors/AppGeoEditor.py:671 appEditors/AppGerberEditor.py:2586 #: appEditors/AppGerberEditor.py:5352 appGUI/ObjectUI.py:2375 -#: appTools/ToolDblSided.py:709 appTools/ToolDblSided.py:897 -#: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 -#: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1204 -#: appTools/ToolTransform.py:572 app_Main.py:6294 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:288 +#: appTools/ToolCopperThieving.py:1666 appTools/ToolDblSided.py:709 +#: appTools/ToolDblSided.py:897 appTools/ToolNCC.py:63 +#: appTools/ToolPaint.py:137 appTools/ToolSolderPaste.py:160 +#: appTools/ToolSolderPaste.py:1204 appTools/ToolTransform.py:572 +#: app_Main.py:6294 msgid "Add" msgstr "Adicionar" @@ -3157,7 +3159,7 @@ msgstr "Editor de Geometria" #: appEditors/AppGerberEditor.py:3947 appEditors/appGCodeEditor.py:687 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2034 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: appTools/ToolCorners.py:543 appTools/ToolCutOut.py:2030 +#: appTools/ToolCorners.py:546 appTools/ToolCutOut.py:2030 #: appTools/ToolDblSided.py:522 appTools/ToolPunchGerber.py:1088 #: appTools/ToolTransform.py:579 msgid "Type" @@ -3627,10 +3629,10 @@ msgstr "Limite de área SUPERIOR" #: appEditors/AppGerberEditor.py:2710 msgid "" "The threshold value, all areas less than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" "Valor limite, todas as áreas menores que isso são marcadas.\n" -"Pode ser um valor entre 0.0000 e 9999.9999" +"Pode ser um valor entre 0.0000 e 10000.0000" #: appEditors/AppGerberEditor.py:2717 msgid "Area LOWER threshold" @@ -3639,10 +3641,10 @@ msgstr "Limite de área INFERIOR" #: appEditors/AppGerberEditor.py:2719 msgid "" "The threshold value, all areas more than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" "Valor limite, todas as áreas maiores que isso são marcadas.\n" -"Pode ser um valor entre 0.0000 e 9999.9999" +"Pode ser um valor entre 0.0000 e 10000.0000" #: appEditors/AppGerberEditor.py:2733 msgid "Mark" @@ -3807,9 +3809,9 @@ msgstr "" "Nenhuma abertura para buffer. Selecione pelo menos uma abertura e tente " "novamente." -#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:303 -#: appTools/ToolCopperThieving.py:898 appTools/ToolCopperThieving.py:1061 -#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:410 +#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:306 +#: appTools/ToolCopperThieving.py:907 appTools/ToolCopperThieving.py:1104 +#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:413 #: appTools/ToolCutOut.py:779 appTools/ToolCutOut.py:905 #: appTools/ToolCutOut.py:1128 appTools/ToolCutOut.py:1278 #: appTools/ToolFiducials.py:240 appTools/ToolFiducials.py:492 @@ -3993,8 +3995,8 @@ msgstr "Editor de G-Code" #: appEditors/appGCodeEditor.py:687 appEditors/appGCodeEditor.py:698 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2034 appGUI/ObjectUI.py:2044 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1351 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: appTools/ToolCopperThieving.py:1418 msgid "Dia" msgstr "Dia" @@ -4321,8 +4323,8 @@ msgstr "Novo" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appObjects/ObjectCollection.py:234 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2027 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2027 #: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:771 #: appTools/ToolFilm.py:933 appTools/ToolFilm.py:956 appTools/ToolImage.py:135 #: appTools/ToolImage.py:190 appTools/ToolIsolation.py:3351 @@ -4350,8 +4352,8 @@ msgstr "Criará um novo Objeto Geometria vazio." #: appTools/ToolAlignObjects.py:434 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:891 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2026 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2026 #: appTools/ToolDblSided.py:528 appTools/ToolDblSided.py:769 #: appTools/ToolFilm.py:932 appTools/ToolFilm.py:955 appTools/ToolImage.py:116 #: appTools/ToolImage.py:137 appTools/ToolImage.py:190 @@ -4359,7 +4361,7 @@ msgstr "Criará um novo Objeto Geometria vazio." #: appTools/ToolNCC.py:3873 appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 #: appTools/ToolPanelize.py:148 appTools/ToolPanelize.py:168 #: appTools/ToolPanelize.py:716 appTools/ToolPanelize.py:810 -#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 defaults.py:572 +#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 defaults.py:573 msgid "Gerber" msgstr "Gerber" @@ -4379,8 +4381,8 @@ msgstr "Criará um novo Objeto Gerber vazio." #: appTools/ToolAlignObjects.py:435 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:892 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolDblSided.py:530 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolDblSided.py:530 #: appTools/ToolDblSided.py:728 appTools/ToolDblSided.py:770 #: appTools/ToolFilm.py:1211 appTools/ToolIsolation.py:3404 #: appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 @@ -4586,7 +4588,7 @@ msgstr "Importar Preferências de um arquivo" msgid "Export Preferences to file" msgstr "Exportar Preferências para um arquivo" -#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1188 +#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1191 msgid "Save Preferences" msgstr "Salvar Preferências" @@ -4740,10 +4742,10 @@ msgid "Q" msgstr "Q" #: appGUI/MainGUI.py:454 appGUI/MainGUI.py:1263 -#: appGUI/preferences/PreferencesUIManager.py:913 -#: appGUI/preferences/PreferencesUIManager.py:1006 -#: appGUI/preferences/PreferencesUIManager.py:1034 -#: appGUI/preferences/PreferencesUIManager.py:1139 app_Main.py:5739 +#: appGUI/preferences/PreferencesUIManager.py:916 +#: appGUI/preferences/PreferencesUIManager.py:1009 +#: appGUI/preferences/PreferencesUIManager.py:1037 +#: appGUI/preferences/PreferencesUIManager.py:1142 app_Main.py:5739 #: app_Main.py:5744 app_Main.py:5759 msgid "Preferences" msgstr "Preferências" @@ -5435,7 +5437,7 @@ msgid "QRCode Tool" msgstr "Ferramenta de QRCode" #: appGUI/MainGUI.py:1079 appGUI/MainGUI.py:2248 appGUI/MainGUI.py:4475 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1168 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1211 msgid "Copper Thieving Tool" msgstr "Ferramenta de Adição de Cobre" @@ -5459,7 +5461,7 @@ msgid "Invert Gerber Tool" msgstr "Ferramenta Inverter Gerber" #: appGUI/MainGUI.py:1090 appGUI/MainGUI.py:2259 appGUI/MainGUI.py:4478 -#: appTools/ToolCorners.py:452 +#: appTools/ToolCorners.py:455 msgid "Corner Markers Tool" msgstr "Ferramenta Marcadores de Canto" @@ -5609,8 +5611,8 @@ msgstr "Projeto" msgid "Plot Area" msgstr "Área de Gráfico" -#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1200 -#: appTools/ToolCorners.py:472 appTools/ToolEtchCompensation.py:291 +#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1243 +#: appTools/ToolCorners.py:475 appTools/ToolEtchCompensation.py:291 #: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:902 #: appTools/ToolInvertGerber.py:212 appTools/ToolIsolation.py:2999 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:1010 @@ -5774,14 +5776,14 @@ msgstr "Pasta com Preferências FlatCAM aberta." msgid "Are you sure you want to delete the GUI Settings? \n" msgstr "Você tem certeza de que deseja excluir as configurações da GUI? \n" -#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:945 -#: appGUI/preferences/PreferencesUIManager.py:1192 appTranslation.py:111 +#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:948 +#: appGUI/preferences/PreferencesUIManager.py:1195 appTranslation.py:111 #: appTranslation.py:213 app_Main.py:2498 app_Main.py:3525 app_Main.py:5980 #: app_Main.py:8996 msgid "Yes" msgstr "Sim" -#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1193 +#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1196 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:49 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 @@ -6494,8 +6496,8 @@ msgstr "Opções de Gráfico" #: appGUI/ObjectUI.py:202 appGUI/ObjectUI.py:552 #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1321 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:132 +#: appTools/ToolCopperThieving.py:1388 msgid "Solid" msgstr "Preenchido" @@ -8176,41 +8178,41 @@ msgstr "" "Não foi possível anotar devido a uma diferença entre o número de elementos " "de texto e o número de posições de texto." -#: appGUI/preferences/PreferencesUIManager.py:920 +#: appGUI/preferences/PreferencesUIManager.py:923 msgid "Preferences applied." msgstr "Preferências aplicadas." -#: appGUI/preferences/PreferencesUIManager.py:940 +#: appGUI/preferences/PreferencesUIManager.py:943 msgid "Are you sure you want to continue?" msgstr "Você tem certeza de que deseja continuar?" -#: appGUI/preferences/PreferencesUIManager.py:941 +#: appGUI/preferences/PreferencesUIManager.py:944 msgid "Application will restart" msgstr "Aplicativo reiniciará" -#: appGUI/preferences/PreferencesUIManager.py:1039 +#: appGUI/preferences/PreferencesUIManager.py:1042 msgid "Preferences closed without saving." msgstr "Preferências fechadas sem salvar." -#: appGUI/preferences/PreferencesUIManager.py:1051 +#: appGUI/preferences/PreferencesUIManager.py:1054 msgid "Preferences default values are restored." msgstr "Os valores padrão das preferências são restaurados." -#: appGUI/preferences/PreferencesUIManager.py:1082 app_Main.py:2833 +#: appGUI/preferences/PreferencesUIManager.py:1085 app_Main.py:2833 #: app_Main.py:9670 msgid "Failed to write defaults to file." msgstr "Falha ao gravar os padrões no arquivo." -#: appGUI/preferences/PreferencesUIManager.py:1086 -#: appGUI/preferences/PreferencesUIManager.py:1201 +#: appGUI/preferences/PreferencesUIManager.py:1089 +#: appGUI/preferences/PreferencesUIManager.py:1204 msgid "Preferences saved." msgstr "Preferências salvas." -#: appGUI/preferences/PreferencesUIManager.py:1136 +#: appGUI/preferences/PreferencesUIManager.py:1139 msgid "Preferences edited but not saved." msgstr "Preferências editadas, mas não salvas." -#: appGUI/preferences/PreferencesUIManager.py:1186 +#: appGUI/preferences/PreferencesUIManager.py:1189 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -8248,8 +8250,8 @@ msgstr "Opções Avançadas" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1219 -#: appTools/ToolCorners.py:536 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1262 +#: appTools/ToolCorners.py:539 appTools/ToolEtchCompensation.py:356 #: appTools/ToolFiducials.py:792 appTools/ToolInvertGerber.py:225 #: appTools/ToolQRCode.py:702 msgid "Parameters" @@ -8650,7 +8652,7 @@ msgstr "A unidade usada no arquivo Excellon gerado." #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:187 appTools/ToolPcbWizard.py:453 +#: appTools/ToolCalculators.py:227 appTools/ToolPcbWizard.py:453 msgid "INCH" msgstr "in" @@ -8659,7 +8661,7 @@ msgstr "in" #: appGUI/preferences/general/GeneralAppPrefGroupUI.py:43 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 -#: appTools/ToolCalculators.py:188 appTools/ToolPcbWizard.py:454 +#: appTools/ToolCalculators.py:228 appTools/ToolPcbWizard.py:454 msgid "MM" msgstr "mm" @@ -9061,8 +9063,10 @@ msgstr "" "- Ambos -> fresará furos e ranhuras ou o que estiver disponível" #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:293 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: appTools/ToolFilm.py:1109 appTools/ToolMilling.py:1771 +#: appTools/ToolCopperThieving.py:1671 appTools/ToolFilm.py:1109 +#: appTools/ToolMilling.py:1771 msgid "Both" msgstr "Ambos" @@ -10249,8 +10253,8 @@ msgid "\"Follow\"" msgstr "\"Segue\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:568 -#: appTools/ToolCopperThieving.py:774 appTools/ToolCopperThieving.py:787 +#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:778 appTools/ToolCopperThieving.py:791 #: appTools/ToolIsolation.py:1360 appTools/ToolNCC.py:1807 #: appTools/ToolNCC.py:1834 appTools/ToolNCC.py:1942 appTools/ToolNCC.py:1955 #: appTools/ToolNCC.py:2857 appTools/ToolNCC.py:2962 appTools/ToolNCC.py:2977 @@ -10274,15 +10278,17 @@ msgstr "" "<>: Não altere isso, a menos que você saiba o que está fazendo !!!" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:71 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:296 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:844 appTools/ToolFilm.py:1106 -#: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 -#: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 -#: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 +#: appTools/ToolCopperThieving.py:1674 appTools/ToolFiducials.py:844 +#: appTools/ToolFilm.py:1106 appTools/ToolProperties.py:449 +#: appTools/ToolProperties.py:452 appTools/ToolProperties.py:455 +#: appTools/ToolProperties.py:483 appTools/ToolProperties.py:490 +#: appTools/ToolProperties.py:493 msgid "None" msgstr "Nenhum" @@ -10556,8 +10562,8 @@ msgid "Number of steps (lines) used to interpolate circles." msgstr "Número de etapas (linhas) usadas para interpolar círculos." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolCopperThieving.py:1563 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:274 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolCopperThieving.py:1630 msgid "Clearance" msgstr "Espaço" @@ -10571,37 +10577,49 @@ msgstr "" "(o preenchimento de polígono pode ser dividido em vários polígonos)\n" "e os vestígios de cobre no arquivo Gerber." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:85 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: appTools/ToolCalculators.py:342 appTools/ToolCalculators.py:385 +#: appTools/ToolCopperThieving.py:1298 +msgid "Area" +msgstr "Área" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appTools/ToolCopperThieving.py:1300 +msgid "Thieving areas with area less then this value will not be added." +msgstr "Áreas de ladrão com área menor que este valor não serão adicionadas." + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:99 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1255 appTools/ToolNCC.py:4319 +#: appTools/ToolCopperThieving.py:1321 appTools/ToolNCC.py:4319 msgid "Itself" msgstr "Própria" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:100 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1256 appTools/ToolIsolation.py:3391 +#: appTools/ToolCopperThieving.py:1322 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:4319 appTools/ToolPaint.py:3116 msgid "Area Selection" msgstr "Seleção de Área" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1257 appTools/ToolDblSided.py:761 +#: appTools/ToolCopperThieving.py:1323 appTools/ToolDblSided.py:761 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:4319 #: appTools/ToolPaint.py:3116 tclCommands/TclCommandPaint.py:166 msgid "Reference Object" msgstr "Objeto de Referência" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1259 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:103 +#: appTools/ToolCopperThieving.py:1325 msgid "Reference:" msgstr "Referência:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:105 msgid "" "- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -10615,29 +10633,29 @@ msgstr "" "- 'Objeto de Referência' - adicionará o cobre dentro da área do objeto " "especificado." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:114 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1301 appTools/ToolExtractDrills.py:495 +#: appTools/ToolCopperThieving.py:1372 appTools/ToolExtractDrills.py:495 #: appTools/ToolExtractDrills.py:628 appTools/ToolPunchGerber.py:1068 #: appTools/ToolPunchGerber.py:1240 msgid "Rectangular" msgstr "Retangular" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1302 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:115 +#: appTools/ToolCopperThieving.py:1373 msgid "Minimal" msgstr "Mínima" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1304 appTools/ToolFilm.py:958 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:117 +#: appTools/ToolCopperThieving.py:1366 appTools/ToolFilm.py:958 msgid "Box Type:" msgstr "Tipo de Caixa:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1306 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: appTools/ToolCopperThieving.py:1368 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10645,28 +10663,28 @@ msgstr "" "- 'Retangular' - a caixa delimitadora será de forma retangular.\n" "- 'Mínima' - a caixa delimitadora terá a forma convexa do casco." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1322 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:133 +#: appTools/ToolCopperThieving.py:1389 msgid "Dots Grid" msgstr "Pontos" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1323 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: appTools/ToolCopperThieving.py:1390 msgid "Squares Grid" msgstr "Quadrados" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1324 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:135 +#: appTools/ToolCopperThieving.py:1391 msgid "Lines Grid" msgstr "Linhas" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1326 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137 +#: appTools/ToolCopperThieving.py:1393 msgid "Fill Type:" msgstr "Tipo de Preenchimento:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1328 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:139 +#: appTools/ToolCopperThieving.py:1395 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10678,58 +10696,58 @@ msgstr "" "- 'Quadrados' - a área vazia será preenchida com um padrão de quadrados.\n" "- 'Linhas' - a área vazia será preenchida com um padrão de linhas." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1347 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:147 +#: appTools/ToolCopperThieving.py:1414 msgid "Dots Grid Parameters" msgstr "Parâmetros dos Pontos" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1353 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: appTools/ToolCopperThieving.py:1420 msgid "Dot diameter in Dots Grid." msgstr "Diâmetro dos Pontos." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1366 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:166 +#: appTools/ToolCopperThieving.py:1433 msgid "Distance between each two dots in Dots Grid." msgstr "Distância entre dois pontos." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1387 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:176 +#: appTools/ToolCopperThieving.py:1454 msgid "Squares Grid Parameters" msgstr "Parâmetros dos Quadrados" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1393 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: appTools/ToolCopperThieving.py:1460 msgid "Square side size in Squares Grid." msgstr "Lado do quadrado." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1406 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:195 +#: appTools/ToolCopperThieving.py:1473 msgid "Distance between each two squares in Squares Grid." msgstr "Distância entre dois quadrados." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1427 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:205 +#: appTools/ToolCopperThieving.py:1494 msgid "Lines Grid Parameters" msgstr "Parâmetros das Linhas" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1433 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: appTools/ToolCopperThieving.py:1500 msgid "Line thickness size in Lines Grid." msgstr "Espessura das Linhas." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1446 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:224 +#: appTools/ToolCopperThieving.py:1513 msgid "Distance between each two lines in Lines Grid." msgstr "Distância entre duas linhas." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1485 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:234 +#: appTools/ToolCopperThieving.py:1552 msgid "Robber Bar Parameters" msgstr "Parâmetros da Barra" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1487 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:236 +#: appTools/ToolCopperThieving.py:1554 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10737,35 +10755,35 @@ msgstr "" "Parâmetros usados para a barra de assalto.\n" "Barra = borda de cobre para ajudar no revestimento do furo do padrão." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1495 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: appTools/ToolCopperThieving.py:1562 msgid "Bounding box margin for robber bar." msgstr "Margem da caixa delimitadora para Robber Bar." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:255 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appTools/ToolCopperThieving.py:1506 appTools/ToolCorners.py:557 +#: appTools/ToolCopperThieving.py:1573 appTools/ToolCorners.py:560 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Espessura" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1508 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:257 +#: appTools/ToolCopperThieving.py:1575 msgid "The robber bar thickness." msgstr "Espessura da barra." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1540 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:267 +#: appTools/ToolCopperThieving.py:1607 msgid "Pattern Plating Mask" msgstr "Máscara do Revestimento Padrão" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1542 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:269 +#: appTools/ToolCopperThieving.py:1609 msgid "Generate a mask for pattern plating." msgstr "Gera uma máscara para o revestimento padrão." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1565 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:276 +#: appTools/ToolCopperThieving.py:1632 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10773,6 +10791,22 @@ msgstr "" "Distância entre os possíveis elementos de adição de cobre\n" "e/ou barra e as aberturas reais na máscara." +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:290 +#: appTools/ToolCopperThieving.py:1668 +msgid "Choose which additional geometry to include, if available." +msgstr "Escolha qual geometria adicional incluir, se disponível." + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:294 +#: appTools/ToolCopperThieving.py:499 appTools/ToolCopperThieving.py:503 +#: appTools/ToolCopperThieving.py:565 appTools/ToolCopperThieving.py:1672 +msgid "Thieving" +msgstr "Adição" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:295 +#: appTools/ToolCopperThieving.py:1673 +msgid "Robber bar" +msgstr "Bar de Ladrão" + #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 msgid "Calibration Tool Options" msgstr "Opções da Ferramenta de Calibração" @@ -10782,7 +10816,7 @@ msgstr "Opções da Ferramenta de Calibração" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1221 appTools/ToolCorners.py:538 +#: appTools/ToolCopperThieving.py:1264 appTools/ToolCorners.py:541 #: appTools/ToolFiducials.py:794 msgid "Parameters used for this tool." msgstr "Parâmetros usados para esta ferramenta." @@ -11127,7 +11161,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:49 -#: appTools/ToolCorners.py:550 appTools/ToolFiducials.py:864 +#: appTools/ToolCorners.py:553 appTools/ToolFiducials.py:864 msgid "Cross" msgstr "Cruz" @@ -11688,7 +11722,7 @@ msgid "Calculators Tool Options" msgstr "Opções das Calculadoras" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: appTools/ToolCalculators.py:152 +#: appTools/ToolCalculators.py:191 msgid "V-Shape Tool Calculator" msgstr "Calculadora Ferramenta Ponta-em-V" @@ -11703,12 +11737,12 @@ msgstr "" "profundidade de corte como parâmetros." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: appTools/ToolCalculators.py:220 +#: appTools/ToolCalculators.py:260 msgid "Tip Diameter" msgstr "Diâmetro da Ponta" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: appTools/ToolCalculators.py:228 +#: appTools/ToolCalculators.py:268 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11717,7 +11751,7 @@ msgstr "" "Especificado pelo fabricante." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: appTools/ToolCalculators.py:231 +#: appTools/ToolCalculators.py:271 msgid "Tip Angle" msgstr "Ângulo da Ponta" @@ -11738,12 +11772,12 @@ msgstr "" "No objeto CNC, é o parâmetro Profundidade de Corte (z_cut)." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:154 +#: appTools/ToolCalculators.py:193 msgid "ElectroPlating Calculator" msgstr "Calculadora Eletrolítica" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: appTools/ToolCalculators.py:284 +#: appTools/ToolCalculators.py:324 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium " @@ -11754,32 +11788,37 @@ msgstr "" "hipofosfito de cálcio ou cloreto de paládio." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: appTools/ToolCalculators.py:293 +#: appTools/ToolCalculators.py:349 msgid "Board Length" msgstr "Comprimento da Placa" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: appTools/ToolCalculators.py:299 +#: appTools/ToolCalculators.py:350 msgid "This is the board length. In centimeters." msgstr "Comprimento da placa, em centímetros." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: appTools/ToolCalculators.py:301 +#: appTools/ToolCalculators.py:367 msgid "Board Width" msgstr "Largura da Placa" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: appTools/ToolCalculators.py:307 +#: appTools/ToolCalculators.py:368 msgid "This is the board width.In centimeters." msgstr "Largura da placa, em centímetros." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: appTools/ToolCalculators.py:309 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:120 +#: appTools/ToolCalculators.py:386 +msgid "This is the board area." +msgstr "Esta é a área do PCB." + +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:130 +#: appTools/ToolCalculators.py:408 msgid "Current Density" msgstr "Densidade de Corrente" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: appTools/ToolCalculators.py:316 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:136 +#: appTools/ToolCalculators.py:409 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -11787,13 +11826,13 @@ msgstr "" "Densidade de corrente para passar pela placa.\n" "Em Ampères por Pés Quadrados ASF." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: appTools/ToolCalculators.py:319 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:142 +#: appTools/ToolCalculators.py:428 msgid "Copper Growth" msgstr "Espessura do Cobre" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: appTools/ToolCalculators.py:326 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:148 +#: appTools/ToolCalculators.py:429 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -11804,32 +11843,32 @@ msgid "Corner Markers Options" msgstr "Opções de marcadores de canto" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:545 +#: appTools/ToolCorners.py:548 msgid "Shape of the marker." msgstr "Forma do marcador." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:48 -#: appTools/ToolCorners.py:549 +#: appTools/ToolCorners.py:552 msgid "Semi-Cross" msgstr "Semi-Cruz" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:559 +#: appTools/ToolCorners.py:562 msgid "The thickness of the line that makes the corner marker." msgstr "A espessura da linha que forma o marcador de canto." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:85 -#: appTools/ToolCorners.py:573 +#: appTools/ToolCorners.py:576 msgid "The length of the line that makes the corner marker." msgstr "O comprimento da linha que forma o marcador de canto." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:96 -#: appTools/ToolCorners.py:625 appTools/ToolDblSided.py:827 +#: appTools/ToolCorners.py:628 appTools/ToolDblSided.py:827 msgid "Drill Dia" msgstr "Diâmetro de Broca" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:98 -#: appTools/ToolCorners.py:627 +#: appTools/ToolCorners.py:630 msgid "Drill Diameter" msgstr "Diâmetro da Broca" @@ -12175,18 +12214,18 @@ msgstr "" "Pode ser um dos quatro pontos da caixa delimitadora de geometria." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:509 appTools/ToolFiducials.py:723 +#: appTools/ToolCorners.py:512 appTools/ToolFiducials.py:723 #: appTools/ToolFilm.py:1069 msgid "Bottom Left" msgstr "Esquerda Inferior" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:501 appTools/ToolFilm.py:1070 +#: appTools/ToolCorners.py:504 appTools/ToolFilm.py:1070 msgid "Top Left" msgstr "Esquerda Superior" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:513 appTools/ToolFilm.py:1071 +#: appTools/ToolCorners.py:516 appTools/ToolFilm.py:1071 msgid "Bottom Right" msgstr "Direita Inferior" @@ -12464,8 +12503,8 @@ msgstr "Progressivo" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:452 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1072 -#: appTools/ToolCorners.py:416 appTools/ToolFiducials.py:563 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1115 +#: appTools/ToolCorners.py:419 appTools/ToolFiducials.py:563 #: appTools/ToolMove.py:229 appTools/ToolQRCode.py:466 app_Main.py:4813 msgid "Plotting" msgstr "Plotando" @@ -13519,7 +13558,7 @@ msgstr "Gerando Código CNC" msgid "CNCjob created" msgstr "Trabalho CNC criado" -#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:586 +#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:593 #: appTools/ToolFilm.py:639 appTools/ToolFilm.py:883 #: appTools/ToolIsolation.py:930 appTools/ToolNCC.py:868 #: appTools/ToolOptimal.py:145 appTools/ToolPanelize.py:613 @@ -13641,7 +13680,8 @@ msgstr "Dimensionando..." msgid "Skewing..." msgstr "Inclinando..." -#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:152 +#: appObjects/FlatCAMObj.py:487 appTools/ToolCalculators.py:341 +#: appTools/ToolProperties.py:152 msgid "Dimensions" msgstr "Dimensões" @@ -14011,9 +14051,9 @@ msgstr "" "Se apenas um ponto for usado, ele assumirá a translação.\n" "Se forem usados dois pontos, assume translação e rotação." -#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1617 -#: appTools/ToolCorners.py:654 appTools/ToolCutOut.py:2411 +#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:501 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1698 +#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2411 #: appTools/ToolDblSided.py:946 appTools/ToolDrilling.py:2649 #: appTools/ToolEtchCompensation.py:459 appTools/ToolExtractDrills.py:699 #: appTools/ToolFiducials.py:962 appTools/ToolFilm.py:1387 @@ -14027,9 +14067,9 @@ msgstr "" msgid "Reset Tool" msgstr "Redefinir Ferramenta" -#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1620 -#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2414 +#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:504 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1701 +#: appTools/ToolCorners.py:660 appTools/ToolCutOut.py:2414 #: appTools/ToolDblSided.py:949 appTools/ToolDrilling.py:2652 #: appTools/ToolEtchCompensation.py:462 appTools/ToolExtractDrills.py:702 #: appTools/ToolFiducials.py:965 appTools/ToolFilm.py:1390 @@ -14043,27 +14083,27 @@ msgstr "Redefinir Ferramenta" msgid "Will reset the tool parameters." msgstr "Redefinirá os parâmetros da ferramenta." -#: appTools/ToolCalculators.py:77 +#: appTools/ToolCalculators.py:79 msgid "Calc. Tool" msgstr "Calculadoras" -#: appTools/ToolCalculators.py:151 +#: appTools/ToolCalculators.py:190 msgid "Calculators" msgstr "Calculadoras" -#: appTools/ToolCalculators.py:153 +#: appTools/ToolCalculators.py:192 msgid "Units Calculator" msgstr "Calculadora de Unidades" -#: appTools/ToolCalculators.py:196 +#: appTools/ToolCalculators.py:236 msgid "Here you enter the value to be converted from INCH to MM" msgstr "Aqui você insere o valor a ser convertido de polegadas para mm" -#: appTools/ToolCalculators.py:201 +#: appTools/ToolCalculators.py:241 msgid "Here you enter the value to be converted from MM to INCH" msgstr "Aqui você insere o valor a ser convertido de mm para polegadas" -#: appTools/ToolCalculators.py:237 +#: appTools/ToolCalculators.py:277 msgid "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." @@ -14071,7 +14111,7 @@ msgstr "" "Ângulo da ponta da ferramenta.\n" "Especificado pelo fabricante." -#: appTools/ToolCalculators.py:246 +#: appTools/ToolCalculators.py:286 msgid "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." @@ -14079,7 +14119,7 @@ msgstr "" "Esta é a profundidade para cortar material.\n" "No Trabalho CNC é o parâmetro Profundidade de Corte." -#: appTools/ToolCalculators.py:254 +#: appTools/ToolCalculators.py:294 msgid "" "This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" @@ -14089,11 +14129,11 @@ msgstr "" "FlatCAM Gerber.\n" "Na seção Trabalho CNC é chamado de >Diâmetro da Ferramenta<." -#: appTools/ToolCalculators.py:265 appTools/ToolCalculators.py:361 +#: appTools/ToolCalculators.py:305 appTools/ToolCalculators.py:490 msgid "Calculate" msgstr "Calcular" -#: appTools/ToolCalculators.py:268 +#: appTools/ToolCalculators.py:309 msgid "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " @@ -14101,11 +14141,28 @@ msgstr "" "Calcula a Profundidade de Corte Z ou o diâmetro efetivo da\n" "ferramenta, dependendo do que é desejado e do que é conhecido. " -#: appTools/ToolCalculators.py:331 +#: appTools/ToolCalculators.py:336 +msgid "Area Calculation" +msgstr "Cálculo de Área" + +#: appTools/ToolCalculators.py:338 +msgid "Choose how to calculate the board area." +msgstr "Escolha como calcular a área do PCB." + +#: appTools/ToolCalculators.py:356 appTools/ToolCalculators.py:374 +#: appTools/ToolCalculators.py:392 +msgid "cm" +msgstr "cm" + +#: appTools/ToolCalculators.py:437 +msgid "um" +msgstr "um" + +#: appTools/ToolCalculators.py:448 msgid "Current Value" msgstr "Valor da Corrente" -#: appTools/ToolCalculators.py:338 +#: appTools/ToolCalculators.py:449 msgid "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." @@ -14113,17 +14170,17 @@ msgstr "" "Este é o valor de intensidade de corrente\n" "a ser ajustado na fonte de alimentação. Em Ampères." -#: appTools/ToolCalculators.py:342 +#: appTools/ToolCalculators.py:469 msgid "Time" msgstr "Tempo" -#: appTools/ToolCalculators.py:349 +#: appTools/ToolCalculators.py:470 msgid "" "This is the calculated time required for the procedure.\n" "In minutes." msgstr "Tempo calculado necessário para o procedimento, em minutos." -#: appTools/ToolCalculators.py:364 +#: appTools/ToolCalculators.py:493 msgid "" "Calculate the current intensity value and the procedure time,\n" "depending on the parameters above" @@ -14433,45 +14490,45 @@ msgstr "" "Ajustar (dimensionar e/ou inclinar) os objetos\n" "com os fatores determinados acima." -#: appTools/ToolCopperThieving.py:184 appTools/ToolCopperThieving.py:209 +#: appTools/ToolCopperThieving.py:186 appTools/ToolCopperThieving.py:211 msgid "Lines Grid works only for 'itself' reference ..." msgstr "Linhas funciona apenas para referência 'própria' ..." -#: appTools/ToolCopperThieving.py:195 +#: appTools/ToolCopperThieving.py:197 msgid "Solid fill selected." msgstr "Preenchimento sólido selecionado." -#: appTools/ToolCopperThieving.py:200 +#: appTools/ToolCopperThieving.py:202 msgid "Dots grid fill selected." msgstr "Preenchimento de pontos selecionado." -#: appTools/ToolCopperThieving.py:205 +#: appTools/ToolCopperThieving.py:207 msgid "Squares grid fill selected." msgstr "Preenchimento de quadrados selecionado." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:324 -#: appTools/ToolCopperThieving.py:936 appTools/ToolCorners.py:127 -#: appTools/ToolCorners.py:353 appTools/ToolDblSided.py:307 +#: appTools/ToolCopperThieving.py:229 appTools/ToolCopperThieving.py:327 +#: appTools/ToolCopperThieving.py:946 appTools/ToolCorners.py:127 +#: appTools/ToolCorners.py:350 appTools/ToolDblSided.py:307 #: appTools/ToolExtractDrills.py:141 appTools/ToolFiducials.py:191 #: appTools/ToolFiducials.py:482 appTools/ToolOptimal.py:138 #: appTools/ToolPunchGerber.py:381 appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Não há objeto Gerber carregado ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 +#: appTools/ToolCopperThieving.py:242 appTools/ToolCopperThieving.py:847 msgid "Append geometry" msgstr "Anexar geometria" -#: appTools/ToolCopperThieving.py:294 appTools/ToolCopperThieving.py:889 -#: appTools/ToolCopperThieving.py:1048 +#: appTools/ToolCopperThieving.py:297 appTools/ToolCopperThieving.py:898 +#: appTools/ToolCopperThieving.py:1091 msgid "Append source file" msgstr "Anexar arquivo fonte" -#: appTools/ToolCopperThieving.py:307 appTools/ToolCopperThieving.py:902 +#: appTools/ToolCopperThieving.py:310 appTools/ToolCopperThieving.py:911 msgid "Copper Thieving Tool done." msgstr "Área de Adição de Cobre." -#: appTools/ToolCopperThieving.py:334 appTools/ToolCopperThieving.py:354 +#: appTools/ToolCopperThieving.py:337 appTools/ToolCopperThieving.py:357 #: appTools/ToolCutOut.py:551 appTools/ToolCutOut.py:927 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 @@ -14487,71 +14544,66 @@ msgstr "Área de Adição de Cobre." msgid "Could not retrieve object" msgstr "Não foi possível recuperar o objeto" -#: appTools/ToolCopperThieving.py:382 +#: appTools/ToolCopperThieving.py:385 msgid "Click the end point of the filling area." msgstr "Clique no ponto final da área de preenchimento." -#: appTools/ToolCopperThieving.py:496 appTools/ToolCopperThieving.py:500 -#: appTools/ToolCopperThieving.py:558 -msgid "Thieving" -msgstr "Adição" - -#: appTools/ToolCopperThieving.py:507 +#: appTools/ToolCopperThieving.py:510 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Ferramenta de Adição de Cobre iniciada. Lendo parâmetros." -#: appTools/ToolCopperThieving.py:532 +#: appTools/ToolCopperThieving.py:536 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Ferramenta de Adição de Cobre. Preparando polígonos de isolação." -#: appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:582 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "" "Ferramenta de Adição de Cobre. Preparando áreas para preencher com cobre." -#: appTools/ToolCopperThieving.py:619 +#: appTools/ToolCopperThieving.py:626 msgid "Geometry not supported for bounding box" msgstr "Geometria não suportada para caixa delimitadora" -#: appTools/ToolCopperThieving.py:625 appTools/ToolNCC.py:1695 +#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1695 #: appTools/ToolNCC.py:1750 appTools/ToolNCC.py:2744 appTools/ToolPaint.py:2468 msgid "No object available." msgstr "Nenhum objeto disponível." -#: appTools/ToolCopperThieving.py:662 appTools/ToolNCC.py:1720 +#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1720 #: appTools/ToolNCC.py:1773 appTools/ToolNCC.py:2786 msgid "The reference object type is not supported." msgstr "O tipo do objeto de referência não é suportado." -#: appTools/ToolCopperThieving.py:667 +#: appTools/ToolCopperThieving.py:674 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "Ferramenta de Adição de Cobre. Anexando nova geometria e buffer." -#: appTools/ToolCopperThieving.py:683 +#: appTools/ToolCopperThieving.py:710 msgid "Create geometry" msgstr "Criar Geometria" -#: appTools/ToolCopperThieving.py:913 appTools/ToolCopperThieving.py:917 +#: appTools/ToolCopperThieving.py:922 appTools/ToolCopperThieving.py:926 msgid "P-Plating Mask" msgstr "Máscara de Revestimento Padrão" -#: appTools/ToolCopperThieving.py:939 +#: appTools/ToolCopperThieving.py:949 msgid "Append PP-M geometry" msgstr "Anexar geometria" -#: appTools/ToolCopperThieving.py:1068 +#: appTools/ToolCopperThieving.py:1111 msgid "Generating Pattern Plating Mask done." msgstr "Geração de Máscara de Revestimento Padrão concluída." -#: appTools/ToolCopperThieving.py:1111 +#: appTools/ToolCopperThieving.py:1154 msgid "Copper Thieving Tool exit." msgstr "Sair da Ferramenta de Adição de Cobre." -#: appTools/ToolCopperThieving.py:1202 appTools/ToolFiducials.py:904 +#: appTools/ToolCopperThieving.py:1245 appTools/ToolFiducials.py:904 msgid "Gerber Object to which will be added a copper thieving." msgstr "Objeto Gerber ao qual será adicionada uma adição de cobre." -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1271 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14561,7 +14613,15 @@ msgstr "" "(o preenchimento de polígono pode ser dividido em vários polígonos)\n" "e os vestígios de cobre no arquivo Gerber." -#: appTools/ToolCopperThieving.py:1261 +#: appTools/ToolCopperThieving.py:1309 appTools/ToolCopperThieving.py:1657 +msgid "mm" +msgstr "mm" + +#: appTools/ToolCopperThieving.py:1311 appTools/ToolCopperThieving.py:1659 +msgid "in" +msgstr "in" + +#: appTools/ToolCopperThieving.py:1327 msgid "" "- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -14576,12 +14636,12 @@ msgstr "" "- 'Objeto de referência' - fará Copper Thieving dentro da área especificada " "por outro objeto." -#: appTools/ToolCopperThieving.py:1268 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1334 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4336 appTools/ToolPaint.py:3126 msgid "Ref. Type" msgstr "Tipo de Ref" -#: appTools/ToolCopperThieving.py:1270 +#: appTools/ToolCopperThieving.py:1336 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14589,21 +14649,21 @@ msgstr "" "O tipo de objeto FlatCAM a ser usado como referência para adição de cobre.\n" "Pode ser Gerber, Excellon ou Geometria." -#: appTools/ToolCopperThieving.py:1279 appTools/ToolIsolation.py:3409 +#: appTools/ToolCopperThieving.py:1345 appTools/ToolIsolation.py:3409 #: appTools/ToolNCC.py:4346 appTools/ToolPaint.py:3136 msgid "Ref. Object" msgstr "Objeto de Ref" -#: appTools/ToolCopperThieving.py:1281 appTools/ToolIsolation.py:3411 +#: appTools/ToolCopperThieving.py:1347 appTools/ToolIsolation.py:3411 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3138 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "O objeto FlatCAM a ser usado como referência para retirada de cobre." -#: appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCopperThieving.py:1524 msgid "Insert Copper thieving" msgstr "Inserir adição de cobre" -#: appTools/ToolCopperThieving.py:1460 +#: appTools/ToolCopperThieving.py:1527 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14611,11 +14671,11 @@ msgstr "" "Adicionará um polígono (pode ser dividido em várias partes)\n" "que cercará os traços atuais de Gerber a uma certa distância." -#: appTools/ToolCopperThieving.py:1519 +#: appTools/ToolCopperThieving.py:1586 msgid "Insert Robber Bar" msgstr "Inserir Barra" -#: appTools/ToolCopperThieving.py:1522 +#: appTools/ToolCopperThieving.py:1589 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14627,11 +14687,11 @@ msgstr "" "a uma certa distância.\n" "Necessário ao fazer o padrão de furos." -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1613 msgid "Select Soldermask object" msgstr "Selecionar objeto Máscara de Solda" -#: appTools/ToolCopperThieving.py:1548 +#: appTools/ToolCopperThieving.py:1615 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14641,11 +14701,11 @@ msgstr "" "Será usado como base para\n" "a máscara de revestimento padrão." -#: appTools/ToolCopperThieving.py:1577 +#: appTools/ToolCopperThieving.py:1644 msgid "Plated area" msgstr "Área revestida" -#: appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCopperThieving.py:1646 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14663,19 +14723,11 @@ msgstr "" "um pouco maior que os pads de cobre, e essa área é\n" "calculada a partir das aberturas da máscara de solda." -#: appTools/ToolCopperThieving.py:1590 -msgid "mm" -msgstr "mm" - -#: appTools/ToolCopperThieving.py:1592 -msgid "in" -msgstr "in" - -#: appTools/ToolCopperThieving.py:1599 +#: appTools/ToolCopperThieving.py:1680 msgid "Generate pattern plating mask" msgstr "Gerar máscara de revestimento padrão" -#: appTools/ToolCopperThieving.py:1602 +#: appTools/ToolCopperThieving.py:1683 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14689,7 +14741,7 @@ msgstr "" msgid "Corners Tool" msgstr "Ferramenta de Canto" -#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:343 +#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:355 msgid "Please select at least a location" msgstr "Selecione pelo menos um local" @@ -14697,51 +14749,51 @@ msgstr "Selecione pelo menos um local" msgid "The tool diameter is zero." msgstr "O diâmetro da ferramenta é zero." -#: appTools/ToolCorners.py:412 +#: appTools/ToolCorners.py:415 msgid "Excellon object with corner drills created." msgstr "O objeto Excellon com furos de esquina foi criado." -#: appTools/ToolCorners.py:447 +#: appTools/ToolCorners.py:450 msgid "A Gerber object with corner markers was created." msgstr "O objeto Gerber com marcadores de esquina foi criado." -#: appTools/ToolCorners.py:474 +#: appTools/ToolCorners.py:477 msgid "The Gerber object to which will be added corner markers." msgstr "Objeto Gerber ao qual serão adicionados marcadores de canto." -#: appTools/ToolCorners.py:490 +#: appTools/ToolCorners.py:493 msgid "Locations" msgstr "Locais" -#: appTools/ToolCorners.py:492 +#: appTools/ToolCorners.py:495 msgid "Locations where to place corner markers." msgstr "Locais onde colocar marcadores de canto." -#: appTools/ToolCorners.py:505 appTools/ToolFiducials.py:735 +#: appTools/ToolCorners.py:508 appTools/ToolFiducials.py:735 msgid "Top Right" msgstr "Direita Superior" -#: appTools/ToolCorners.py:522 +#: appTools/ToolCorners.py:525 msgid "Toggle ALL" msgstr "Alternar TUDO" -#: appTools/ToolCorners.py:602 +#: appTools/ToolCorners.py:605 msgid "Add Marker" msgstr "Adicionar Marcador" -#: appTools/ToolCorners.py:605 +#: appTools/ToolCorners.py:608 msgid "Will add corner markers to the selected Gerber file." msgstr "Adicionará marcadores de canto ao arquivo Gerber selecionado." -#: appTools/ToolCorners.py:621 +#: appTools/ToolCorners.py:624 msgid "Drills in Corners" msgstr "Furos em cantos" -#: appTools/ToolCorners.py:638 appTools/ToolDblSided.py:928 +#: appTools/ToolCorners.py:641 appTools/ToolDblSided.py:928 msgid "Create Excellon Object" msgstr "Criar Objeto Excellon" -#: appTools/ToolCorners.py:641 +#: appTools/ToolCorners.py:644 msgid "Will add drill holes in the center of the markers." msgstr "Irá adicionar furos no centro dos marcadores." @@ -19709,11 +19761,11 @@ msgstr "" msgid "G91 coordinates not implemented ..." msgstr "Coordenadas G91 não implementadas..." -#: defaults.py:867 +#: defaults.py:870 msgid "Could not load defaults file." msgstr "Não foi possível carregar o arquivo com os padrões." -#: defaults.py:880 +#: defaults.py:883 msgid "Failed to parse defaults file." msgstr "Falha ao analisar o arquivo com os padrões." @@ -21462,9 +21514,6 @@ msgstr "Nenhum nome de geometria nos argumentos. Altere e tente novamente." #~ "dentro.
Baseado em semente: para fora a partir de uma semente." #~ "
Linhas retas: linhas paralelas." -#~ msgid "Area" -#~ msgstr "Área" - #~ msgid "Ref" #~ msgstr "Ref" diff --git a/locale/ro/LC_MESSAGES/strings.mo b/locale/ro/LC_MESSAGES/strings.mo index e4d8f3f8ec29b0e302ae429c1547b9e0f88727d0..15f88c5291d1bf9363b417639afbedf56033c158 100644 GIT binary patch delta 73584 zcmXWkb%0jI8prXoL3c>UF3r;2v9NSVcP-r=OCGwU8wI2kkVX*ck}d^AxJU^C(ukx2 z_xpRFx&M65%sKCznP;AvbKc#>`|X}Ia}TBQZzK<$@A1Fti99a@w(9PAN0NEol1r-f zytV0ryv(=`hvP}ih*dHKdFikNX2nsM9amz0JmJc3Ffrwf8H2pIm=}{^F>K;_zE_2V z0#q!)AUuO3@Eq!fwK4^Hukg5YU*;fh2<7j?g1k|fC!8Db!S66B%p)QGyFI=aZ6KjA!uiqIJ>gpaW>X37@i z6~y{j6vtvd+=+_xpO~Hdd%@X*ypEX5IUNe}L2m9m?^5WwV=U7xyO~-h+0F_+JQAxK2Q{n-4{t~MF8>kLF&hJ};@2JoX zLJQah2~iEFL)|bdDv9!=lBhJQp<3>Ib5w&JQJ?FF>cB8eg;QMpa@6P6x$;h*16_C! zHG=b~&|k$c%vvzWON&vc>)K#0?1eRP0ctL9qgF%RLN@1T@gU`7g@e3GcmaPUt3NAZ z9ePyMlGP6`W?5Yn)q#$vB&x+bclO))uk zLPabF^||r53TL7sTcmuDmmbTZI?x;wYyEfUARQeTstU^UDp>ZfLVa+Jb1Q1&*n?qs z1p~_nHPW;dE%ZfD9jb=vNDI_;olwhig7XXXRWaLDEOah)u5zw(Zg%c)?m?}ZL#}+% zdEWV}^P2Ov^S<**Mb^JM@X}ShbAEEhinJala3*u6c4l;Db>?;!K!v&(YWdYiMW`z( zxyRxlToCC8d964|Sjm#98%9u`?>va=;3F)FFK`-0R1Wf{;7%Nmkx@b37(9kkv3ivt zuL@ptrmbpo-WIhg`eIfb?Yo23sAM{UO0LVOp5DR6_{N>DQ_XUuCF=U_m=j|#5|?8% z{(IYlfqL{W>c$Cb*m6mOs?Uc?rgEsPt%rKLMWdGMJk+yb z1E#_KsEGaM>aU{)@(h*SAvLYNQ}NGW%sE9Rp-9QC5H4)xGDj2$(!>l0Ir(6On;1sNiCs7ej`nlaFBL>!g77i4`La1!5jGEgP zs5$G3gRwsjJ?iF840h$QsE*Ba<*!leb^|IWenx%%Pt?d?qDK72={2%)Jk)@aV;jtX>d0`P z1C3-XDnv8fiFv3Se}!sry(@2b<)2*nEGk*Aqn?saQSF5`wsoEq)xi>|WUhj0w-HuG zzas}~U@hu{yD%J&qI!HEwf(xjQNeQ#P~6q(a>% z9V&8pkPi7?MGn-X&#l61>&m@Rb34kFr=XH-F;2r3sFCGwZXGU*xhc0nJ?$oA7_N2Y zlg__Tk%-qqk!Ag-;XpkKM}4q3DruTvFt$W>qzx(}-B8PE04iC(z?HZZ`(VYEL0((j zf|D_6s~~S4F2)$l-`ZB&8ce|bz4II>G}lmD=wsB4Vzsf*CqbRhf;wLWGhuDajy+Jx zG~3lLLTyMpQ60a4)$uxN>(0^EBGnxIyi|{1DS|9 zaJ?&EK)sl}!CaU!+Fr@ZVFcxVsOy)Y266-yxl7UR{r?^n6{&cFnw$LXZA9fzBaT9? zg4U>I+8G<-094W*M_qRjJL6;2lr-#M<=0q^a_f#k-skuY_QF>keG6fSPBwQ_Z~!OX zp*qs5v%O4?z#5c~qn2s1F1$`-YWxwOU=RGZt7U)kZb4pi%6qX7%OF*EoAZf1g1ocT zZ^D0Ygx@pB8^=MvUcAS1;VV2%xjmoK`pnObV_$)!u2;od1dw@E$7XdJYV{LHXWd4gyc7LH6`3gL?QhKxKDNR8q}BEzdou5nMyf z`7_k#;|{j1ISj)oN1?9ojC#0D#NxOKE8w32S%2Aw*bO?NJ}?87&6`k<kg<*HpfWE*S+~3>Iff~N%PJBdtFy}D) z>eLXmEN7uYcLvMhJ5-L87;fM3hNGrzKdNKDxbiF1+i=_wHr3gj5$Gr2L_rR;nDOYTZYna;C{h_xz8hLJju9 zQaA{eJeyHdunUz$KVx~kjk-Q;lr@wKRW9PnWl%S)>dFmKtDp@kR|cRW^~EUGzp{B5 z71}blJI|vYE)TIVzD0c?57(=q@~9i={XrdThl*T3RC12QFr1AgaT_WrAEB;KG}^Au z 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 delta 72989 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 LP>du214I2EZAR$4 diff --git a/locale/ro/LC_MESSAGES/strings.po b/locale/ro/LC_MESSAGES/strings.po index 938f6ce5..edd93a80 100644 --- a/locale/ro/LC_MESSAGES/strings.po +++ b/locale/ro/LC_MESSAGES/strings.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-11-02 13:45+0200\n" -"PO-Revision-Date: 2020-11-02 13:45+0200\n" +"POT-Creation-Date: 2020-11-02 17:58+0200\n" +"PO-Revision-Date: 2020-11-02 18:00+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: ro\n" @@ -165,7 +165,7 @@ msgstr "Bookmark-uri au fost importate din" msgid "The user requested a graceful exit of the current task." msgstr "Utilizatorul a solicitat o inchidere grațioasă a taskului curent." -#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:344 +#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:347 #: appTools/ToolIsolation.py:1443 appTools/ToolNCC.py:1380 msgid "Click the start point of the area." msgstr "Faceți clic pe punctul de pornire al zonei." @@ -175,7 +175,7 @@ msgid "Click the end point of the area." msgstr "Faceți clic pe punctul final al zonei." #: appCommon/Common.py:358 appCommon/Common.py:460 -#: appTools/ToolCopperThieving.py:388 appTools/ToolIsolation.py:2354 +#: appTools/ToolCopperThieving.py:391 appTools/ToolIsolation.py:2354 #: appTools/ToolIsolation.py:2406 appTools/ToolNCC.py:1445 #: appTools/ToolNCC.py:1497 appTools/ToolPaint.py:1225 #: appTools/ToolPaint.py:1276 @@ -509,7 +509,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2121 +#: appTools/ToolCalculators.py:280 appTools/ToolCutOut.py:2121 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Z tăiere" @@ -794,7 +794,7 @@ msgstr "" #: appGUI/ObjectUI.py:1681 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:307 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 @@ -802,8 +802,8 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1241 appTools/ToolCopperThieving.py:1493 -#: appTools/ToolCorners.py:584 appTools/ToolCutOut.py:2174 +#: appTools/ToolCopperThieving.py:1284 appTools/ToolCopperThieving.py:1560 +#: appTools/ToolCorners.py:587 appTools/ToolCutOut.py:2174 #: appTools/ToolFiducials.py:815 appTools/ToolInvertGerber.py:231 #: appTools/ToolInvertGerber.py:239 appTools/ToolNCC.py:4159 #: appTools/ToolNCC.py:4262 @@ -817,7 +817,7 @@ msgstr "Margine" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCorners.py:586 +#: appTools/ToolCopperThieving.py:1286 appTools/ToolCorners.py:589 #: appTools/ToolFiducials.py:817 appTools/ToolNCC.py:4161 #: appTools/ToolNCC.py:4264 msgid "Bounding box margin." @@ -1324,7 +1324,7 @@ msgstr "" #: appDatabase.py:1223 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2237 +#: appTools/ToolCalculators.py:289 appTools/ToolCutOut.py:2237 msgid "Tool Diameter" msgstr "Dia unealtă" @@ -1334,12 +1334,12 @@ msgid "The drill hole diameter when doing mouse bites." msgstr "Diametrul găurilor atunci când faceți Mouse Bites." #: appDatabase.py:1236 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:164 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:193 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:222 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1364 appTools/ToolCopperThieving.py:1404 -#: appTools/ToolCopperThieving.py:1444 appTools/ToolCutOut.py:2249 +#: appTools/ToolCopperThieving.py:1431 appTools/ToolCopperThieving.py:1471 +#: appTools/ToolCopperThieving.py:1511 appTools/ToolCutOut.py:2249 msgid "Spacing" msgstr "Spaţiere" @@ -1452,7 +1452,7 @@ msgstr "" "aplicației după selectarea unei unelte în baza de date a Uneltelor." #: appDatabase.py:1367 appGUI/MainGUI.py:1553 -#: appGUI/preferences/PreferencesUIManager.py:946 app_Main.py:2500 +#: appGUI/preferences/PreferencesUIManager.py:949 app_Main.py:2500 #: app_Main.py:3527 app_Main.py:4471 app_Main.py:4724 app_Main.py:8998 msgid "Cancel" msgstr "Anuleaza" @@ -1462,10 +1462,10 @@ msgstr "Anuleaza" #: appEditors/appGCodeEditor.py:781 appGUI/ObjectUI.py:163 #: appGUI/ObjectUI.py:174 appTool.py:280 appTool.py:291 #: appTools/ToolAlignObjects.py:517 appTools/ToolAlignObjects.py:528 -#: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 +#: appTools/ToolCalculators.py:519 appTools/ToolCalculators.py:530 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1635 appTools/ToolCopperThieving.py:1646 -#: appTools/ToolCorners.py:672 appTools/ToolCorners.py:683 +#: appTools/ToolCopperThieving.py:1716 appTools/ToolCopperThieving.py:1727 +#: appTools/ToolCorners.py:675 appTools/ToolCorners.py:686 #: appTools/ToolCutOut.py:2454 appTools/ToolCutOut.py:2465 #: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:975 #: appTools/ToolDistance.py:660 appTools/ToolDistance.py:671 @@ -1498,10 +1498,10 @@ msgstr "Valoarea editată este in afara limitelor" #: appEditors/appGCodeEditor.py:783 appGUI/ObjectUI.py:169 #: appGUI/ObjectUI.py:176 appTool.py:286 appTool.py:293 #: appTools/ToolAlignObjects.py:523 appTools/ToolAlignObjects.py:530 -#: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 +#: appTools/ToolCalculators.py:525 appTools/ToolCalculators.py:532 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1641 appTools/ToolCopperThieving.py:1648 -#: appTools/ToolCorners.py:678 appTools/ToolCorners.py:685 +#: appTools/ToolCopperThieving.py:1722 appTools/ToolCopperThieving.py:1729 +#: appTools/ToolCorners.py:681 appTools/ToolCorners.py:688 #: appTools/ToolCutOut.py:2460 appTools/ToolCutOut.py:2467 #: appTools/ToolDblSided.py:970 appTools/ToolDblSided.py:977 #: appTools/ToolDistance.py:666 appTools/ToolDistance.py:673 @@ -2132,7 +2132,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4012 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:83 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:571 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:574 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Lungime" @@ -2298,10 +2298,10 @@ msgstr "Font" #: appEditors/AppGeoEditor.py:316 appEditors/AppGerberEditor.py:2491 #: appEditors/AppGerberEditor.py:3947 appGUI/ObjectUI.py:316 #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1391 appTools/ToolCopperThieving.py:1431 +#: appTools/ToolCopperThieving.py:1458 appTools/ToolCopperThieving.py:1498 #: appTools/ToolFiducials.py:799 appTools/ToolPunchGerber.py:1088 msgid "Size" msgstr "Dimensiune" @@ -2455,7 +2455,7 @@ msgstr "Originea" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:256 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appTools/ToolIsolation.py:3381 appTools/ToolNCC.py:4323 -#: appTools/ToolPaint.py:3104 appTools/ToolTransform.py:557 defaults.py:571 +#: appTools/ToolPaint.py:3104 appTools/ToolTransform.py:557 defaults.py:572 msgid "Selection" msgstr "Selecţie" @@ -2490,10 +2490,12 @@ msgstr "Un punct de referință în format X, Y." #: appEditors/AppGeoEditor.py:671 appEditors/AppGerberEditor.py:2586 #: appEditors/AppGerberEditor.py:5352 appGUI/ObjectUI.py:2375 -#: appTools/ToolDblSided.py:709 appTools/ToolDblSided.py:897 -#: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 -#: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1204 -#: appTools/ToolTransform.py:572 app_Main.py:6294 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:288 +#: appTools/ToolCopperThieving.py:1666 appTools/ToolDblSided.py:709 +#: appTools/ToolDblSided.py:897 appTools/ToolNCC.py:63 +#: appTools/ToolPaint.py:137 appTools/ToolSolderPaste.py:160 +#: appTools/ToolSolderPaste.py:1204 appTools/ToolTransform.py:572 +#: app_Main.py:6294 msgid "Add" msgstr "Adaugă" @@ -3187,7 +3189,7 @@ msgstr "Editor Geometrii" #: appEditors/AppGerberEditor.py:3947 appEditors/appGCodeEditor.py:687 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2034 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: appTools/ToolCorners.py:543 appTools/ToolCutOut.py:2030 +#: appTools/ToolCorners.py:546 appTools/ToolCutOut.py:2030 #: appTools/ToolDblSided.py:522 appTools/ToolPunchGerber.py:1088 #: appTools/ToolTransform.py:579 msgid "Type" @@ -3662,7 +3664,7 @@ msgstr "Pragul de sus pt. arie" #: appEditors/AppGerberEditor.py:2710 msgid "" "The threshold value, all areas less than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" "Valoare de prag, toate poligoanele cu arii mai mici vor fi marcate.\n" "Poate lua valori intre: 0.000 si 999.9999" @@ -3674,7 +3676,7 @@ msgstr "Pragul de jos pt. arie" #: appEditors/AppGerberEditor.py:2719 msgid "" "The threshold value, all areas more than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" "Valoare de prag, toate poligoanele cu arii mai mari vor fi marcate.\n" "Poate lua valori intre: 0.000 si 999.9999" @@ -3843,9 +3845,9 @@ msgstr "" "Nici-o apertură sel. pt a face bufer. Selectează cel puțin o apertură și " "încearcă din nou." -#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:303 -#: appTools/ToolCopperThieving.py:898 appTools/ToolCopperThieving.py:1061 -#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:410 +#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:306 +#: appTools/ToolCopperThieving.py:907 appTools/ToolCopperThieving.py:1104 +#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:413 #: appTools/ToolCutOut.py:779 appTools/ToolCutOut.py:905 #: appTools/ToolCutOut.py:1128 appTools/ToolCutOut.py:1278 #: appTools/ToolFiducials.py:240 appTools/ToolFiducials.py:492 @@ -4036,8 +4038,8 @@ msgstr "Editor Cod" #: appEditors/appGCodeEditor.py:687 appEditors/appGCodeEditor.py:698 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2034 appGUI/ObjectUI.py:2044 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1351 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: appTools/ToolCopperThieving.py:1418 msgid "Dia" msgstr "Dia" @@ -4364,8 +4366,8 @@ msgstr "Nou" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appObjects/ObjectCollection.py:234 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2027 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2027 #: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:771 #: appTools/ToolFilm.py:933 appTools/ToolFilm.py:956 appTools/ToolImage.py:135 #: appTools/ToolImage.py:190 appTools/ToolIsolation.py:3351 @@ -4393,8 +4395,8 @@ msgstr "Va crea un obiect nou de tip Geometrie, fără continut." #: appTools/ToolAlignObjects.py:434 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:891 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2026 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2026 #: appTools/ToolDblSided.py:528 appTools/ToolDblSided.py:769 #: appTools/ToolFilm.py:932 appTools/ToolFilm.py:955 appTools/ToolImage.py:116 #: appTools/ToolImage.py:137 appTools/ToolImage.py:190 @@ -4402,7 +4404,7 @@ msgstr "Va crea un obiect nou de tip Geometrie, fără continut." #: appTools/ToolNCC.py:3873 appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 #: appTools/ToolPanelize.py:148 appTools/ToolPanelize.py:168 #: appTools/ToolPanelize.py:716 appTools/ToolPanelize.py:810 -#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 defaults.py:572 +#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 defaults.py:573 msgid "Gerber" msgstr "Gerber" @@ -4422,8 +4424,8 @@ msgstr "Va crea un obiect nou de tip Gerber, fără continut." #: appTools/ToolAlignObjects.py:435 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:892 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolDblSided.py:530 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolDblSided.py:530 #: appTools/ToolDblSided.py:728 appTools/ToolDblSided.py:770 #: appTools/ToolFilm.py:1211 appTools/ToolIsolation.py:3404 #: appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 @@ -4629,7 +4631,7 @@ msgstr "Importați Preferințele din fișier" msgid "Export Preferences to file" msgstr "Exportați Preferințele într-un fișier" -#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1188 +#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1191 msgid "Save Preferences" msgstr "Salvează Pref" @@ -4786,10 +4788,10 @@ msgid "Q" msgstr "Q" #: appGUI/MainGUI.py:454 appGUI/MainGUI.py:1263 -#: appGUI/preferences/PreferencesUIManager.py:913 -#: appGUI/preferences/PreferencesUIManager.py:1006 -#: appGUI/preferences/PreferencesUIManager.py:1034 -#: appGUI/preferences/PreferencesUIManager.py:1139 app_Main.py:5739 +#: appGUI/preferences/PreferencesUIManager.py:916 +#: appGUI/preferences/PreferencesUIManager.py:1009 +#: appGUI/preferences/PreferencesUIManager.py:1037 +#: appGUI/preferences/PreferencesUIManager.py:1142 app_Main.py:5739 #: app_Main.py:5744 app_Main.py:5759 msgid "Preferences" msgstr "Preferințe" @@ -5481,7 +5483,7 @@ msgid "QRCode Tool" msgstr "Unealta QRCode" #: appGUI/MainGUI.py:1079 appGUI/MainGUI.py:2248 appGUI/MainGUI.py:4475 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1168 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1211 msgid "Copper Thieving Tool" msgstr "Unealta Copper Thieving" @@ -5505,7 +5507,7 @@ msgid "Invert Gerber Tool" msgstr "Unealta Inversare Gerber" #: appGUI/MainGUI.py:1090 appGUI/MainGUI.py:2259 appGUI/MainGUI.py:4478 -#: appTools/ToolCorners.py:452 +#: appTools/ToolCorners.py:455 msgid "Corner Markers Tool" msgstr "Unealta pentru Semne la Colț" @@ -5655,8 +5657,8 @@ msgstr "Proiect" msgid "Plot Area" msgstr "Arie Afișare" -#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1200 -#: appTools/ToolCorners.py:472 appTools/ToolEtchCompensation.py:291 +#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1243 +#: appTools/ToolCorners.py:475 appTools/ToolEtchCompensation.py:291 #: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:902 #: appTools/ToolInvertGerber.py:212 appTools/ToolIsolation.py:2999 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:1010 @@ -5820,14 +5822,14 @@ msgstr "Folderul de preferințe FlatCAM a fost deschis." msgid "Are you sure you want to delete the GUI Settings? \n" msgstr "Esti sigur că dorești să ștergi setările GUI?\n" -#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:945 -#: appGUI/preferences/PreferencesUIManager.py:1192 appTranslation.py:111 +#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:948 +#: appGUI/preferences/PreferencesUIManager.py:1195 appTranslation.py:111 #: appTranslation.py:213 app_Main.py:2498 app_Main.py:3525 app_Main.py:5980 #: app_Main.py:8996 msgid "Yes" msgstr "Da" -#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1193 +#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1196 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:49 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 @@ -6542,8 +6544,8 @@ msgstr "Opțiuni afișare" #: appGUI/ObjectUI.py:202 appGUI/ObjectUI.py:552 #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1321 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:132 +#: appTools/ToolCopperThieving.py:1388 msgid "Solid" msgstr "Solid" @@ -8248,41 +8250,41 @@ msgstr "" "Nu s-a putut adnota datorită unei diferențe între numărul de elemente de " "text și numărul de locații de text." -#: appGUI/preferences/PreferencesUIManager.py:920 +#: appGUI/preferences/PreferencesUIManager.py:923 msgid "Preferences applied." msgstr "Preferințele au fost aplicate." -#: appGUI/preferences/PreferencesUIManager.py:940 +#: appGUI/preferences/PreferencesUIManager.py:943 msgid "Are you sure you want to continue?" msgstr "Ești sigur că vrei să continui?" -#: appGUI/preferences/PreferencesUIManager.py:941 +#: appGUI/preferences/PreferencesUIManager.py:944 msgid "Application will restart" msgstr "Aplicaţia va reporni" -#: appGUI/preferences/PreferencesUIManager.py:1039 +#: appGUI/preferences/PreferencesUIManager.py:1042 msgid "Preferences closed without saving." msgstr "Tab-ul Preferințe a fost închis fără a salva." -#: appGUI/preferences/PreferencesUIManager.py:1051 +#: appGUI/preferences/PreferencesUIManager.py:1054 msgid "Preferences default values are restored." msgstr "Valorile implicite pt preferințe sunt restabilite." -#: appGUI/preferences/PreferencesUIManager.py:1082 app_Main.py:2833 +#: appGUI/preferences/PreferencesUIManager.py:1085 app_Main.py:2833 #: app_Main.py:9670 msgid "Failed to write defaults to file." msgstr "Salvarea valorilor default intr-un fişier a eșuat." -#: appGUI/preferences/PreferencesUIManager.py:1086 -#: appGUI/preferences/PreferencesUIManager.py:1201 +#: appGUI/preferences/PreferencesUIManager.py:1089 +#: appGUI/preferences/PreferencesUIManager.py:1204 msgid "Preferences saved." msgstr "Preferințele au fost salvate." -#: appGUI/preferences/PreferencesUIManager.py:1136 +#: appGUI/preferences/PreferencesUIManager.py:1139 msgid "Preferences edited but not saved." msgstr "Preferințele au fost editate dar nu au fost salvate." -#: appGUI/preferences/PreferencesUIManager.py:1186 +#: appGUI/preferences/PreferencesUIManager.py:1189 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -8320,8 +8322,8 @@ msgstr "Opțiuni Avans. CNCJob" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1219 -#: appTools/ToolCorners.py:536 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1262 +#: appTools/ToolCorners.py:539 appTools/ToolEtchCompensation.py:356 #: appTools/ToolFiducials.py:792 appTools/ToolInvertGerber.py:225 #: appTools/ToolQRCode.py:702 msgid "Parameters" @@ -8725,7 +8727,7 @@ msgstr "Unitatile de masura folosite in fişierul Excellon." #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:187 appTools/ToolPcbWizard.py:453 +#: appTools/ToolCalculators.py:227 appTools/ToolPcbWizard.py:453 msgid "INCH" msgstr "Inch" @@ -8734,7 +8736,7 @@ msgstr "Inch" #: appGUI/preferences/general/GeneralAppPrefGroupUI.py:43 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 -#: appTools/ToolCalculators.py:188 appTools/ToolPcbWizard.py:454 +#: appTools/ToolCalculators.py:228 appTools/ToolPcbWizard.py:454 msgid "MM" msgstr "MM" @@ -9163,8 +9165,10 @@ msgstr "" "disponibile" #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:293 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: appTools/ToolFilm.py:1109 appTools/ToolMilling.py:1771 +#: appTools/ToolCopperThieving.py:1671 appTools/ToolFilm.py:1109 +#: appTools/ToolMilling.py:1771 msgid "Both" msgstr "Ambele" @@ -10371,8 +10375,8 @@ msgid "\"Follow\"" msgstr "\"Urmăreste\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:568 -#: appTools/ToolCopperThieving.py:774 appTools/ToolCopperThieving.py:787 +#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:778 appTools/ToolCopperThieving.py:791 #: appTools/ToolIsolation.py:1360 appTools/ToolNCC.py:1807 #: appTools/ToolNCC.py:1834 appTools/ToolNCC.py:1942 appTools/ToolNCC.py:1955 #: appTools/ToolNCC.py:2857 appTools/ToolNCC.py:2962 appTools/ToolNCC.py:2977 @@ -10396,15 +10400,17 @@ msgstr "" "<>: Nu schimba această valoare decat dacă stii ce faci !!!" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:71 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:296 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:844 appTools/ToolFilm.py:1106 -#: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 -#: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 -#: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 +#: appTools/ToolCopperThieving.py:1674 appTools/ToolFiducials.py:844 +#: appTools/ToolFilm.py:1106 appTools/ToolProperties.py:449 +#: appTools/ToolProperties.py:452 appTools/ToolProperties.py:455 +#: appTools/ToolProperties.py:483 appTools/ToolProperties.py:490 +#: appTools/ToolProperties.py:493 msgid "None" msgstr "Nimic" @@ -10684,8 +10690,8 @@ msgid "Number of steps (lines) used to interpolate circles." msgstr "Numărul de pași (linii) utilizate pentru interpolarea cercurilor." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolCopperThieving.py:1563 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:274 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolCopperThieving.py:1630 msgid "Clearance" msgstr "Degajare" @@ -10699,37 +10705,51 @@ msgstr "" "(umplutura poligonului poate fi împărțită în mai multe poligoane)\n" "si traseele de cupru din fisierul Gerber." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:85 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: appTools/ToolCalculators.py:342 appTools/ToolCalculators.py:385 +#: appTools/ToolCopperThieving.py:1298 +msgid "Area" +msgstr "Aria" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appTools/ToolCopperThieving.py:1300 +msgid "Thieving areas with area less then this value will not be added." +msgstr "" +"Zonele de Thieving cu suprafață mai mică decât această valoare nu vor fi " +"adăugate." + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:99 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1255 appTools/ToolNCC.py:4319 +#: appTools/ToolCopperThieving.py:1321 appTools/ToolNCC.py:4319 msgid "Itself" msgstr "Însuşi" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:100 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1256 appTools/ToolIsolation.py:3391 +#: appTools/ToolCopperThieving.py:1322 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:4319 appTools/ToolPaint.py:3116 msgid "Area Selection" msgstr "Selecţie zonă" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1257 appTools/ToolDblSided.py:761 +#: appTools/ToolCopperThieving.py:1323 appTools/ToolDblSided.py:761 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:4319 #: appTools/ToolPaint.py:3116 tclCommands/TclCommandPaint.py:166 msgid "Reference Object" msgstr "Obiect Ref" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1259 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:103 +#: appTools/ToolCopperThieving.py:1325 msgid "Reference:" msgstr "Referinţă:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:105 msgid "" "- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -10744,29 +10764,29 @@ msgstr "" "- „Obiect de referință” - va face Copper Thieving în zona specificată de un " "alt obiect." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:114 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1301 appTools/ToolExtractDrills.py:495 +#: appTools/ToolCopperThieving.py:1372 appTools/ToolExtractDrills.py:495 #: appTools/ToolExtractDrills.py:628 appTools/ToolPunchGerber.py:1068 #: appTools/ToolPunchGerber.py:1240 msgid "Rectangular" msgstr "Patrulater" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1302 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:115 +#: appTools/ToolCopperThieving.py:1373 msgid "Minimal" msgstr "Minimal" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1304 appTools/ToolFilm.py:958 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:117 +#: appTools/ToolCopperThieving.py:1366 appTools/ToolFilm.py:958 msgid "Box Type:" msgstr "Tip container:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1306 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: appTools/ToolCopperThieving.py:1368 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10774,28 +10794,28 @@ msgstr "" "- „Dreptunghiular” - caseta de delimitare va avea o formă dreptunghiulară.\n" "- „Minimal” - caseta de delimitare va fi in formă de suprafată convexă." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1322 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:133 +#: appTools/ToolCopperThieving.py:1389 msgid "Dots Grid" msgstr "Grilă de puncte" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1323 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: appTools/ToolCopperThieving.py:1390 msgid "Squares Grid" msgstr "Grilă de pătrate" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1324 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:135 +#: appTools/ToolCopperThieving.py:1391 msgid "Lines Grid" msgstr "Grilă de linii" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1326 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137 +#: appTools/ToolCopperThieving.py:1393 msgid "Fill Type:" msgstr "Tip de umplere:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1328 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:139 +#: appTools/ToolCopperThieving.py:1395 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10807,58 +10827,58 @@ msgstr "" "- „Grilă de pătrate” - zona goală va fi umplută cu un model de pătrate.\n" "- „Grilă de linii” - zona goală va fi umplută cu un model de linii." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1347 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:147 +#: appTools/ToolCopperThieving.py:1414 msgid "Dots Grid Parameters" msgstr "Parametri grilă puncte" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1353 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: appTools/ToolCopperThieving.py:1420 msgid "Dot diameter in Dots Grid." msgstr "Diametrul punctului în Grila de Puncte." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1366 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:166 +#: appTools/ToolCopperThieving.py:1433 msgid "Distance between each two dots in Dots Grid." msgstr "Distanța dintre fiecare două puncte din Grila de Puncte." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1387 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:176 +#: appTools/ToolCopperThieving.py:1454 msgid "Squares Grid Parameters" msgstr "Parametri grilă de patrate" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1393 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: appTools/ToolCopperThieving.py:1460 msgid "Square side size in Squares Grid." msgstr "Dimensiunea pătratului în Grila de Pătrate." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1406 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:195 +#: appTools/ToolCopperThieving.py:1473 msgid "Distance between each two squares in Squares Grid." msgstr "Distanța dintre fiecare două pătrate din Grila Pătrate." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1427 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:205 +#: appTools/ToolCopperThieving.py:1494 msgid "Lines Grid Parameters" msgstr "Parametri grilă de linii" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1433 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: appTools/ToolCopperThieving.py:1500 msgid "Line thickness size in Lines Grid." msgstr "Mărimea grosimii liniei în Grila de linii." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1446 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:224 +#: appTools/ToolCopperThieving.py:1513 msgid "Distance between each two lines in Lines Grid." msgstr "Distanța dintre fiecare două linii în Grial de linii." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1485 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:234 +#: appTools/ToolCopperThieving.py:1552 msgid "Robber Bar Parameters" msgstr "Parametri pentru Robber Bar" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1487 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:236 +#: appTools/ToolCopperThieving.py:1554 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10866,37 +10886,37 @@ msgstr "" "Parametrii folosiți pentru Robber Bar.\n" "Robber Bar = bordura de cupru pentru a ajuta la placarea de găuri, cu model." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1495 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: appTools/ToolCopperThieving.py:1562 msgid "Bounding box margin for robber bar." msgstr "" "Marginea pentru forma înconjurătoare\n" "a Robber Bar." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:255 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appTools/ToolCopperThieving.py:1506 appTools/ToolCorners.py:557 +#: appTools/ToolCopperThieving.py:1573 appTools/ToolCorners.py:560 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Grosime" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1508 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:257 +#: appTools/ToolCopperThieving.py:1575 msgid "The robber bar thickness." msgstr "Grosimea Robber Bar." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1540 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:267 +#: appTools/ToolCopperThieving.py:1607 msgid "Pattern Plating Mask" msgstr "Masca de placare cu model" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1542 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:269 +#: appTools/ToolCopperThieving.py:1609 msgid "Generate a mask for pattern plating." msgstr "Generați o mască pentru placarea cu model." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1565 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:276 +#: appTools/ToolCopperThieving.py:1632 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10904,6 +10924,22 @@ msgstr "" "Distanța dintre posibilele elemente Copper Thieving\n" "și / sau Robber Bar și deschiderile efective ale măștii." +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:290 +#: appTools/ToolCopperThieving.py:1668 +msgid "Choose which additional geometry to include, if available." +msgstr "Alegeți ce geometrie suplimentară să includeți, dacă este disponibilă." + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:294 +#: appTools/ToolCopperThieving.py:499 appTools/ToolCopperThieving.py:503 +#: appTools/ToolCopperThieving.py:565 appTools/ToolCopperThieving.py:1672 +msgid "Thieving" +msgstr "Thieving" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:295 +#: appTools/ToolCopperThieving.py:1673 +msgid "Robber bar" +msgstr "Rober Bar" + #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 msgid "Calibration Tool Options" msgstr "Opțiuni Unealta Calibrare" @@ -10913,7 +10949,7 @@ msgstr "Opțiuni Unealta Calibrare" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1221 appTools/ToolCorners.py:538 +#: appTools/ToolCopperThieving.py:1264 appTools/ToolCorners.py:541 #: appTools/ToolFiducials.py:794 msgid "Parameters used for this tool." msgstr "Parametrii folosiți pentru aceasta unealta." @@ -11259,7 +11295,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:49 -#: appTools/ToolCorners.py:550 appTools/ToolFiducials.py:864 +#: appTools/ToolCorners.py:553 appTools/ToolFiducials.py:864 msgid "Cross" msgstr "Cruce" @@ -11824,7 +11860,7 @@ msgid "Calculators Tool Options" msgstr "Opțiuni Unealta Calculatoare" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: appTools/ToolCalculators.py:152 +#: appTools/ToolCalculators.py:191 msgid "V-Shape Tool Calculator" msgstr "Calculator Unealta V-Shape" @@ -11839,12 +11875,12 @@ msgstr "" "adâncimea de tăiere, ca parametri." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: appTools/ToolCalculators.py:220 +#: appTools/ToolCalculators.py:260 msgid "Tip Diameter" msgstr "Dia vârf" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: appTools/ToolCalculators.py:228 +#: appTools/ToolCalculators.py:268 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11853,7 +11889,7 @@ msgstr "" "Este specificat de producator." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: appTools/ToolCalculators.py:231 +#: appTools/ToolCalculators.py:271 msgid "Tip Angle" msgstr "V-Unghi" @@ -11874,12 +11910,12 @@ msgstr "" "In obiectul CNCJob este parametrul >Z tăiere<." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:154 +#: appTools/ToolCalculators.py:193 msgid "ElectroPlating Calculator" msgstr "Calculator ElectroPlacare" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: appTools/ToolCalculators.py:284 +#: appTools/ToolCalculators.py:324 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium " @@ -11892,36 +11928,41 @@ msgstr "" "- hipofosfit de calciu." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: appTools/ToolCalculators.py:293 +#: appTools/ToolCalculators.py:349 msgid "Board Length" msgstr "Lung. plăcii" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: appTools/ToolCalculators.py:299 +#: appTools/ToolCalculators.py:350 msgid "This is the board length. In centimeters." msgstr "" "Aceasta este lungimea PCB-ului.\n" "In centimetri." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: appTools/ToolCalculators.py:301 +#: appTools/ToolCalculators.py:367 msgid "Board Width" msgstr "Lăt. plăcii" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: appTools/ToolCalculators.py:307 +#: appTools/ToolCalculators.py:368 msgid "This is the board width.In centimeters." msgstr "" "Aceasta este lăţimea PCB-ului.\n" "In centimetri." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: appTools/ToolCalculators.py:309 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:120 +#: appTools/ToolCalculators.py:386 +msgid "This is the board area." +msgstr "Aceasta este aria PCB-ului." + +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:130 +#: appTools/ToolCalculators.py:408 msgid "Current Density" msgstr "Densitate I" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: appTools/ToolCalculators.py:316 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:136 +#: appTools/ToolCalculators.py:409 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -11929,13 +11970,13 @@ msgstr "" "Densitatea de curent care să treaca prin placa.\n" "In ASF (amperi pe picior la patrat)." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: appTools/ToolCalculators.py:319 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:142 +#: appTools/ToolCalculators.py:428 msgid "Copper Growth" msgstr "Grosime Cu" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: appTools/ToolCalculators.py:326 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:148 +#: appTools/ToolCalculators.py:429 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -11948,32 +11989,32 @@ msgid "Corner Markers Options" msgstr "Opțiuni Marcaje Colțuri" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:545 +#: appTools/ToolCorners.py:548 msgid "Shape of the marker." msgstr "Forma marcatorului." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:48 -#: appTools/ToolCorners.py:549 +#: appTools/ToolCorners.py:552 msgid "Semi-Cross" msgstr "Semi-Cruce" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:559 +#: appTools/ToolCorners.py:562 msgid "The thickness of the line that makes the corner marker." msgstr "Grosimea liniei care face marcajul de colț." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:85 -#: appTools/ToolCorners.py:573 +#: appTools/ToolCorners.py:576 msgid "The length of the line that makes the corner marker." msgstr "Lungimea liniei care face marcajul de colț." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:96 -#: appTools/ToolCorners.py:625 appTools/ToolDblSided.py:827 +#: appTools/ToolCorners.py:628 appTools/ToolDblSided.py:827 msgid "Drill Dia" msgstr "Dia Gaură" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:98 -#: appTools/ToolCorners.py:627 +#: appTools/ToolCorners.py:630 msgid "Drill Diameter" msgstr "Dia Găurire" @@ -12322,18 +12363,18 @@ msgstr "" "geometriei." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:509 appTools/ToolFiducials.py:723 +#: appTools/ToolCorners.py:512 appTools/ToolFiducials.py:723 #: appTools/ToolFilm.py:1069 msgid "Bottom Left" msgstr "Stânga jos" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:501 appTools/ToolFilm.py:1070 +#: appTools/ToolCorners.py:504 appTools/ToolFilm.py:1070 msgid "Top Left" msgstr "Stânga sus" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:513 appTools/ToolFilm.py:1071 +#: appTools/ToolCorners.py:516 appTools/ToolFilm.py:1071 msgid "Bottom Right" msgstr "Dreapta-jos" @@ -12613,8 +12654,8 @@ msgstr "Progresiv" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:452 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1072 -#: appTools/ToolCorners.py:416 appTools/ToolFiducials.py:563 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1115 +#: appTools/ToolCorners.py:419 appTools/ToolFiducials.py:563 #: appTools/ToolMove.py:229 appTools/ToolQRCode.py:466 app_Main.py:4813 msgid "Plotting" msgstr "Se afișeaz" @@ -13672,7 +13713,7 @@ msgstr "CNC Code in curs de generare" msgid "CNCjob created" msgstr "CNCjob creat" -#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:586 +#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:593 #: appTools/ToolFilm.py:639 appTools/ToolFilm.py:883 #: appTools/ToolIsolation.py:930 appTools/ToolNCC.py:868 #: appTools/ToolOptimal.py:145 appTools/ToolPanelize.py:613 @@ -13794,7 +13835,8 @@ msgstr "Scalare..." msgid "Skewing..." msgstr "Deformare..." -#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:152 +#: appObjects/FlatCAMObj.py:487 appTools/ToolCalculators.py:341 +#: appTools/ToolProperties.py:152 msgid "Dimensions" msgstr "Dimensiuni" @@ -14166,9 +14208,9 @@ msgstr "" "Daca se folosesc două puncte atunci va fi o translatie urmată de o posibilă " "rotatie." -#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1617 -#: appTools/ToolCorners.py:654 appTools/ToolCutOut.py:2411 +#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:501 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1698 +#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2411 #: appTools/ToolDblSided.py:946 appTools/ToolDrilling.py:2649 #: appTools/ToolEtchCompensation.py:459 appTools/ToolExtractDrills.py:699 #: appTools/ToolFiducials.py:962 appTools/ToolFilm.py:1387 @@ -14182,9 +14224,9 @@ msgstr "" msgid "Reset Tool" msgstr "Resetați Unealta" -#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1620 -#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2414 +#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:504 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1701 +#: appTools/ToolCorners.py:660 appTools/ToolCutOut.py:2414 #: appTools/ToolDblSided.py:949 appTools/ToolDrilling.py:2652 #: appTools/ToolEtchCompensation.py:462 appTools/ToolExtractDrills.py:702 #: appTools/ToolFiducials.py:965 appTools/ToolFilm.py:1390 @@ -14198,27 +14240,27 @@ msgstr "Resetați Unealta" msgid "Will reset the tool parameters." msgstr "Va reseta parametrii uneltei." -#: appTools/ToolCalculators.py:77 +#: appTools/ToolCalculators.py:79 msgid "Calc. Tool" msgstr "Unealta Calc" -#: appTools/ToolCalculators.py:151 +#: appTools/ToolCalculators.py:190 msgid "Calculators" msgstr "Calculatoare" -#: appTools/ToolCalculators.py:153 +#: appTools/ToolCalculators.py:192 msgid "Units Calculator" msgstr "Calculator Unitati" -#: appTools/ToolCalculators.py:196 +#: appTools/ToolCalculators.py:236 msgid "Here you enter the value to be converted from INCH to MM" msgstr "Valorile pentru conversie din INCH in MM" -#: appTools/ToolCalculators.py:201 +#: appTools/ToolCalculators.py:241 msgid "Here you enter the value to be converted from MM to INCH" msgstr "Valorile pentru conversie din MM in INCH" -#: appTools/ToolCalculators.py:237 +#: appTools/ToolCalculators.py:277 msgid "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." @@ -14226,7 +14268,7 @@ msgstr "" "Acesta este unghiul uneltei la vârf.\n" "Producatorul il specifica in foaia de catalog." -#: appTools/ToolCalculators.py:246 +#: appTools/ToolCalculators.py:286 msgid "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." @@ -14234,7 +14276,7 @@ msgstr "" "Acest param. este adâncimea de tăiere in material.\n" "In obiectul CNCJob este parametrul >Z tăiere<." -#: appTools/ToolCalculators.py:254 +#: appTools/ToolCalculators.py:294 msgid "" "This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" @@ -14244,11 +14286,11 @@ msgstr "" "sectiunea FlatCAM Gerber.\n" "In sectiunea CNCJob este numit >Dia unealtă<." -#: appTools/ToolCalculators.py:265 appTools/ToolCalculators.py:361 +#: appTools/ToolCalculators.py:305 appTools/ToolCalculators.py:490 msgid "Calculate" msgstr "Calculează" -#: appTools/ToolCalculators.py:268 +#: appTools/ToolCalculators.py:309 msgid "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " @@ -14257,11 +14299,28 @@ msgstr "" "uneltei,\n" "depinzand de care dintre acestea este cunoscuta. " -#: appTools/ToolCalculators.py:331 +#: appTools/ToolCalculators.py:336 +msgid "Area Calculation" +msgstr "Calculul suprafeței" + +#: appTools/ToolCalculators.py:338 +msgid "Choose how to calculate the board area." +msgstr "Alege cum să calculezi suprafața plăcii." + +#: appTools/ToolCalculators.py:356 appTools/ToolCalculators.py:374 +#: appTools/ToolCalculators.py:392 +msgid "cm" +msgstr "cm" + +#: appTools/ToolCalculators.py:437 +msgid "um" +msgstr "um" + +#: appTools/ToolCalculators.py:448 msgid "Current Value" msgstr "Intensitate" -#: appTools/ToolCalculators.py:338 +#: appTools/ToolCalculators.py:449 msgid "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." @@ -14269,11 +14328,11 @@ msgstr "" "Intensitatea curentului electric care se va seta\n" "in sursa de alimentare. In Amperi." -#: appTools/ToolCalculators.py:342 +#: appTools/ToolCalculators.py:469 msgid "Time" msgstr "Durată" -#: appTools/ToolCalculators.py:349 +#: appTools/ToolCalculators.py:470 msgid "" "This is the calculated time required for the procedure.\n" "In minutes." @@ -14281,7 +14340,7 @@ msgstr "" "TImpul necesar (calculat) pentru\n" "efectuarea procedurii. In minute." -#: appTools/ToolCalculators.py:364 +#: appTools/ToolCalculators.py:493 msgid "" "Calculate the current intensity value and the procedure time,\n" "depending on the parameters above" @@ -14590,45 +14649,45 @@ msgstr "" "Reglați (Scalați și / sau Deformați) obiectele\n" "cu factorii determinați mai sus." -#: appTools/ToolCopperThieving.py:184 appTools/ToolCopperThieving.py:209 +#: appTools/ToolCopperThieving.py:186 appTools/ToolCopperThieving.py:211 msgid "Lines Grid works only for 'itself' reference ..." msgstr "Gridul de Linii funcționează numai pentru referința „în sine” ..." -#: appTools/ToolCopperThieving.py:195 +#: appTools/ToolCopperThieving.py:197 msgid "Solid fill selected." msgstr "Umplere solidă selectată." -#: appTools/ToolCopperThieving.py:200 +#: appTools/ToolCopperThieving.py:202 msgid "Dots grid fill selected." msgstr "Umplere Grila de Puncte selectată." -#: appTools/ToolCopperThieving.py:205 +#: appTools/ToolCopperThieving.py:207 msgid "Squares grid fill selected." msgstr "Umplere Grila de Pătrate selectată." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:324 -#: appTools/ToolCopperThieving.py:936 appTools/ToolCorners.py:127 -#: appTools/ToolCorners.py:353 appTools/ToolDblSided.py:307 +#: appTools/ToolCopperThieving.py:229 appTools/ToolCopperThieving.py:327 +#: appTools/ToolCopperThieving.py:946 appTools/ToolCorners.py:127 +#: appTools/ToolCorners.py:350 appTools/ToolDblSided.py:307 #: appTools/ToolExtractDrills.py:141 appTools/ToolFiducials.py:191 #: appTools/ToolFiducials.py:482 appTools/ToolOptimal.py:138 #: appTools/ToolPunchGerber.py:381 appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Nu este nici-un obiect Gerber incărcat ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 +#: appTools/ToolCopperThieving.py:242 appTools/ToolCopperThieving.py:847 msgid "Append geometry" msgstr "Adăugați geometria" -#: appTools/ToolCopperThieving.py:294 appTools/ToolCopperThieving.py:889 -#: appTools/ToolCopperThieving.py:1048 +#: appTools/ToolCopperThieving.py:297 appTools/ToolCopperThieving.py:898 +#: appTools/ToolCopperThieving.py:1091 msgid "Append source file" msgstr "Adăugați fișierul sursă" -#: appTools/ToolCopperThieving.py:307 appTools/ToolCopperThieving.py:902 +#: appTools/ToolCopperThieving.py:310 appTools/ToolCopperThieving.py:911 msgid "Copper Thieving Tool done." msgstr "Unealta Copper Thieving efectuata." -#: appTools/ToolCopperThieving.py:334 appTools/ToolCopperThieving.py:354 +#: appTools/ToolCopperThieving.py:337 appTools/ToolCopperThieving.py:357 #: appTools/ToolCutOut.py:551 appTools/ToolCutOut.py:927 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 @@ -14644,71 +14703,66 @@ msgstr "Unealta Copper Thieving efectuata." msgid "Could not retrieve object" msgstr "Nu s-a putut incărca obiectul" -#: appTools/ToolCopperThieving.py:382 +#: appTools/ToolCopperThieving.py:385 msgid "Click the end point of the filling area." msgstr "Faceți clic pe punctul final al zonei de umplere." -#: appTools/ToolCopperThieving.py:496 appTools/ToolCopperThieving.py:500 -#: appTools/ToolCopperThieving.py:558 -msgid "Thieving" -msgstr "Thieving" - -#: appTools/ToolCopperThieving.py:507 +#: appTools/ToolCopperThieving.py:510 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Unealta Thieving Tool a pornit. Se citesc parametrii." -#: appTools/ToolCopperThieving.py:532 +#: appTools/ToolCopperThieving.py:536 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Unealta Thieving Tool. Se pregătesc poligoanele de isolare." -#: appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:582 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Unealta Thieving Tool. Se pregătesc zonele de umplut cu cupru." -#: appTools/ToolCopperThieving.py:619 +#: appTools/ToolCopperThieving.py:626 msgid "Geometry not supported for bounding box" msgstr "Geometria nu este acceptată pentru caseta de delimitare" -#: appTools/ToolCopperThieving.py:625 appTools/ToolNCC.py:1695 +#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1695 #: appTools/ToolNCC.py:1750 appTools/ToolNCC.py:2744 appTools/ToolPaint.py:2468 msgid "No object available." msgstr "Nici-un obiect disponibil." -#: appTools/ToolCopperThieving.py:662 appTools/ToolNCC.py:1720 +#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1720 #: appTools/ToolNCC.py:1773 appTools/ToolNCC.py:2786 msgid "The reference object type is not supported." msgstr "Tipul de obiect de referintă nu este acceptat." -#: appTools/ToolCopperThieving.py:667 +#: appTools/ToolCopperThieving.py:674 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "" "Unealta Copper Thieving. Se adauga o noua geometrie si se fuzioneaza acestea." -#: appTools/ToolCopperThieving.py:683 +#: appTools/ToolCopperThieving.py:710 msgid "Create geometry" msgstr "Creați geometrie" -#: appTools/ToolCopperThieving.py:913 appTools/ToolCopperThieving.py:917 +#: appTools/ToolCopperThieving.py:922 appTools/ToolCopperThieving.py:926 msgid "P-Plating Mask" msgstr "Mască M-Placare" -#: appTools/ToolCopperThieving.py:939 +#: appTools/ToolCopperThieving.py:949 msgid "Append PP-M geometry" msgstr "Adaugă geometrie mască PM" -#: appTools/ToolCopperThieving.py:1068 +#: appTools/ToolCopperThieving.py:1111 msgid "Generating Pattern Plating Mask done." msgstr "Generarea măștii de placare cu model efectuată." -#: appTools/ToolCopperThieving.py:1111 +#: appTools/ToolCopperThieving.py:1154 msgid "Copper Thieving Tool exit." msgstr "Unealta Copper Thieving terminata." -#: appTools/ToolCopperThieving.py:1202 appTools/ToolFiducials.py:904 +#: appTools/ToolCopperThieving.py:1245 appTools/ToolFiducials.py:904 msgid "Gerber Object to which will be added a copper thieving." msgstr "Obiect Gerber căruia i se va adăuga Copper Thieving." -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1271 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14718,7 +14772,15 @@ msgstr "" "(umplutura poligonului poate fi împărțită în mai multe poligoane)\n" "si traseele de cupru din fisierul Gerber." -#: appTools/ToolCopperThieving.py:1261 +#: appTools/ToolCopperThieving.py:1309 appTools/ToolCopperThieving.py:1657 +msgid "mm" +msgstr "mm" + +#: appTools/ToolCopperThieving.py:1311 appTools/ToolCopperThieving.py:1659 +msgid "in" +msgstr "in" + +#: appTools/ToolCopperThieving.py:1327 msgid "" "- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -14732,12 +14794,12 @@ msgstr "" "- „Obiect de referință” - va face Copper Thieving în zona specificată de un " "alt obiect." -#: appTools/ToolCopperThieving.py:1268 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1334 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4336 appTools/ToolPaint.py:3126 msgid "Ref. Type" msgstr "Tip Ref" -#: appTools/ToolCopperThieving.py:1270 +#: appTools/ToolCopperThieving.py:1336 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14746,22 +14808,22 @@ msgstr "" "Thieving.\n" "Poate fi Gerber, Excellon sau Geometrie." -#: appTools/ToolCopperThieving.py:1279 appTools/ToolIsolation.py:3409 +#: appTools/ToolCopperThieving.py:1345 appTools/ToolIsolation.py:3409 #: appTools/ToolNCC.py:4346 appTools/ToolPaint.py:3136 msgid "Ref. Object" msgstr "Obiect Ref" -#: appTools/ToolCopperThieving.py:1281 appTools/ToolIsolation.py:3411 +#: appTools/ToolCopperThieving.py:1347 appTools/ToolIsolation.py:3411 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3138 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "" "Obiectul FlatCAM pentru a fi utilizat ca referință pt. curățarea de cupru." -#: appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCopperThieving.py:1524 msgid "Insert Copper thieving" msgstr "Inserați Copper Thieving" -#: appTools/ToolCopperThieving.py:1460 +#: appTools/ToolCopperThieving.py:1527 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14769,11 +14831,11 @@ msgstr "" "Se va adăuga un poligon (poate fi împărțit în mai multe părți)\n" "care va înconjura traseele Gerber la o anumită distanță." -#: appTools/ToolCopperThieving.py:1519 +#: appTools/ToolCopperThieving.py:1586 msgid "Insert Robber Bar" msgstr "Inserați Rober Bar" -#: appTools/ToolCopperThieving.py:1522 +#: appTools/ToolCopperThieving.py:1589 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14785,11 +14847,11 @@ msgstr "" "la o anumită distanță.\n" "Necesar atunci când faceți placare găuri cu model." -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1613 msgid "Select Soldermask object" msgstr "Selectați obiectul Soldermask" -#: appTools/ToolCopperThieving.py:1548 +#: appTools/ToolCopperThieving.py:1615 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14799,11 +14861,11 @@ msgstr "" "Acesta va fi folosit ca bază pentru\n" "generarea de masca pentru placare cu model." -#: appTools/ToolCopperThieving.py:1577 +#: appTools/ToolCopperThieving.py:1644 msgid "Plated area" msgstr "Zona placată" -#: appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCopperThieving.py:1646 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14821,19 +14883,11 @@ msgstr "" "un pic mai mari decât padurile de cupru, iar această zonă este\n" "calculată din deschiderile soldermask." -#: appTools/ToolCopperThieving.py:1590 -msgid "mm" -msgstr "mm" - -#: appTools/ToolCopperThieving.py:1592 -msgid "in" -msgstr "in" - -#: appTools/ToolCopperThieving.py:1599 +#: appTools/ToolCopperThieving.py:1680 msgid "Generate pattern plating mask" msgstr "Generați mască de placare cu model" -#: appTools/ToolCopperThieving.py:1602 +#: appTools/ToolCopperThieving.py:1683 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14847,7 +14901,7 @@ msgstr "" msgid "Corners Tool" msgstr "Unealta Marcaje Colt" -#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:343 +#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:355 msgid "Please select at least a location" msgstr "Vă rugăm să selectați cel puțin o locație" @@ -14855,51 +14909,51 @@ msgstr "Vă rugăm să selectați cel puțin o locație" msgid "The tool diameter is zero." msgstr "Dimaetrul uneltei este zero." -#: appTools/ToolCorners.py:412 +#: appTools/ToolCorners.py:415 msgid "Excellon object with corner drills created." msgstr "Obiectul Excellon conținând găurile din colțuri a fost creat ..." -#: appTools/ToolCorners.py:447 +#: appTools/ToolCorners.py:450 msgid "A Gerber object with corner markers was created." msgstr "Obiectul Gerber conținând semnele din colțuri a fost creat ..." -#: appTools/ToolCorners.py:474 +#: appTools/ToolCorners.py:477 msgid "The Gerber object to which will be added corner markers." msgstr "Obiect Gerber căruia i se va adăuga marcaje de colt." -#: appTools/ToolCorners.py:490 +#: appTools/ToolCorners.py:493 msgid "Locations" msgstr "Locaţii" -#: appTools/ToolCorners.py:492 +#: appTools/ToolCorners.py:495 msgid "Locations where to place corner markers." msgstr "Locații unde să plasați markerele de colț." -#: appTools/ToolCorners.py:505 appTools/ToolFiducials.py:735 +#: appTools/ToolCorners.py:508 appTools/ToolFiducials.py:735 msgid "Top Right" msgstr "Dreapta-sus" -#: appTools/ToolCorners.py:522 +#: appTools/ToolCorners.py:525 msgid "Toggle ALL" msgstr "Comută Toate" -#: appTools/ToolCorners.py:602 +#: appTools/ToolCorners.py:605 msgid "Add Marker" msgstr "Adaugă Marcaj" -#: appTools/ToolCorners.py:605 +#: appTools/ToolCorners.py:608 msgid "Will add corner markers to the selected Gerber file." msgstr "Va adăuga marcaje de colț în fișierul Gerber selectat." -#: appTools/ToolCorners.py:621 +#: appTools/ToolCorners.py:624 msgid "Drills in Corners" msgstr "Găuri in Colțuri" -#: appTools/ToolCorners.py:638 appTools/ToolDblSided.py:928 +#: appTools/ToolCorners.py:641 appTools/ToolDblSided.py:928 msgid "Create Excellon Object" msgstr "Crează un obiect Excellon" -#: appTools/ToolCorners.py:641 +#: appTools/ToolCorners.py:644 msgid "Will add drill holes in the center of the markers." msgstr "Se vor adăuga găuri în centrul marcajelor." @@ -19920,11 +19974,11 @@ msgstr "" msgid "G91 coordinates not implemented ..." msgstr "Coordonatele G91 nu au fost implementate ..." -#: defaults.py:867 +#: defaults.py:870 msgid "Could not load defaults file." msgstr "Nu am putut incărca fişierul cu valori default." -#: defaults.py:880 +#: defaults.py:883 msgid "Failed to parse defaults file." msgstr "Parsarea fişierului cu valori default a eșuat." @@ -21697,9 +21751,6 @@ msgstr "" #~ "
Punct-samanta: De la punctul samanta, spre expterior." #~ "
Linii drepte: Linii paralele." -#~ msgid "Area" -#~ msgstr "Aria" - #~ msgid "Ref" #~ msgstr "Ref" diff --git a/locale/ru/LC_MESSAGES/strings.mo b/locale/ru/LC_MESSAGES/strings.mo index 6d9510308557c6a826537b59782ddd83f77af510..6706b4764e122ffb2ed1b1aa0e6ad8435982436d 100644 GIT binary patch delta 73627 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
vLZq6bSITug9ms1q{4~o!}Uc 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\n" "Language-Team: \n" @@ -162,7 +162,7 @@ msgstr "Закладки импортированы из" msgid "The user requested a graceful exit of the current task." msgstr "Пользователь запросил выход из текущего задания." -#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:344 +#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:347 #: appTools/ToolIsolation.py:1443 appTools/ToolNCC.py:1380 msgid "Click the start point of the area." msgstr "Нажмите на начальную точку области." @@ -172,7 +172,7 @@ msgid "Click the end point of the area." msgstr "Нажмите на конечную точку области." #: appCommon/Common.py:358 appCommon/Common.py:460 -#: appTools/ToolCopperThieving.py:388 appTools/ToolIsolation.py:2354 +#: appTools/ToolCopperThieving.py:391 appTools/ToolIsolation.py:2354 #: appTools/ToolIsolation.py:2406 appTools/ToolNCC.py:1445 #: appTools/ToolNCC.py:1497 appTools/ToolPaint.py:1225 #: appTools/ToolPaint.py:1276 @@ -503,7 +503,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2121 +#: appTools/ToolCalculators.py:280 appTools/ToolCutOut.py:2121 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Глубина резания" @@ -792,7 +792,7 @@ msgstr "" #: appGUI/ObjectUI.py:1681 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:307 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 @@ -800,8 +800,8 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1241 appTools/ToolCopperThieving.py:1493 -#: appTools/ToolCorners.py:584 appTools/ToolCutOut.py:2174 +#: appTools/ToolCopperThieving.py:1284 appTools/ToolCopperThieving.py:1560 +#: appTools/ToolCorners.py:587 appTools/ToolCutOut.py:2174 #: appTools/ToolFiducials.py:815 appTools/ToolInvertGerber.py:231 #: appTools/ToolInvertGerber.py:239 appTools/ToolNCC.py:4159 #: appTools/ToolNCC.py:4262 @@ -815,7 +815,7 @@ msgstr "Отступ" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCorners.py:586 +#: appTools/ToolCopperThieving.py:1286 appTools/ToolCorners.py:589 #: appTools/ToolFiducials.py:817 appTools/ToolNCC.py:4161 #: appTools/ToolNCC.py:4264 msgid "Bounding box margin." @@ -1313,7 +1313,7 @@ msgstr "" #: appDatabase.py:1223 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2237 +#: appTools/ToolCalculators.py:289 appTools/ToolCutOut.py:2237 msgid "Tool Diameter" msgstr "Диаметр инструмента" @@ -1323,12 +1323,12 @@ msgid "The drill hole diameter when doing mouse bites." msgstr "Диаметр сверлильного отверстия при запуске \"мыши кусаются\"." #: appDatabase.py:1236 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:164 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:193 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:222 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1364 appTools/ToolCopperThieving.py:1404 -#: appTools/ToolCopperThieving.py:1444 appTools/ToolCutOut.py:2249 +#: appTools/ToolCopperThieving.py:1431 appTools/ToolCopperThieving.py:1471 +#: appTools/ToolCopperThieving.py:1511 appTools/ToolCutOut.py:2249 msgid "Spacing" msgstr "Промежуток" @@ -1443,7 +1443,7 @@ msgstr "" "в базе данных." #: appDatabase.py:1367 appGUI/MainGUI.py:1553 -#: appGUI/preferences/PreferencesUIManager.py:946 app_Main.py:2500 +#: appGUI/preferences/PreferencesUIManager.py:949 app_Main.py:2500 #: app_Main.py:3527 app_Main.py:4471 app_Main.py:4724 app_Main.py:8998 msgid "Cancel" msgstr "Отмена" @@ -1453,10 +1453,10 @@ msgstr "Отмена" #: appEditors/appGCodeEditor.py:781 appGUI/ObjectUI.py:163 #: appGUI/ObjectUI.py:174 appTool.py:280 appTool.py:291 #: appTools/ToolAlignObjects.py:517 appTools/ToolAlignObjects.py:528 -#: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 +#: appTools/ToolCalculators.py:519 appTools/ToolCalculators.py:530 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1635 appTools/ToolCopperThieving.py:1646 -#: appTools/ToolCorners.py:672 appTools/ToolCorners.py:683 +#: appTools/ToolCopperThieving.py:1716 appTools/ToolCopperThieving.py:1727 +#: appTools/ToolCorners.py:675 appTools/ToolCorners.py:686 #: appTools/ToolCutOut.py:2454 appTools/ToolCutOut.py:2465 #: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:975 #: appTools/ToolDistance.py:660 appTools/ToolDistance.py:671 @@ -1489,10 +1489,10 @@ msgstr "Отредактированное значение находится #: appEditors/appGCodeEditor.py:783 appGUI/ObjectUI.py:169 #: appGUI/ObjectUI.py:176 appTool.py:286 appTool.py:293 #: appTools/ToolAlignObjects.py:523 appTools/ToolAlignObjects.py:530 -#: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 +#: appTools/ToolCalculators.py:525 appTools/ToolCalculators.py:532 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1641 appTools/ToolCopperThieving.py:1648 -#: appTools/ToolCorners.py:678 appTools/ToolCorners.py:685 +#: appTools/ToolCopperThieving.py:1722 appTools/ToolCopperThieving.py:1729 +#: appTools/ToolCorners.py:681 appTools/ToolCorners.py:688 #: appTools/ToolCutOut.py:2460 appTools/ToolCutOut.py:2467 #: appTools/ToolDblSided.py:970 appTools/ToolDblSided.py:977 #: appTools/ToolDistance.py:666 appTools/ToolDistance.py:673 @@ -2116,7 +2116,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4012 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:83 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:571 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:574 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Длина" @@ -2281,10 +2281,10 @@ msgstr "Шрифт" #: appEditors/AppGeoEditor.py:316 appEditors/AppGerberEditor.py:2491 #: appEditors/AppGerberEditor.py:3947 appGUI/ObjectUI.py:316 #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1391 appTools/ToolCopperThieving.py:1431 +#: appTools/ToolCopperThieving.py:1458 appTools/ToolCopperThieving.py:1498 #: appTools/ToolFiducials.py:799 appTools/ToolPunchGerber.py:1088 msgid "Size" msgstr "Размер" @@ -2438,7 +2438,7 @@ msgstr "Источник" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:256 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appTools/ToolIsolation.py:3381 appTools/ToolNCC.py:4323 -#: appTools/ToolPaint.py:3104 appTools/ToolTransform.py:557 defaults.py:571 +#: appTools/ToolPaint.py:3104 appTools/ToolTransform.py:557 defaults.py:572 msgid "Selection" msgstr "Выбор" @@ -2473,10 +2473,12 @@ msgstr "Точка привязки в формате X,Y." #: appEditors/AppGeoEditor.py:671 appEditors/AppGerberEditor.py:2586 #: appEditors/AppGerberEditor.py:5352 appGUI/ObjectUI.py:2375 -#: appTools/ToolDblSided.py:709 appTools/ToolDblSided.py:897 -#: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 -#: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1204 -#: appTools/ToolTransform.py:572 app_Main.py:6294 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:288 +#: appTools/ToolCopperThieving.py:1666 appTools/ToolDblSided.py:709 +#: appTools/ToolDblSided.py:897 appTools/ToolNCC.py:63 +#: appTools/ToolPaint.py:137 appTools/ToolSolderPaste.py:160 +#: appTools/ToolSolderPaste.py:1204 appTools/ToolTransform.py:572 +#: app_Main.py:6294 msgid "Add" msgstr "Добавить" @@ -3169,7 +3171,7 @@ msgstr "Редактор Geometry" #: appEditors/AppGerberEditor.py:3947 appEditors/appGCodeEditor.py:687 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2034 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: appTools/ToolCorners.py:543 appTools/ToolCutOut.py:2030 +#: appTools/ToolCorners.py:546 appTools/ToolCutOut.py:2030 #: appTools/ToolDblSided.py:522 appTools/ToolPunchGerber.py:1088 #: appTools/ToolTransform.py:579 msgid "Type" @@ -3634,7 +3636,7 @@ msgstr "Верхней части порога" #: appEditors/AppGerberEditor.py:2710 msgid "" "The threshold value, all areas less than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" "Пороговое значение, всех участков за вычетом отмеченных.\n" "Может иметь значение от 0,0000 до 9999,9999" @@ -3646,7 +3648,7 @@ msgstr "Площадь НИЖНЕГО порога" #: appEditors/AppGerberEditor.py:2719 msgid "" "The threshold value, all areas more than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" "Пороговое значение, всех участков больше отмеченых.\n" "Может иметь значение от 0,0000 до 9999,9999" @@ -3815,9 +3817,9 @@ msgstr "" "Нет отверстий для создания буфера. Выберите хотя бы одно отверстие и " "повторите попытку." -#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:303 -#: appTools/ToolCopperThieving.py:898 appTools/ToolCopperThieving.py:1061 -#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:410 +#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:306 +#: appTools/ToolCopperThieving.py:907 appTools/ToolCopperThieving.py:1104 +#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:413 #: appTools/ToolCutOut.py:779 appTools/ToolCutOut.py:905 #: appTools/ToolCutOut.py:1128 appTools/ToolCutOut.py:1278 #: appTools/ToolFiducials.py:240 appTools/ToolFiducials.py:492 @@ -4002,8 +4004,8 @@ msgstr "Редактор G Код" #: appEditors/appGCodeEditor.py:687 appEditors/appGCodeEditor.py:698 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2034 appGUI/ObjectUI.py:2044 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1351 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: appTools/ToolCopperThieving.py:1418 msgid "Dia" msgstr "Диаметр" @@ -4330,8 +4332,8 @@ msgstr "Создать" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appObjects/ObjectCollection.py:234 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2027 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2027 #: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:771 #: appTools/ToolFilm.py:933 appTools/ToolFilm.py:956 appTools/ToolImage.py:135 #: appTools/ToolImage.py:190 appTools/ToolIsolation.py:3351 @@ -4359,8 +4361,8 @@ msgstr "Создаёт новый объект Geometry." #: appTools/ToolAlignObjects.py:434 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:891 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2026 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2026 #: appTools/ToolDblSided.py:528 appTools/ToolDblSided.py:769 #: appTools/ToolFilm.py:932 appTools/ToolFilm.py:955 appTools/ToolImage.py:116 #: appTools/ToolImage.py:137 appTools/ToolImage.py:190 @@ -4368,7 +4370,7 @@ msgstr "Создаёт новый объект Geometry." #: appTools/ToolNCC.py:3873 appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 #: appTools/ToolPanelize.py:148 appTools/ToolPanelize.py:168 #: appTools/ToolPanelize.py:716 appTools/ToolPanelize.py:810 -#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 defaults.py:572 +#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 defaults.py:573 msgid "Gerber" msgstr "Gerber" @@ -4388,8 +4390,8 @@ msgstr "Создаёт новый объект Gerber." #: appTools/ToolAlignObjects.py:435 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:892 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolDblSided.py:530 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolDblSided.py:530 #: appTools/ToolDblSided.py:728 appTools/ToolDblSided.py:770 #: appTools/ToolFilm.py:1211 appTools/ToolIsolation.py:3404 #: appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 @@ -4595,7 +4597,7 @@ msgstr "Импортировать настройки из файла" msgid "Export Preferences to file" msgstr "Экспортировать настройки в файл" -#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1188 +#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1191 msgid "Save Preferences" msgstr "Сохранить настройки" @@ -4752,10 +4754,10 @@ msgid "Q" msgstr "Q" #: appGUI/MainGUI.py:454 appGUI/MainGUI.py:1263 -#: appGUI/preferences/PreferencesUIManager.py:913 -#: appGUI/preferences/PreferencesUIManager.py:1006 -#: appGUI/preferences/PreferencesUIManager.py:1034 -#: appGUI/preferences/PreferencesUIManager.py:1139 app_Main.py:5739 +#: appGUI/preferences/PreferencesUIManager.py:916 +#: appGUI/preferences/PreferencesUIManager.py:1009 +#: appGUI/preferences/PreferencesUIManager.py:1037 +#: appGUI/preferences/PreferencesUIManager.py:1142 app_Main.py:5739 #: app_Main.py:5744 app_Main.py:5759 msgid "Preferences" msgstr "Настройки" @@ -5447,7 +5449,7 @@ msgid "QRCode Tool" msgstr "QR код" #: appGUI/MainGUI.py:1079 appGUI/MainGUI.py:2248 appGUI/MainGUI.py:4475 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1168 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1211 msgid "Copper Thieving Tool" msgstr "Copper Thieving" @@ -5471,7 +5473,7 @@ msgid "Invert Gerber Tool" msgstr "Инверсия Gerber" #: appGUI/MainGUI.py:1090 appGUI/MainGUI.py:2259 appGUI/MainGUI.py:4478 -#: appTools/ToolCorners.py:452 +#: appTools/ToolCorners.py:455 msgid "Corner Markers Tool" msgstr "Угловые маркеры" @@ -5621,8 +5623,8 @@ msgstr "Проект" msgid "Plot Area" msgstr "Рабочая область" -#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1200 -#: appTools/ToolCorners.py:472 appTools/ToolEtchCompensation.py:291 +#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1243 +#: appTools/ToolCorners.py:475 appTools/ToolEtchCompensation.py:291 #: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:902 #: appTools/ToolInvertGerber.py:212 appTools/ToolIsolation.py:2999 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:1010 @@ -5786,14 +5788,14 @@ msgstr "Папка настроек FlatCAM открыта." msgid "Are you sure you want to delete the GUI Settings? \n" msgstr "Вы уверены, что хотите сбросить настройки интерфейса?\n" -#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:945 -#: appGUI/preferences/PreferencesUIManager.py:1192 appTranslation.py:111 +#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:948 +#: appGUI/preferences/PreferencesUIManager.py:1195 appTranslation.py:111 #: appTranslation.py:213 app_Main.py:2498 app_Main.py:3525 app_Main.py:5980 #: app_Main.py:8996 msgid "Yes" msgstr "Да" -#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1193 +#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1196 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:49 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 @@ -6508,8 +6510,8 @@ msgstr "Отрисовка" #: appGUI/ObjectUI.py:202 appGUI/ObjectUI.py:552 #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1321 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:132 +#: appTools/ToolCopperThieving.py:1388 msgid "Solid" msgstr "Сплошной" @@ -8217,41 +8219,41 @@ msgstr "" "Не удалось создать примечания из-за разницы между количеством текстовых " "элементов и количеством текстовых позиций." -#: appGUI/preferences/PreferencesUIManager.py:920 +#: appGUI/preferences/PreferencesUIManager.py:923 msgid "Preferences applied." msgstr "Настройки применяются." -#: appGUI/preferences/PreferencesUIManager.py:940 +#: appGUI/preferences/PreferencesUIManager.py:943 msgid "Are you sure you want to continue?" msgstr "Вы уверены что хотите продолжить?" -#: appGUI/preferences/PreferencesUIManager.py:941 +#: appGUI/preferences/PreferencesUIManager.py:944 msgid "Application will restart" msgstr "Приложение будет перезапущено" -#: appGUI/preferences/PreferencesUIManager.py:1039 +#: appGUI/preferences/PreferencesUIManager.py:1042 msgid "Preferences closed without saving." msgstr "Настройки закрыты без сохранения." -#: appGUI/preferences/PreferencesUIManager.py:1051 +#: appGUI/preferences/PreferencesUIManager.py:1054 msgid "Preferences default values are restored." msgstr "Настройки по умолчанию восстановлены." -#: appGUI/preferences/PreferencesUIManager.py:1082 app_Main.py:2833 +#: appGUI/preferences/PreferencesUIManager.py:1085 app_Main.py:2833 #: app_Main.py:9670 msgid "Failed to write defaults to file." msgstr "Не удалось записать значения по умолчанию в файл." -#: appGUI/preferences/PreferencesUIManager.py:1086 -#: appGUI/preferences/PreferencesUIManager.py:1201 +#: appGUI/preferences/PreferencesUIManager.py:1089 +#: appGUI/preferences/PreferencesUIManager.py:1204 msgid "Preferences saved." msgstr "Настройки сохранены." -#: appGUI/preferences/PreferencesUIManager.py:1136 +#: appGUI/preferences/PreferencesUIManager.py:1139 msgid "Preferences edited but not saved." msgstr "Настройки отредактированы, но не сохранены." -#: appGUI/preferences/PreferencesUIManager.py:1186 +#: appGUI/preferences/PreferencesUIManager.py:1189 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -8289,8 +8291,8 @@ msgstr "CNC Job дополнительные" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1219 -#: appTools/ToolCorners.py:536 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1262 +#: appTools/ToolCorners.py:539 appTools/ToolEtchCompensation.py:356 #: appTools/ToolFiducials.py:792 appTools/ToolInvertGerber.py:225 #: appTools/ToolQRCode.py:702 msgid "Parameters" @@ -8695,7 +8697,7 @@ msgstr "Единицы измерения, используемые в файл #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:187 appTools/ToolPcbWizard.py:453 +#: appTools/ToolCalculators.py:227 appTools/ToolPcbWizard.py:453 msgid "INCH" msgstr "ДЮЙМЫ" @@ -8704,7 +8706,7 @@ msgstr "ДЮЙМЫ" #: appGUI/preferences/general/GeneralAppPrefGroupUI.py:43 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 -#: appTools/ToolCalculators.py:188 appTools/ToolPcbWizard.py:454 +#: appTools/ToolCalculators.py:228 appTools/ToolPcbWizard.py:454 msgid "MM" msgstr "MM" @@ -9110,8 +9112,10 @@ msgstr "" "- Оба -> будут фрезеровать как отверстия, так и пазы или все, что доступно" #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:293 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: appTools/ToolFilm.py:1109 appTools/ToolMilling.py:1771 +#: appTools/ToolCopperThieving.py:1671 appTools/ToolFilm.py:1109 +#: appTools/ToolMilling.py:1771 msgid "Both" msgstr "Обе" @@ -10298,8 +10302,8 @@ msgid "\"Follow\"" msgstr "\"Следовать\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:568 -#: appTools/ToolCopperThieving.py:774 appTools/ToolCopperThieving.py:787 +#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:778 appTools/ToolCopperThieving.py:791 #: appTools/ToolIsolation.py:1360 appTools/ToolNCC.py:1807 #: appTools/ToolNCC.py:1834 appTools/ToolNCC.py:1942 appTools/ToolNCC.py:1955 #: appTools/ToolNCC.py:2857 appTools/ToolNCC.py:2962 appTools/ToolNCC.py:2977 @@ -10323,15 +10327,17 @@ msgstr "" "<< ПРЕДУПРЕЖДЕНИЕ >>: не меняйте это, если не знаете, что делаете !!!" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:71 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:296 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:844 appTools/ToolFilm.py:1106 -#: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 -#: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 -#: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 +#: appTools/ToolCopperThieving.py:1674 appTools/ToolFiducials.py:844 +#: appTools/ToolFilm.py:1106 appTools/ToolProperties.py:449 +#: appTools/ToolProperties.py:452 appTools/ToolProperties.py:455 +#: appTools/ToolProperties.py:483 appTools/ToolProperties.py:490 +#: appTools/ToolProperties.py:493 msgid "None" msgstr "Нет" @@ -10609,8 +10615,8 @@ msgid "Number of steps (lines) used to interpolate circles." msgstr "Количество шагов (линий), используемых для интерполяции окружностей." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolCopperThieving.py:1563 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:274 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolCopperThieving.py:1630 msgid "Clearance" msgstr "Зазор" @@ -10624,37 +10630,49 @@ msgstr "" "(заливка полигона может быть разделена на несколько полигонов)\n" "и медными трассами в Gerber файле." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:85 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: appTools/ToolCalculators.py:342 appTools/ToolCalculators.py:385 +#: appTools/ToolCopperThieving.py:1298 +msgid "Area" +msgstr "Площадь" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appTools/ToolCopperThieving.py:1300 +msgid "Thieving areas with area less then this value will not be added." +msgstr "Зоны грабежа с площадью меньше этого значения не добавляются." + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:99 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1255 appTools/ToolNCC.py:4319 +#: appTools/ToolCopperThieving.py:1321 appTools/ToolNCC.py:4319 msgid "Itself" msgstr "Как есть" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:100 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1256 appTools/ToolIsolation.py:3391 +#: appTools/ToolCopperThieving.py:1322 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:4319 appTools/ToolPaint.py:3116 msgid "Area Selection" msgstr "Выбор области" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1257 appTools/ToolDblSided.py:761 +#: appTools/ToolCopperThieving.py:1323 appTools/ToolDblSided.py:761 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:4319 #: appTools/ToolPaint.py:3116 tclCommands/TclCommandPaint.py:166 msgid "Reference Object" msgstr "Ссылочный объект" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1259 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:103 +#: appTools/ToolCopperThieving.py:1325 msgid "Reference:" msgstr "Ссылка:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:105 msgid "" "- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -10669,29 +10687,29 @@ msgstr "" "- 'Референсный объект' - будет выполнять Copper Thieving в области указанной " "другим объектом." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:114 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1301 appTools/ToolExtractDrills.py:495 +#: appTools/ToolCopperThieving.py:1372 appTools/ToolExtractDrills.py:495 #: appTools/ToolExtractDrills.py:628 appTools/ToolPunchGerber.py:1068 #: appTools/ToolPunchGerber.py:1240 msgid "Rectangular" msgstr "Прямоугольник" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1302 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:115 +#: appTools/ToolCopperThieving.py:1373 msgid "Minimal" msgstr "Минимальная" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1304 appTools/ToolFilm.py:958 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:117 +#: appTools/ToolCopperThieving.py:1366 appTools/ToolFilm.py:958 msgid "Box Type:" msgstr "Тип рамки:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1306 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: appTools/ToolCopperThieving.py:1368 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10699,28 +10717,28 @@ msgstr "" "- 'Прямоугольная' - ограничительная рамка будет иметь прямоугольную форму.\n" "- 'Минимальная' - ограничительная рамка будет повторять форму корпуса." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1322 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:133 +#: appTools/ToolCopperThieving.py:1389 msgid "Dots Grid" msgstr "Сетка точек" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1323 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: appTools/ToolCopperThieving.py:1390 msgid "Squares Grid" msgstr "Сетка квадратов" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1324 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:135 +#: appTools/ToolCopperThieving.py:1391 msgid "Lines Grid" msgstr "Сетка линий" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1326 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137 +#: appTools/ToolCopperThieving.py:1393 msgid "Fill Type:" msgstr "Тип заполнения:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1328 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:139 +#: appTools/ToolCopperThieving.py:1395 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10732,58 +10750,58 @@ msgstr "" "- 'Сетка квадратов' - пустая площадь будет заполнена сеткой квадратов.\n" "- 'Сетка линий' - пустая область будет заполнена сеткой линий." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1347 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:147 +#: appTools/ToolCopperThieving.py:1414 msgid "Dots Grid Parameters" msgstr "Параметры точки сетки" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1353 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: appTools/ToolCopperThieving.py:1420 msgid "Dot diameter in Dots Grid." msgstr "Диаметр точки в сетке точек." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1366 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:166 +#: appTools/ToolCopperThieving.py:1433 msgid "Distance between each two dots in Dots Grid." msgstr "Расстояние между каждыми двумя точками в сетке точек." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1387 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:176 +#: appTools/ToolCopperThieving.py:1454 msgid "Squares Grid Parameters" msgstr "Параметры квадратной сетки" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1393 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: appTools/ToolCopperThieving.py:1460 msgid "Square side size in Squares Grid." msgstr "Размер стороны квадрата в сетке квадратов." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1406 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:195 +#: appTools/ToolCopperThieving.py:1473 msgid "Distance between each two squares in Squares Grid." msgstr "Расстояние между каждыми двумя квадратами в сетке квадратов ." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1427 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:205 +#: appTools/ToolCopperThieving.py:1494 msgid "Lines Grid Parameters" msgstr "Параметры линий сетки" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1433 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: appTools/ToolCopperThieving.py:1500 msgid "Line thickness size in Lines Grid." msgstr "Размеры линий по толщине в сетке линий." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1446 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:224 +#: appTools/ToolCopperThieving.py:1513 msgid "Distance between each two lines in Lines Grid." msgstr "Расстояние между двумя линиями в сетке линий." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1485 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:234 +#: appTools/ToolCopperThieving.py:1552 msgid "Robber Bar Parameters" msgstr "Параметры Robber Bar" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1487 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:236 +#: appTools/ToolCopperThieving.py:1554 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10791,35 +10809,35 @@ msgstr "" "Параметры, используемые для robber bar.\n" "Robber ba = медная рамка для облегчения нанесения покрытия на отверстия." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1495 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: appTools/ToolCopperThieving.py:1562 msgid "Bounding box margin for robber bar." msgstr "Граница рамки." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:255 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appTools/ToolCopperThieving.py:1506 appTools/ToolCorners.py:557 +#: appTools/ToolCopperThieving.py:1573 appTools/ToolCorners.py:560 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Толщина" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1508 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:257 +#: appTools/ToolCopperThieving.py:1575 msgid "The robber bar thickness." msgstr "Толщина robber bar." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1540 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:267 +#: appTools/ToolCopperThieving.py:1607 msgid "Pattern Plating Mask" msgstr "Рисунок гальванической маски" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1542 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:269 +#: appTools/ToolCopperThieving.py:1609 msgid "Generate a mask for pattern plating." msgstr "Создание рисунка гальванической маски." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1565 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:276 +#: appTools/ToolCopperThieving.py:1632 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10827,6 +10845,22 @@ msgstr "" "Расстояние между возможными элементами copper thieving\n" "и/или robber bar и фактическими отверстиями в маске." +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:290 +#: appTools/ToolCopperThieving.py:1668 +msgid "Choose which additional geometry to include, if available." +msgstr "Выберите, какую дополнительную геометрию включить, если она доступна." + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:294 +#: appTools/ToolCopperThieving.py:499 appTools/ToolCopperThieving.py:503 +#: appTools/ToolCopperThieving.py:565 appTools/ToolCopperThieving.py:1672 +msgid "Thieving" +msgstr "Thieving" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:295 +#: appTools/ToolCopperThieving.py:1673 +msgid "Robber bar" +msgstr "Robber Bar" + #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 msgid "Calibration Tool Options" msgstr "Параметры калибровки" @@ -10836,7 +10870,7 @@ msgstr "Параметры калибровки" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1221 appTools/ToolCorners.py:538 +#: appTools/ToolCopperThieving.py:1264 appTools/ToolCorners.py:541 #: appTools/ToolFiducials.py:794 msgid "Parameters used for this tool." msgstr "Параметры, используемые для этого инструмента." @@ -11181,7 +11215,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:49 -#: appTools/ToolCorners.py:550 appTools/ToolFiducials.py:864 +#: appTools/ToolCorners.py:553 appTools/ToolFiducials.py:864 msgid "Cross" msgstr "Крест" @@ -11739,7 +11773,7 @@ msgid "Calculators Tool Options" msgstr "Калькулятор" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: appTools/ToolCalculators.py:152 +#: appTools/ToolCalculators.py:191 msgid "V-Shape Tool Calculator" msgstr "Калькулятор V-образного инструмента" @@ -11754,12 +11788,12 @@ msgstr "" "глубину резания в качестве параметров." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: appTools/ToolCalculators.py:220 +#: appTools/ToolCalculators.py:260 msgid "Tip Diameter" msgstr "Диаметр наконечника" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: appTools/ToolCalculators.py:228 +#: appTools/ToolCalculators.py:268 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11768,7 +11802,7 @@ msgstr "" "Это указано производителем." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: appTools/ToolCalculators.py:231 +#: appTools/ToolCalculators.py:271 msgid "Tip Angle" msgstr "Угол наконечника" @@ -11789,12 +11823,12 @@ msgstr "" "В объекте CNCJob это параметр \"Глубина резания\"." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:154 +#: appTools/ToolCalculators.py:193 msgid "ElectroPlating Calculator" msgstr "Калькулятор электронных плат" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: appTools/ToolCalculators.py:284 +#: appTools/ToolCalculators.py:324 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium " @@ -11806,32 +11840,37 @@ msgstr "" "кальция или хлорид палладия." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: appTools/ToolCalculators.py:293 +#: appTools/ToolCalculators.py:349 msgid "Board Length" msgstr "Длина платы" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: appTools/ToolCalculators.py:299 +#: appTools/ToolCalculators.py:350 msgid "This is the board length. In centimeters." msgstr "Это длина платы. В сантиметрах." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: appTools/ToolCalculators.py:301 +#: appTools/ToolCalculators.py:367 msgid "Board Width" msgstr "Ширина платы" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: appTools/ToolCalculators.py:307 +#: appTools/ToolCalculators.py:368 msgid "This is the board width.In centimeters." msgstr "Это ширина платы. В сантиметрах." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: appTools/ToolCalculators.py:309 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:120 +#: appTools/ToolCalculators.py:386 +msgid "This is the board area." +msgstr "Это область печатной платы." + +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:130 +#: appTools/ToolCalculators.py:408 msgid "Current Density" msgstr "Текущая плотность" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: appTools/ToolCalculators.py:316 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:136 +#: appTools/ToolCalculators.py:409 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -11839,13 +11878,13 @@ msgstr "" "Плотность тока для прохождения через плату. \n" "В Амперах на квадратный метр АЧС." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: appTools/ToolCalculators.py:319 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:142 +#: appTools/ToolCalculators.py:428 msgid "Copper Growth" msgstr "Медный слой" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: appTools/ToolCalculators.py:326 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:148 +#: appTools/ToolCalculators.py:429 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -11858,32 +11897,32 @@ msgid "Corner Markers Options" msgstr "Параметры угловых маркеров" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:545 +#: appTools/ToolCorners.py:548 msgid "Shape of the marker." msgstr "Форма маркера." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:48 -#: appTools/ToolCorners.py:549 +#: appTools/ToolCorners.py:552 msgid "Semi-Cross" msgstr "Полукрест" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:559 +#: appTools/ToolCorners.py:562 msgid "The thickness of the line that makes the corner marker." msgstr "Толщина линии, обозначающей угол." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:85 -#: appTools/ToolCorners.py:573 +#: appTools/ToolCorners.py:576 msgid "The length of the line that makes the corner marker." msgstr "Длина линии, которая делает угловой маркер." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:96 -#: appTools/ToolCorners.py:625 appTools/ToolDblSided.py:827 +#: appTools/ToolCorners.py:628 appTools/ToolDblSided.py:827 msgid "Drill Dia" msgstr "Диаметр Сверла" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:98 -#: appTools/ToolCorners.py:627 +#: appTools/ToolCorners.py:630 msgid "Drill Diameter" msgstr "Диаметр сверла" @@ -12237,18 +12276,18 @@ msgstr "" "Это может быть одна из четырех точек геометрии ограничительной рамки." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:509 appTools/ToolFiducials.py:723 +#: appTools/ToolCorners.py:512 appTools/ToolFiducials.py:723 #: appTools/ToolFilm.py:1069 msgid "Bottom Left" msgstr "Нижний левый" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:501 appTools/ToolFilm.py:1070 +#: appTools/ToolCorners.py:504 appTools/ToolFilm.py:1070 msgid "Top Left" msgstr "Верхний левый" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:513 appTools/ToolFilm.py:1071 +#: appTools/ToolCorners.py:516 appTools/ToolFilm.py:1071 msgid "Bottom Right" msgstr "Нижний правый" @@ -12530,8 +12569,8 @@ msgstr "Последовательный" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:452 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1072 -#: appTools/ToolCorners.py:416 appTools/ToolFiducials.py:563 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1115 +#: appTools/ToolCorners.py:419 appTools/ToolFiducials.py:563 #: appTools/ToolMove.py:229 appTools/ToolQRCode.py:466 app_Main.py:4813 msgid "Plotting" msgstr "Прорисовка" @@ -13597,7 +13636,7 @@ msgstr "Генерация кода ЧПУ" msgid "CNCjob created" msgstr "CNCjob создан" -#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:586 +#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:593 #: appTools/ToolFilm.py:639 appTools/ToolFilm.py:883 #: appTools/ToolIsolation.py:930 appTools/ToolNCC.py:868 #: appTools/ToolOptimal.py:145 appTools/ToolPanelize.py:613 @@ -13721,7 +13760,8 @@ msgstr "Масштабирование..." msgid "Skewing..." msgstr "Наклон..." -#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:152 +#: appObjects/FlatCAMObj.py:487 appTools/ToolCalculators.py:341 +#: appTools/ToolProperties.py:152 msgid "Dimensions" msgstr "Размеры" @@ -14091,9 +14131,9 @@ msgstr "" "Если используется только одна точка, то это предполагает перевод.\n" "Если используются две точки, то предполагается их трансляция и вращение." -#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1617 -#: appTools/ToolCorners.py:654 appTools/ToolCutOut.py:2411 +#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:501 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1698 +#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2411 #: appTools/ToolDblSided.py:946 appTools/ToolDrilling.py:2649 #: appTools/ToolEtchCompensation.py:459 appTools/ToolExtractDrills.py:699 #: appTools/ToolFiducials.py:962 appTools/ToolFilm.py:1387 @@ -14107,9 +14147,9 @@ msgstr "" msgid "Reset Tool" msgstr "Сбросить настройки инструмента" -#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1620 -#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2414 +#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:504 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1701 +#: appTools/ToolCorners.py:660 appTools/ToolCutOut.py:2414 #: appTools/ToolDblSided.py:949 appTools/ToolDrilling.py:2652 #: appTools/ToolEtchCompensation.py:462 appTools/ToolExtractDrills.py:702 #: appTools/ToolFiducials.py:965 appTools/ToolFilm.py:1390 @@ -14123,27 +14163,27 @@ msgstr "Сбросить настройки инструмента" msgid "Will reset the tool parameters." msgstr "Сброс параметров инструмента." -#: appTools/ToolCalculators.py:77 +#: appTools/ToolCalculators.py:79 msgid "Calc. Tool" msgstr "Калькулятор" -#: appTools/ToolCalculators.py:151 +#: appTools/ToolCalculators.py:190 msgid "Calculators" msgstr "Калькуляторы" -#: appTools/ToolCalculators.py:153 +#: appTools/ToolCalculators.py:192 msgid "Units Calculator" msgstr "Калькулятор единиц" -#: appTools/ToolCalculators.py:196 +#: appTools/ToolCalculators.py:236 msgid "Here you enter the value to be converted from INCH to MM" msgstr "Здесь вы вводите значение, которое будет конвертировано из ДЮЙМОВ в MM" -#: appTools/ToolCalculators.py:201 +#: appTools/ToolCalculators.py:241 msgid "Here you enter the value to be converted from MM to INCH" msgstr "Здесь вы вводите значение, которое будет конвертировано из MM в ДЮЙМЫ" -#: appTools/ToolCalculators.py:237 +#: appTools/ToolCalculators.py:277 msgid "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." @@ -14151,7 +14191,7 @@ msgstr "" "Это угол наклона кончика инструмента.\n" "Это указано производителем." -#: appTools/ToolCalculators.py:246 +#: appTools/ToolCalculators.py:286 msgid "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." @@ -14159,7 +14199,7 @@ msgstr "" "Это глубина для того чтобы отрезать в материал.\n" "В работе с ЧПУ-это параметр, CutZ." -#: appTools/ToolCalculators.py:254 +#: appTools/ToolCalculators.py:294 msgid "" "This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" @@ -14169,11 +14209,11 @@ msgstr "" "Секция FlatCAM Gerber.\n" "В разделе Работа с ЧПУ он называется > инструмент dia<." -#: appTools/ToolCalculators.py:265 appTools/ToolCalculators.py:361 +#: appTools/ToolCalculators.py:305 appTools/ToolCalculators.py:490 msgid "Calculate" msgstr "Рассчитать" -#: appTools/ToolCalculators.py:268 +#: appTools/ToolCalculators.py:309 msgid "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " @@ -14181,11 +14221,28 @@ msgstr "" "Рассчитывает любую глубину резания или эффективный диаметр инструмента,\n" " в зависимости от того, что желательно и что известно. " -#: appTools/ToolCalculators.py:331 +#: appTools/ToolCalculators.py:336 +msgid "Area Calculation" +msgstr "Расчет площади" + +#: appTools/ToolCalculators.py:338 +msgid "Choose how to calculate the board area." +msgstr "Выберите способ расчета площади печатной платы." + +#: appTools/ToolCalculators.py:356 appTools/ToolCalculators.py:374 +#: appTools/ToolCalculators.py:392 +msgid "cm" +msgstr "cm" + +#: appTools/ToolCalculators.py:437 +msgid "um" +msgstr "um" + +#: appTools/ToolCalculators.py:448 msgid "Current Value" msgstr "Текущее значение" -#: appTools/ToolCalculators.py:338 +#: appTools/ToolCalculators.py:449 msgid "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." @@ -14193,11 +14250,11 @@ msgstr "" "Это текущее значение интенсивности \n" "быть установленным на электропитание. В Усилителях." -#: appTools/ToolCalculators.py:342 +#: appTools/ToolCalculators.py:469 msgid "Time" msgstr "Время" -#: appTools/ToolCalculators.py:349 +#: appTools/ToolCalculators.py:470 msgid "" "This is the calculated time required for the procedure.\n" "In minutes." @@ -14205,7 +14262,7 @@ msgstr "" "Это расчетное время, необходимое для процедуры.\n" "В минутах." -#: appTools/ToolCalculators.py:364 +#: appTools/ToolCalculators.py:493 msgid "" "Calculate the current intensity value and the procedure time,\n" "depending on the parameters above" @@ -14514,45 +14571,45 @@ msgstr "" "Корректировка (масштабирование и/или перекос) объектов\n" "с вышеперечисленными факторами." -#: appTools/ToolCopperThieving.py:184 appTools/ToolCopperThieving.py:209 +#: appTools/ToolCopperThieving.py:186 appTools/ToolCopperThieving.py:211 msgid "Lines Grid works only for 'itself' reference ..." msgstr "Сетка линий работает только для ссылки 'Как есть'..." -#: appTools/ToolCopperThieving.py:195 +#: appTools/ToolCopperThieving.py:197 msgid "Solid fill selected." msgstr "Выбрана сплошная заливка." -#: appTools/ToolCopperThieving.py:200 +#: appTools/ToolCopperThieving.py:202 msgid "Dots grid fill selected." msgstr "Выбрана заливка сетки точек." -#: appTools/ToolCopperThieving.py:205 +#: appTools/ToolCopperThieving.py:207 msgid "Squares grid fill selected." msgstr "Выбрано заполнение сеткой квадратов." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:324 -#: appTools/ToolCopperThieving.py:936 appTools/ToolCorners.py:127 -#: appTools/ToolCorners.py:353 appTools/ToolDblSided.py:307 +#: appTools/ToolCopperThieving.py:229 appTools/ToolCopperThieving.py:327 +#: appTools/ToolCopperThieving.py:946 appTools/ToolCorners.py:127 +#: appTools/ToolCorners.py:350 appTools/ToolDblSided.py:307 #: appTools/ToolExtractDrills.py:141 appTools/ToolFiducials.py:191 #: appTools/ToolFiducials.py:482 appTools/ToolOptimal.py:138 #: appTools/ToolPunchGerber.py:381 appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Нет загруженного Gerber объекта ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 +#: appTools/ToolCopperThieving.py:242 appTools/ToolCopperThieving.py:847 msgid "Append geometry" msgstr "Добавить геометрию" -#: appTools/ToolCopperThieving.py:294 appTools/ToolCopperThieving.py:889 -#: appTools/ToolCopperThieving.py:1048 +#: appTools/ToolCopperThieving.py:297 appTools/ToolCopperThieving.py:898 +#: appTools/ToolCopperThieving.py:1091 msgid "Append source file" msgstr "Добавить исходный файл" -#: appTools/ToolCopperThieving.py:307 appTools/ToolCopperThieving.py:902 +#: appTools/ToolCopperThieving.py:310 appTools/ToolCopperThieving.py:911 msgid "Copper Thieving Tool done." msgstr "Copper Thieving завершён." -#: appTools/ToolCopperThieving.py:334 appTools/ToolCopperThieving.py:354 +#: appTools/ToolCopperThieving.py:337 appTools/ToolCopperThieving.py:357 #: appTools/ToolCutOut.py:551 appTools/ToolCutOut.py:927 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 @@ -14568,70 +14625,65 @@ msgstr "Copper Thieving завершён." msgid "Could not retrieve object" msgstr "Не удалось получить объект" -#: appTools/ToolCopperThieving.py:382 +#: appTools/ToolCopperThieving.py:385 msgid "Click the end point of the filling area." msgstr "Нажмите на конечную точку области рисования." -#: appTools/ToolCopperThieving.py:496 appTools/ToolCopperThieving.py:500 -#: appTools/ToolCopperThieving.py:558 -msgid "Thieving" -msgstr "Thieving" - -#: appTools/ToolCopperThieving.py:507 +#: appTools/ToolCopperThieving.py:510 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Copper Thieving. Чтение параметров." -#: appTools/ToolCopperThieving.py:532 +#: appTools/ToolCopperThieving.py:536 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Copper Thieving. Подготовка безмедных полигонов." -#: appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:582 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Copper Thieving. Подготовка участков для заполнения медью." -#: appTools/ToolCopperThieving.py:619 +#: appTools/ToolCopperThieving.py:626 msgid "Geometry not supported for bounding box" msgstr "Геометрия не поддерживается для ограничивающих рамок" -#: appTools/ToolCopperThieving.py:625 appTools/ToolNCC.py:1695 +#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1695 #: appTools/ToolNCC.py:1750 appTools/ToolNCC.py:2744 appTools/ToolPaint.py:2468 msgid "No object available." msgstr "Нет доступных объектов." -#: appTools/ToolCopperThieving.py:662 appTools/ToolNCC.py:1720 +#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1720 #: appTools/ToolNCC.py:1773 appTools/ToolNCC.py:2786 msgid "The reference object type is not supported." msgstr "Тип указанного объекта не поддерживается." -#: appTools/ToolCopperThieving.py:667 +#: appTools/ToolCopperThieving.py:674 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "Copper Thieving. Добавление новой геометрии и буферизации." -#: appTools/ToolCopperThieving.py:683 +#: appTools/ToolCopperThieving.py:710 msgid "Create geometry" msgstr "Создать геометрию" -#: appTools/ToolCopperThieving.py:913 appTools/ToolCopperThieving.py:917 +#: appTools/ToolCopperThieving.py:922 appTools/ToolCopperThieving.py:926 msgid "P-Plating Mask" msgstr "Рисунок гальванической маски" -#: appTools/ToolCopperThieving.py:939 +#: appTools/ToolCopperThieving.py:949 msgid "Append PP-M geometry" msgstr "Добавить PP-M геометрию" -#: appTools/ToolCopperThieving.py:1068 +#: appTools/ToolCopperThieving.py:1111 msgid "Generating Pattern Plating Mask done." msgstr "Создание рисунка гальванической маски выполнено." -#: appTools/ToolCopperThieving.py:1111 +#: appTools/ToolCopperThieving.py:1154 msgid "Copper Thieving Tool exit." msgstr "Выход из Copper Thieving." -#: appTools/ToolCopperThieving.py:1202 appTools/ToolFiducials.py:904 +#: appTools/ToolCopperThieving.py:1245 appTools/ToolFiducials.py:904 msgid "Gerber Object to which will be added a copper thieving." msgstr "Gerber объект, к которому будет добавлен copper thieving." -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1271 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14641,7 +14693,15 @@ msgstr "" "(заливка полигона может быть разделена на несколько полигонов)\n" "и медными трассами в Gerber файле." -#: appTools/ToolCopperThieving.py:1261 +#: appTools/ToolCopperThieving.py:1309 appTools/ToolCopperThieving.py:1657 +msgid "mm" +msgstr "мм" + +#: appTools/ToolCopperThieving.py:1311 appTools/ToolCopperThieving.py:1659 +msgid "in" +msgstr "дюймы" + +#: appTools/ToolCopperThieving.py:1327 msgid "" "- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -14656,12 +14716,12 @@ msgstr "" "- 'Референсный объект' - будет выполнять Copper Thieving в области указанной " "другим объектом." -#: appTools/ToolCopperThieving.py:1268 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1334 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4336 appTools/ToolPaint.py:3126 msgid "Ref. Type" msgstr "Тип ссылки" -#: appTools/ToolCopperThieving.py:1270 +#: appTools/ToolCopperThieving.py:1336 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14670,22 +14730,22 @@ msgstr "" "Copper Thieving.\n" "Это может быть Gerber, Excellon или Geometry." -#: appTools/ToolCopperThieving.py:1279 appTools/ToolIsolation.py:3409 +#: appTools/ToolCopperThieving.py:1345 appTools/ToolIsolation.py:3409 #: appTools/ToolNCC.py:4346 appTools/ToolPaint.py:3136 msgid "Ref. Object" msgstr "Указатель объекта" -#: appTools/ToolCopperThieving.py:1281 appTools/ToolIsolation.py:3411 +#: appTools/ToolCopperThieving.py:1347 appTools/ToolIsolation.py:3411 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3138 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "" "Объект FlatCAM, который будет использоваться как ссылка на очистку от меди." -#: appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCopperThieving.py:1524 msgid "Insert Copper thieving" msgstr "Вставить Copper thieving" -#: appTools/ToolCopperThieving.py:1460 +#: appTools/ToolCopperThieving.py:1527 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14693,11 +14753,11 @@ msgstr "" "Добавит полигон (может быть разбит на несколько частей)\n" "который будет окружать фактические трассы Gerber на определенном расстоянии." -#: appTools/ToolCopperThieving.py:1519 +#: appTools/ToolCopperThieving.py:1586 msgid "Insert Robber Bar" msgstr "Вставить Robber Bar" -#: appTools/ToolCopperThieving.py:1522 +#: appTools/ToolCopperThieving.py:1589 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14709,11 +14769,11 @@ msgstr "" "на определенном расстоянии.\n" "Требуется при нанесении рисунка отверстий." -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1613 msgid "Select Soldermask object" msgstr "Выберите объект паяльной маски" -#: appTools/ToolCopperThieving.py:1548 +#: appTools/ToolCopperThieving.py:1615 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14723,11 +14783,11 @@ msgstr "" "Он будет использоваться в качестве базы для\n" "рисунка гальванической маски." -#: appTools/ToolCopperThieving.py:1577 +#: appTools/ToolCopperThieving.py:1644 msgid "Plated area" msgstr "Зоны покрытия" -#: appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCopperThieving.py:1646 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14745,19 +14805,11 @@ msgstr "" "чуть больше, чем медные площадки, и эта область \n" "рассчитывается по отверстиям паяльной маски." -#: appTools/ToolCopperThieving.py:1590 -msgid "mm" -msgstr "мм" - -#: appTools/ToolCopperThieving.py:1592 -msgid "in" -msgstr "дюймы" - -#: appTools/ToolCopperThieving.py:1599 +#: appTools/ToolCopperThieving.py:1680 msgid "Generate pattern plating mask" msgstr "Создать рисунок гальванической маски" -#: appTools/ToolCopperThieving.py:1602 +#: appTools/ToolCopperThieving.py:1683 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14771,7 +14823,7 @@ msgstr "" msgid "Corners Tool" msgstr "Углы" -#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:343 +#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:355 msgid "Please select at least a location" msgstr "Пожалуйста, выберите хотя бы место" @@ -14779,51 +14831,51 @@ msgstr "Пожалуйста, выберите хотя бы место" msgid "The tool diameter is zero." msgstr "Диаметр инструмента равен нулю." -#: appTools/ToolCorners.py:412 +#: appTools/ToolCorners.py:415 msgid "Excellon object with corner drills created." msgstr "Был создан объект Excellon с угловыми сверлами." -#: appTools/ToolCorners.py:447 +#: appTools/ToolCorners.py:450 msgid "A Gerber object with corner markers was created." msgstr "Был создан объект Gerber с угловыми маркерами." -#: appTools/ToolCorners.py:474 +#: appTools/ToolCorners.py:477 msgid "The Gerber object to which will be added corner markers." msgstr "Объект Gerber, к которому будут добавлены угловые маркеры." -#: appTools/ToolCorners.py:490 +#: appTools/ToolCorners.py:493 msgid "Locations" msgstr "Местоположение" -#: appTools/ToolCorners.py:492 +#: appTools/ToolCorners.py:495 msgid "Locations where to place corner markers." msgstr "Места расположения угловых маркеров." -#: appTools/ToolCorners.py:505 appTools/ToolFiducials.py:735 +#: appTools/ToolCorners.py:508 appTools/ToolFiducials.py:735 msgid "Top Right" msgstr "Верхний правый" -#: appTools/ToolCorners.py:522 +#: appTools/ToolCorners.py:525 msgid "Toggle ALL" msgstr "Переключить всё" -#: appTools/ToolCorners.py:602 +#: appTools/ToolCorners.py:605 msgid "Add Marker" msgstr "Добавить маркер" -#: appTools/ToolCorners.py:605 +#: appTools/ToolCorners.py:608 msgid "Will add corner markers to the selected Gerber file." msgstr "Добавит угловые маркеры к выбранному файлу Gerber." -#: appTools/ToolCorners.py:621 +#: appTools/ToolCorners.py:624 msgid "Drills in Corners" msgstr "Сверла по углам" -#: appTools/ToolCorners.py:638 appTools/ToolDblSided.py:928 +#: appTools/ToolCorners.py:641 appTools/ToolDblSided.py:928 msgid "Create Excellon Object" msgstr "Создать объект Excellon" -#: appTools/ToolCorners.py:641 +#: appTools/ToolCorners.py:644 msgid "Will add drill holes in the center of the markers." msgstr "Добавим просверленные отверстия в центре маркеров." @@ -19789,11 +19841,11 @@ msgstr "" msgid "G91 coordinates not implemented ..." msgstr "Координаты G91 не реализованы ..." -#: defaults.py:867 +#: defaults.py:870 msgid "Could not load defaults file." msgstr "Не удалось загрузить файл значений по умолчанию." -#: defaults.py:880 +#: defaults.py:883 msgid "Failed to parse defaults file." msgstr "Не удалось прочитать файл значений по умолчанию." @@ -21609,9 +21661,6 @@ msgstr "Нет имени геометрии в аргументах. Укажи #~ "Обработка правильными окружностями.
Линейный: Паралельными " #~ "линиями." -#~ msgid "Area" -#~ msgstr "Площадь" - #~ msgid "Ref" #~ msgstr "Ссылка" diff --git a/locale/tr/LC_MESSAGES/strings.mo b/locale/tr/LC_MESSAGES/strings.mo index 3ceb86a160fc6a30ee21c09ee5cef3c4d69524d3..7df0238f61f30fc407f1859859cb92995eecdf56 100644 GIT binary patch delta 72701 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ſWJ zpTW@QxNLTw+CuP&OkYQ47F09p%RXq z(4B#}P?u>Es1?a%{rphR0cD}Ks+zH-kA`N{8|oH17V5Cgftv9~lV3MJgL={V40R() zmB`sOfVzC!L)njjx^K+2@ug6SZ-I(;3`*a3oyJ)jAL0BEJfkJ{`hQ2VMG~+7R~_F# z&18I1ca_Y6T9L(2@-0wXcMvM@8K|>yA1Z;Tuo!$}%%038(#z538AT%-3UlCa68H;d zpkF(MlMjQL=Df2Ao-2Cx5BYXBUC!eOYhP%@)is+v$s*A?o9HO%_Yq4a)Q|F=wT zkCQ^ZO6Gt`U|y(|st*&x)-Zvt{}D8FIF>@~$vUVdJ_&UuZa^Kj=TIvZBD3q~fLiME zP)lFc`mLZ2VFxJtzEJmpQBZytz|3$X^uPbVPeZS6&!I9-mc{LDYN-1{4k$;Jpbk+( z8}AI2SU;$%U<%Y_H_yh8+V};itLzz+ztCA71G94dv*n(=2oxYc)J)33qOdW{0vAKQ z%3U(vg}RkOPiH*1Z6sW^HJsa1*mSzb8E#)q#m&XIv ze*_iy1(d-@s2PXK?)vfIJ^HC&BqD{&;q^a;$Ij*Tzs0HsHIYeBe^%m>v0xsr|3jta zzPzsS1`b0pPd=}wFgyUYWFhjqej-?sek0foE`#Y|yaHbT7yL`Xjr4E9^Kg7YuV)1T zn-p?~JA4tZ|FOL*?9KQDn1m(rg)izF=}S0PEbaAwt*vu8cOOVs-s}JTZ5u3xVbKci zWpo%UME@|9JXA%mr!xUd!7lW7RB|hjwz7LT>xkJ|so}xbj>J(RR?DfBY?+3ThzX^ZB$xYlt z>ZGP_=}*A&tX!mKPQPw*_wc$Cc11r{3%4R8VRQP|p;n?$ORoRfG-lG63v;w`nO}su z(L`wN9=!^|K>GcR^I#78`=K0tfYo57HeUaKj=mU9r(dA0^K%L6P=;&g^lre0^fR^R z`q#7Gxb{xr1YE{UW_R%Ve|52FCwHp%!wKkh>FgfCLUv)R(8~Zbz^+~01IB`GUjLtC z%J4g{CFloq_xgWIJqFgLe*@-(IeWM>(V>UW9ijsWDl-tfr#lO+VMY1}p=J`Lm%Hb$ zfHUbw?CrP={-9sDkFzV-ms>aqO^3P)Hvi#Hdy0N;OIyI6$j8CHFto3~d$k*6+yE0Y za2x76{|?*1&Lr9i-h?3uP=0{d|G&0Y8t5LezCwNBciA9!U&uYg>;H(Q1=OD3gbQGi zp>755L!B{Sq+u?BoKXM6eskE8fzHF-X}tpVWE5_Md+U@R>M3{z90U);FR_#v#{naoKo`Q+sOQ_2&!UXqxPzA1|A7-K^#`U+2hEDS{SRN*x zS5ap5C4AO3>7;rwaNpx$(MSQo)&$iG0XP=gt6C6>a*^gqEdu=Y%+{|N4< zpMRFu|Jy9zVIlf6W^?`P{}jGT;}e49bKT2tf_ZKWvcS&BM?>A?zeC-_3(t4Y0S%ze zMkm+=E`otDV1Zk)6vpx}330j^r!M5>nf~@gT>t54>|X5k|CNR(OT3;lIOx38-Es>q zbGO_+P+PDQ>eSway48kT?ylpKumb&=P)q#87;S~S3=2SQ@p>q`M=&`|y3*$ymRiYD zAm|K>z&Efc%(}|!|5<5wSdacC>t|W*0#AfGln>!jm~f5P|Lg6Cq4XE7b@zoIP+L%Q zoqKhSwcc&Pc^{2*3`E`FZoviML004je2IMSCa?c*kBr*v_5Wqdx?9}qcgC%5OIAP~ z(w9(so@|@DEH}WAA^C87J5R^>%em9}IkSsHOMmWe_gdpSu*WU^n7!Nq8Hl;h-49ys zcZX>T)WhTls7JI=2i$!j8q`B%aj4VY9sUdZ!iccLL3c*_KwSl6U`#j_W`wIDk8nQE zbsA+61RQdwxe_c)e>&95?^US#L(;=8fnHG0h{K`olygkJ3+gfagz*~G<@yXJgCUN% ztxf@>(60znXww_fki((ISx~2ZyCRA2=+oY8pfL~bgn_X3DR+zQ4F}Ml54HD!r=5dL zP=~fKRKo3H3fLbOfJ>k**ZWW_6Yh-L`+TrE{VK3HTy}=*Ux(!df(-C8oDNf-b)WU@ zgB|Gm&be2$f1s}0cz?O2Ed&*~DOA7_)?W{`5|?0f_yFpxe1eT&%=2!`yPxO!*I^ii zKr1mD#)nIwPU``v8D56cdkS@^zQ9y4>IIgTt0oW3LqGH1yxMWuwS_vgWv{pgj|EWo ziEmJTvtMjbsOqhTTV0@jA!hc7HY4vK6DSEWnn)0+n}!hw@`bW=#jHe2V>FC4z*I{pk`bXYGSRe-w)~# zj(^1UuK+6%=*DmmY71gLcDKrsPyxF@E%jQcmDvilC9j|oeghTg6U+s}J#o)|Mc_61 zjbR0t_bIQga0HwR%RckD2aLPVcz=!{@pCsY0xqMU=!MtwCp-#&z;Q3V{@)fK^N%}3 zUtl-nWna0+?0s-6{baA*9rYTVM8DS?um4+Y5&m_rmV2PCl0!Zk+N;yB8oU9!!%T18 zWB5{7o_@r4&T$>68AX2Y9zvf%C79@g*Z-rNCs41Nvp+h!M{qLzte?D|1@IWW1Y3P} zSC6m27kBwJfZEex*572j0X4&buWm-Y;2ip~zj^(?2Db(3#i`(T_m*uo)LXhZKb+rc zuqFLJU{Ux0E`lk4`X9@Eo)a{*$B}=zjLSj2SDOJ-!go-&+IZ}AdRP?Zft}zVa3#D9 zQ-%obKixl|o`_zSGb1>cn>Tphn@;4J|uUA1G)-BKrcT2A8|DY+Hg3;+;g1Qqv zgL3p8%F$0KN0GhGQCuiTfl%_4#>^(q3v~l347If-pq`MrK=~aAeL8%DY3K$t3C4tL zp#mO;x{m*bn%Nzw1Y?GFOPB^`r=JVzvTbji1GQDBq3pjvt#Ck?(Ehh*BnamWi-!;Gf3m3nby$5+!-KWn!Ae8! zS~^4gM~0quD4e$O2`tNCW)ibG)8L`zzp{}29ePhluK^1B#`$+PmoLM3`cq?3qv7hlRB)rgg{zXs|gGtoT zOkoJTg0kLq+$U%icmr8;>KFnSXY4L|p_xu$mf#z5m6#+MR1%X|d;;`Akdff)2^x@&9=(b{|3HrsTdaSODU0WYnFD2kGQ*Mrfgk(Gss&HHVuM}pc$*5JSy^y}a zkxCJQRe(+K@eJ8;`hoaJOaOhJb_4oMzvul?VQ zgIyTMA#f-&+>OCfl&6vDRBCZ_1~C4MS{mKR)KkcVmp829|CWseiHy&9_|qMt6L!7e zAttMGMEie~&M_1G3De>@FSERkvhGvoS-v4SKgrlB>S^j3s>)dynOX83Fwc3~iLko> zOEXs6ufY>6{iL=MCi47761UaSjs6El$!s?Danx0TDU}@j|863Ik+vPVakk9HuHbw$ z&JN3+taf4;0Vn$7 z1OHI(qErv%R2UUw{61`q&OuwPT8szMSIH`m!OA}TsH{TwJ~{>I|A7y_ALOY(BHXe) z|L~yc|3Jp6>eU}1gM9DH6Agu+QXP3vX~eAFqca7EdvV^2vD_rPAXoyGu&+YDG{?geZ)C#t2E6BVFMxBtQgGv7W;+^F z3uCi_s!|bKl|PZcGkf*-GoFcrt_JgUkid0`lfq5f=NZ5(Rw0;<;cSGZF&aw!*Ni?p zMbB!O8D}ek1yGP1$U<2nk4Ye?Bty<)wJ-s9l2lmGW`Oq)qbl%kT{6&(DIqbwMzbhhz4BzYNmcI1a`5*kmyDh(#t zog`n1c41#36waIEV&6!-kCU zjWvInWGj#!uE*&R#?q5`8XGT%ej3|G8N^4YB)lBfuK#70S!0Zvp|~9f`aj|4*j_h9 z_LRQL0_p&=e+Q@9D$w-QwMh&hiRjiYP6A`_am)19;lC(;=9#bm?tfDV&=%!I>`!mn zA22vdmPM%JaZr#1b7TCJ8dO@4WL5gf(T{H8+vHymBT7A(vB#yl(q%%jc zG2TFS=~3=xE0Kknc}XN2x+O^>qRE{*p0RPL62i7+4n7*=vk%-)pi%g`N9}`bIsM!C z_ZPjLiH+lA@OSD>45nHlCj+L3h!G-|uL%K@W7Gz=XV|LpOF;g@H*GzCGX4m?2Kp}iK!UGkXo(y5jHCY>4v#RK zpz;z~O8UuQVkS`o7DMMCH6p7wlKvY4-J~DL_$q300;RM_cqZEYm`Fp~L1mi$ zYW-V`;$Tpb*^abqBg5gyXXAt~j{jE@(GH+?U`%BS4o6s`{9Of4OPpU~W-5DVpEG~_ zB*kBb5u>unysSb7J;?->sx%Vdc&-$1mH@ORv8)(pL~ja#@-SWv*=chUWGi~@d^E!G zesolNp#Km?!QUk8YfyWeZ5g)6HxNN|0yIIX4w)~&NqrpLWUv+T7RcAp4};N6sFIv^ z9CK0wy{PD^Y$IqRTi)8pA5veM-h0}ONMarRC~TP(_Mf0BZOMAzpaKbmBkOBs*v?j{ z5<&FmmRDkV!p7vJ5948Q+@Itc(%x;Wps}m8#vrMBG@_t zcY$8A9L?Zf`kTyAQ4D{_!3BbE!8kQeN~3$s9LniVOHyr>^ypQ`M<(iL?25p%mh{?S zcJ3C5!DI~nV&H%+pPbyLJ;?geEg8uxv04*x_<4T%7+0nJ7xgT)6;-7gwJ_s++T|I@@_mP~ z2(}of{Vc)njQ7xzGky!7;i!8Ui$q^#IrWRR!|5&BJu*y)gN~NrIGo0(e-@>dDEAtYaSPMtgVZxyfthbq^p<1CQ^1XIyZvSVP^k)+a?UKw=e+m=Wt9@|h3{paYl)k@Nz zPJf~Xwf_9Zi)Rs;P9viuw11IlW8_V7nh53I7HkvLM_4L+4DZQDO+wHW=pTm-(N{S~ zU*#|Qvq^9e?XCFkM_Xk92|hqyA1?VKG4LC;DS=g*!RFK!)P%P0_sD!K!7E_I&-46c z32l`L$ZsNBYOB{1U%BbWwPg0tzKkrW%tgM01ZTK-?)=3kqrN!Ig|js{O2MrApg0}F zt#Ci`1JuQg9oFn{dWx|EIN>k*cv@h;2>Wr!yTSYxjUmrO^q*KVkI*a0N>{KI>Z_M% zl`R;>Li-vso`3>BmhrrRD&ypZQV65k$UW%3#nCDHY19u^LZkbWB;&$TjNfBCEx`x6 z+4?nCAunS#ZS-INBuAkn4m(>wjkTcN9OG-YXObPpX?E++!(jo&ZNVN7K*y1vK=wwu!n2=<})8rgdi_#{UJJrBc~P8-Hm zo=|6^vm9qXs8vZQEi>POk0OjkKu=#P(0|mo8d*@$Pc&5iaWeN=Y*+&PjbcMGR7pY5 z!D=8^iGp%Gl1fdW@V1m~(0#~w1+&@8ct-4U+V}_(C_q9g2U&rjvYw=Knf#~!vv5X2 zn^BNbDjY>1SSp+sL^%Ww(xS5i*Q|Vs)YV5Z5gr_B=QQK_Q-1>K0ZY2F`NAizwEk{em{11OHd9Bg<|M&mn(JLP6yZg8gq9 zZsV^Aeucq*uusZ_O5uMg)qnn1X?X~=27YDm4sCtKttSd9O-V9*u&iIvS1Cf$`z*j0 z?26L9ZAr|7&#=jeZXtBrP?OLuP6AblGt}AT@^oMphj3Jpf$0RSOQzLurqUqTjAk-6 z2c3oJF9_itUelse7Tq^~ZSEno!`td)#!nqh%*uQ?6j>W|K9fij{7j=}WTGnn;=2^` zp6Gl>XS&I^Ap1ssD#_7N>Bl&Q&lmXjFf%E~zyWyJR%|i~*QordEdT!sT+LRm1I{)x zsQ~0Pkj=vG2!T?-w#fKhL{EGA188@I<(WVN{9Yn~-PG%h*M}>S{|LqA1zKi%EHi#q z=s9CabfG<)@jN)F2jkFR#*D{ORq~)00r_PTT1T=`kY{i+^K>x3QLs^&NWi7YR#KPX zZy&Zfb@M8WLM;Ywld;MfWRcAH8?(JfJ33_e*ojfSfTl>@KX&^rZZMh?=MwqS;nns$3i)^ZAC=nyUBhhPFf;Y`5ni@ zsO?E)4dYV@935wWK>a|nxnGOtM#i5ZPmld^OZuLT4TObAc9Cvgb5SUY;$njEXU;r( zEtwL??~}+d3tS%^m8{5HqPGwI$|Mq+)me$&RK|WFQ>j6~E(G`+y`VCJ6&R1c%3*x! zNA8a`|6DjIjN)9V(i>hU*iU%HG9N>L(YCzZNT4;&UQn|l&x*}F^iJX97qXxdim|ii za{*(yZDRTY`8M>{6T`p$*~scr(5!6+e0Rvxm3I4Jdm57aLJl&2fCGQA9q9Mmv+ud<(Mu*v&-mV;I~2`pjq<4pefYnA(z1e>w6S$oN&<|4Kz1 z)JIkV*)wz-!|urPFxxr!Qn}0Q_M)@iCXj;h)#yz^zJ%GoCy|G`{{O=0AxisD{+&UU z+{o@R8+{2N5$uTJ5S#UEs8t?>{%L|2g=Z|NY@ae18h`rH(IT5jTPD#QopGjjia6)- zx!#9DX@b?pX>)`js87sjFAloXk4FtjeTI_>jAbN1Nq7LeoX8&$^a+mVl1NZlq}d|N z#Q0nS)ugKYpuZUA!dDUWeHqx(-%;+4)2kR<#c^yL|E4KgDM9-e?F@{+AkjTIsfA7? zY@cJ>jIm4_BS>59FQPLVc{yZ}%uhO2QH8&D=b1yjiEapfk=3&S#SYZomSGawZBV$w z>{UjRsY(=r=Cv8tVEiQG^>BI?Sr>waC78;EV2P_Afw4~1pi+#)gGw2FcrgJ-9Wm}o z0_O-8Bbb5|$7!jky9gEm=jBP{H+zND_$*627qY@6Uk`u1kj1iOqa&MwULBGckDR}F z=r0wBIV9-Aiwp$4g7Y{QJUuGOanKRtr?zx|z&`X7*^0=^H1v;?P$R|$As>L#g~$uz zs~EC*jPGMSJ4ua_41Sa$r5efjrjk`u8U+xPK{+A{lc{{+#8Vw-Nf^t5&M?|4w{W_Q zB9u-D3yCk#|<2R13|7!%F zkHTJaE`!`GWj!2q$Ke7?K=Qi;{NJ(&ol&gBCIa@t$5wP&(~pllIaK*d;LG^jX9+Ao zKArw5AO9Sts$4`E9;5x%U&bu15qt#vg!8wIA17H4?UMxBK<$C-9XhvRTxw9cjh~*> zq1euZmCa{-bcQ2SsfHh4RR*t;@nEP@77juw1%oPa%rGG`iRzMo9$Ereoz9F^V@6+) zpRwRoZH6)NQ^I_FMgKT4=2Q74c7Hj>*pUca{|j0ApBUXhycmZuaa;z2y0n|%<98Q$i9Ggw9!X zqT57v<13okACe*^9(H^s$TOdqz63Z@d4uA193(>6mBAMz)`uBopgj|ZrKp9_xlB@J zahTVcdA2Y<5xu62sjOr?vITF&EOXjQ2HK1hqdNw@Zp2xx53j;vFpR;!2tF6#EWaC0 zHwkQ}ofpSnX#Yb3wam#$`rUC{78{ip7GwarODvIL1o}ixfbIzrDu!>B#U!k9$?uE( zAB@uP=12qK2y_sG93&QlnXWg7{Ml2_5^6~6#~|oH`qi)>39Dm!A3qVWQ`uqxU5{B? z;Ct8=Aov-rlFr}1WSD}WD&-m6On}KaYCvsHyO{+nWIE9>PD;S~un+oCk*Bqw$!sFo z2!4z9PsWR&s}dT$+Q?H7*o(X$)z^W+st7M49Lh{uARLLa3l{VX@>Cc{L?HhUl6^@X1|x@RbpC<1oZOn zDn01;XM2*8WELDA#V9V!h?73(^eoPoo>lbSI#rl99T?5LjY89#>2U-T1F%VN8TasA?g?>PqLsX=8e3X5?Z4yEii`(`+3K+S~w z4Qy-5_i+%s+{RB~63)hKr_rv>imG&E0<+-&{57))OP*OT+xZw=hp?6{l?GCy*wOm? z%*i(T;cz+}j)M`KCqI2?qtXwW1Md$(|7Q)B_w$>j3?o2XE2%M190>gK@%{p(whKr zNkGm%;^(?;(@f+l*Bm@yu&c>csBEHr#kRJJtxQ4^zJ|XwChx1?zpF}C)u`Pun2xgqC`89`d<*o1 zKtUxDjb%8Q$qa|%w3j*7_;2`#i+vv2kMT7QyX^Q_W~(uT38{p&zS^()GSaC{Eq*d$gPK1FsJs}Drz*9Phel_V&Egi!${~z}j}f&04z?oF zFGbCZekDt&6*|XhM(_Gf$pex{LN1$?w&_E2xzgGx4>l&8PK z1V@=+@X{G)J8YJHEoqIf!QlxK%Zn^_Fn`N}ZAA=%H=}yBX7qgbfkh*Ah_&n?rNUCkHZ>{wzd0a{fln%b3%@^t-`ZxY&=*CFE(S z?~n~ef35lXz`VcFZ$X&oj3qXIIbnTLi)wLD@p*<|G!iF4T2;EUn61vfYisUHaV#G7ZNI=~uwXBog_8^9q*G4)k|XcT@LJi<*y7=+wt%ANFBs z7s1DMlB>;aRl&GH_*IJA-!27HT<* zr=#kbO9G8CEP=sRM8`48MSBK@dl-AgST##BH0=zGO*3b|k*LaK>)(TS(Orw4$|(z; zieQ;pi5})>6yw*aee@7m%beV#oyM~JsaaxBm#Q+1u~BCHivDTjcL|mo{r%YQ!r29a z%wt8mFt(Dhjnu|W<`=$d&<-krv=?I25nJDC8pHfc!Fw;x*j%)_p)iKQOBj~58SKQ- zYirBVdpnP<2v*!YZ)AKscH3bHyK8A^Cbb#*`tNaenw{jC^$_p?<(CA^K@!VtaJ|h` zO1TI;8bg(y=v^S;74(-;-HgKT7coa`@?&?$~$z=Gk%-#$pqX? zu-5d0N;~>l=s&{dq7uaZZ#@JoLXd~S%(e|5aio$MCn_cB|An4PJXnz68_=y|de5*e zMQzAf8e|D^{Dn!hz^_f#QxSOv#@{iiBqXSE0j7wI;y4t?6YMn#=~;#G^#4HdA~G+* zD(h<=v3(KoafAspwY<(M266wiyyY_oeU<0vp2RdSIzi@N9ONVD5^5ug5#(qar%t_iLiZ(TxAFLkr_*c{y+4qAx}>&fNmxI#3ZXNT``n~qcAYo z63M|44BL|VN}MjI&S$&^iRQrZDQrGcF9fsMLw~Pr!4Lu+C!uE8wZ_kUYB`H1-^`!K zarUVrN?B|mBS!TIs509eN3^l|@B{%`;iw^c3DNnBc4mC6A)z)FI5j#dx9~HXWLLl! z#ORH`A+QSxQGA}G8029viW!v0$#opxqrcs+!z}@Wama#7M*1q(2&^*R#zrI0Pn|@N zm&mHJWhd~Rg&67J2dYXIg2zQKoAy5ygR!YYarWGe`~Urg@n$;@hZ$eX%pah01@^Pm zI7PDC-Ap{CY44yt(tOM!i7KWy$`ZVepReczmHm3Zcod^2C?-NFjIBZ*Bat<;KD*XwXn9dOrdX4fdlA8`w!n`;+O#2B{V0~1HT=smbsXdSgjC9TN(KyYSH)-LTmHe<6NTvQ12V6>Jv0aqx?}7UQxQZN+I! z4(M82jR^!yY3)gjwI|`M=njK9se- zs3`4b7Kw2_hpbN8jH=iy{Z4IGQRCNn!=eaYgY zn+6{j@zIF>XWJHysjO1s`XEZB5raJm5DrctzzedEKsyIY>u_EJrbGS=-QSRZWqbl{ zz1y542b7)EsU)j%Cs-ntX@9d748=Yt#h*$Tcth_&M&P(L0Se(bF^aE|twW~rz`>Kr z9LB^b4@Vetp{()-gZ(&(OF%EmN0Fz3$#I&CnH7oELs$_%f;9~SzlT0sc2Uf=5S#5mKR?#MbQJ$!X4x1BgF-Bv{f(?BV;N~j#$gFK&;oa2W}nelxkVtA zJI3%PpMuSAw8vUvmGE7P_V4K3kj&1X-#C1*nb$=UhUFTAQeWCbS%ta;PKWF+?cJ6{ zI=>|^wFJ3Fu;MrlV@b>-!A5NBp9Jk|tJo2p>=vgL^!>uoeGH0H6QXp;mg^ZtjgWOP zL&YhH@gC$V+3no4C&A~)U%3jl2QLmAN??7qu~8Sk3y#1p72q~4SfP~=gpjT`}szpa^?*v(zQjC;h|@R+8%mV az>){S^)vSOrksAQpSOH4;dX@m$NV4lINyx` delta 72694 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 diff --git a/locale/tr/LC_MESSAGES/strings.po b/locale/tr/LC_MESSAGES/strings.po index 211c162b..8ce08b1a 100644 --- a/locale/tr/LC_MESSAGES/strings.po +++ b/locale/tr/LC_MESSAGES/strings.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-11-02 13:46+0200\n" -"PO-Revision-Date: 2020-11-02 13:49+0200\n" +"POT-Creation-Date: 2020-11-02 18:02+0200\n" +"PO-Revision-Date: 2020-11-02 18:02+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: tr_TR\n" @@ -165,7 +165,7 @@ msgstr "Yer işaretleri şuradan alındı" msgid "The user requested a graceful exit of the current task." msgstr "Kullanıcı geçerli işten çıkış istedi." -#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:344 +#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:347 #: appTools/ToolIsolation.py:1443 appTools/ToolNCC.py:1380 msgid "Click the start point of the area." msgstr "Başlangıç ​​noktasını tıklayın." @@ -175,7 +175,7 @@ msgid "Click the end point of the area." msgstr "Bitiş noktasını tıklayın." #: appCommon/Common.py:358 appCommon/Common.py:460 -#: appTools/ToolCopperThieving.py:388 appTools/ToolIsolation.py:2354 +#: appTools/ToolCopperThieving.py:391 appTools/ToolIsolation.py:2354 #: appTools/ToolIsolation.py:2406 appTools/ToolNCC.py:1445 #: appTools/ToolNCC.py:1497 appTools/ToolPaint.py:1225 #: appTools/ToolPaint.py:1276 @@ -503,7 +503,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2121 +#: appTools/ToolCalculators.py:280 appTools/ToolCutOut.py:2121 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Z Derinliği" @@ -785,7 +785,7 @@ msgstr "" #: appGUI/ObjectUI.py:1681 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:307 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 @@ -793,8 +793,8 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1241 appTools/ToolCopperThieving.py:1493 -#: appTools/ToolCorners.py:584 appTools/ToolCutOut.py:2174 +#: appTools/ToolCopperThieving.py:1284 appTools/ToolCopperThieving.py:1560 +#: appTools/ToolCorners.py:587 appTools/ToolCutOut.py:2174 #: appTools/ToolFiducials.py:815 appTools/ToolInvertGerber.py:231 #: appTools/ToolInvertGerber.py:239 appTools/ToolNCC.py:4159 #: appTools/ToolNCC.py:4262 @@ -808,7 +808,7 @@ msgstr "Pay" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCorners.py:586 +#: appTools/ToolCopperThieving.py:1286 appTools/ToolCorners.py:589 #: appTools/ToolFiducials.py:817 appTools/ToolNCC.py:4161 #: appTools/ToolNCC.py:4264 msgid "Bounding box margin." @@ -1304,7 +1304,7 @@ msgstr "" #: appDatabase.py:1223 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2237 +#: appTools/ToolCalculators.py:289 appTools/ToolCutOut.py:2237 msgid "Tool Diameter" msgstr "Uç Kalınlığı" @@ -1314,12 +1314,12 @@ msgid "The drill hole diameter when doing mouse bites." msgstr "Geçitlerde fare ısırığı şekli için delik genişliği." #: appDatabase.py:1236 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:164 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:193 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:222 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1364 appTools/ToolCopperThieving.py:1404 -#: appTools/ToolCopperThieving.py:1444 appTools/ToolCutOut.py:2249 +#: appTools/ToolCopperThieving.py:1431 appTools/ToolCopperThieving.py:1471 +#: appTools/ToolCopperThieving.py:1511 appTools/ToolCutOut.py:2249 msgid "Spacing" msgstr "Aralık" @@ -1434,7 +1434,7 @@ msgstr "" "o sırada aktif olan Araçlar Tablosuna yeni bir uç ekler." #: appDatabase.py:1367 appGUI/MainGUI.py:1553 -#: appGUI/preferences/PreferencesUIManager.py:946 app_Main.py:2500 +#: appGUI/preferences/PreferencesUIManager.py:949 app_Main.py:2500 #: app_Main.py:3527 app_Main.py:4471 app_Main.py:4724 app_Main.py:8998 msgid "Cancel" msgstr "İptal" @@ -1444,10 +1444,10 @@ msgstr "İptal" #: appEditors/appGCodeEditor.py:781 appGUI/ObjectUI.py:163 #: appGUI/ObjectUI.py:174 appTool.py:280 appTool.py:291 #: appTools/ToolAlignObjects.py:517 appTools/ToolAlignObjects.py:528 -#: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 +#: appTools/ToolCalculators.py:519 appTools/ToolCalculators.py:530 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1635 appTools/ToolCopperThieving.py:1646 -#: appTools/ToolCorners.py:672 appTools/ToolCorners.py:683 +#: appTools/ToolCopperThieving.py:1716 appTools/ToolCopperThieving.py:1727 +#: appTools/ToolCorners.py:675 appTools/ToolCorners.py:686 #: appTools/ToolCutOut.py:2454 appTools/ToolCutOut.py:2465 #: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:975 #: appTools/ToolDistance.py:660 appTools/ToolDistance.py:671 @@ -1480,10 +1480,10 @@ msgstr "Düzenlenen değer aralık dışında" #: appEditors/appGCodeEditor.py:783 appGUI/ObjectUI.py:169 #: appGUI/ObjectUI.py:176 appTool.py:286 appTool.py:293 #: appTools/ToolAlignObjects.py:523 appTools/ToolAlignObjects.py:530 -#: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 +#: appTools/ToolCalculators.py:525 appTools/ToolCalculators.py:532 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1641 appTools/ToolCopperThieving.py:1648 -#: appTools/ToolCorners.py:678 appTools/ToolCorners.py:685 +#: appTools/ToolCopperThieving.py:1722 appTools/ToolCopperThieving.py:1729 +#: appTools/ToolCorners.py:681 appTools/ToolCorners.py:688 #: appTools/ToolCutOut.py:2460 appTools/ToolCutOut.py:2467 #: appTools/ToolDblSided.py:970 appTools/ToolDblSided.py:977 #: appTools/ToolDistance.py:666 appTools/ToolDistance.py:673 @@ -2097,7 +2097,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4012 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:83 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:571 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:574 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Uzunluk" @@ -2262,10 +2262,10 @@ msgstr "Yazı Tipi" #: appEditors/AppGeoEditor.py:316 appEditors/AppGerberEditor.py:2491 #: appEditors/AppGerberEditor.py:3947 appGUI/ObjectUI.py:316 #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1391 appTools/ToolCopperThieving.py:1431 +#: appTools/ToolCopperThieving.py:1458 appTools/ToolCopperThieving.py:1498 #: appTools/ToolFiducials.py:799 appTools/ToolPunchGerber.py:1088 msgid "Size" msgstr "Boyut" @@ -2419,7 +2419,7 @@ msgstr "Orijin" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:256 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appTools/ToolIsolation.py:3381 appTools/ToolNCC.py:4323 -#: appTools/ToolPaint.py:3104 appTools/ToolTransform.py:557 defaults.py:571 +#: appTools/ToolPaint.py:3104 appTools/ToolTransform.py:557 defaults.py:572 msgid "Selection" msgstr "Seçim" @@ -2454,10 +2454,12 @@ msgstr "X,Y biçiminde referans noktası." #: appEditors/AppGeoEditor.py:671 appEditors/AppGerberEditor.py:2586 #: appEditors/AppGerberEditor.py:5352 appGUI/ObjectUI.py:2375 -#: appTools/ToolDblSided.py:709 appTools/ToolDblSided.py:897 -#: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 -#: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1204 -#: appTools/ToolTransform.py:572 app_Main.py:6294 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:288 +#: appTools/ToolCopperThieving.py:1666 appTools/ToolDblSided.py:709 +#: appTools/ToolDblSided.py:897 appTools/ToolNCC.py:63 +#: appTools/ToolPaint.py:137 appTools/ToolSolderPaste.py:160 +#: appTools/ToolSolderPaste.py:1204 appTools/ToolTransform.py:572 +#: app_Main.py:6294 msgid "Add" msgstr "Ekle" @@ -3159,7 +3161,7 @@ msgstr "Şekil Düzenleyici" #: appEditors/AppGerberEditor.py:3947 appEditors/appGCodeEditor.py:687 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2034 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: appTools/ToolCorners.py:543 appTools/ToolCutOut.py:2030 +#: appTools/ToolCorners.py:546 appTools/ToolCutOut.py:2030 #: appTools/ToolDblSided.py:522 appTools/ToolPunchGerber.py:1088 #: appTools/ToolTransform.py:579 msgid "Type" @@ -3623,10 +3625,10 @@ msgstr "Alan ÜST eşiği" #: appEditors/AppGerberEditor.py:2710 msgid "" "The threshold value, all areas less than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" "Eşik değeri, bunun altında olan tüm alanlar işaretlenir.\n" -"0.0000 ve 9999.9999 arasında bir değere sahip olabilir" +"0.0000 ve 10000.0000 arasında bir değere sahip olabilir" #: appEditors/AppGerberEditor.py:2717 msgid "Area LOWER threshold" @@ -3635,10 +3637,10 @@ msgstr "Alan ALT eşiği" #: appEditors/AppGerberEditor.py:2719 msgid "" "The threshold value, all areas more than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" "Eşik değeri, bundan daha fazla olan tüm alanlar işaretlenir.\n" -"0.0000 ila 9999.9999 arasında bir değere sahip olabilir" +"0.0000 ila 10000.0000 arasında bir değere sahip olabilir" #: appEditors/AppGerberEditor.py:2733 msgid "Mark" @@ -3798,9 +3800,9 @@ msgstr "" "Bir tampon oluşturmak için şekil yok. Lütfen en az bir şekil seçin ve tekrar " "deneyin." -#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:303 -#: appTools/ToolCopperThieving.py:898 appTools/ToolCopperThieving.py:1061 -#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:410 +#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:306 +#: appTools/ToolCopperThieving.py:907 appTools/ToolCopperThieving.py:1104 +#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:413 #: appTools/ToolCutOut.py:779 appTools/ToolCutOut.py:905 #: appTools/ToolCutOut.py:1128 appTools/ToolCutOut.py:1278 #: appTools/ToolFiducials.py:240 appTools/ToolFiducials.py:492 @@ -3981,8 +3983,8 @@ msgstr "G Kodu Düzenleyicisi" #: appEditors/appGCodeEditor.py:687 appEditors/appGCodeEditor.py:698 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2034 appGUI/ObjectUI.py:2044 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1351 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: appTools/ToolCopperThieving.py:1418 msgid "Dia" msgstr "Boyut" @@ -4311,8 +4313,8 @@ msgstr "Yeni" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appObjects/ObjectCollection.py:234 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2027 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2027 #: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:771 #: appTools/ToolFilm.py:933 appTools/ToolFilm.py:956 appTools/ToolImage.py:135 #: appTools/ToolImage.py:190 appTools/ToolIsolation.py:3351 @@ -4340,8 +4342,8 @@ msgstr "Yeni boş bir Şekil nesnesi oluşturur." #: appTools/ToolAlignObjects.py:434 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:891 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2026 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2026 #: appTools/ToolDblSided.py:528 appTools/ToolDblSided.py:769 #: appTools/ToolFilm.py:932 appTools/ToolFilm.py:955 appTools/ToolImage.py:116 #: appTools/ToolImage.py:137 appTools/ToolImage.py:190 @@ -4349,7 +4351,7 @@ msgstr "Yeni boş bir Şekil nesnesi oluşturur." #: appTools/ToolNCC.py:3873 appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 #: appTools/ToolPanelize.py:148 appTools/ToolPanelize.py:168 #: appTools/ToolPanelize.py:716 appTools/ToolPanelize.py:810 -#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 defaults.py:572 +#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 defaults.py:573 msgid "Gerber" msgstr "Gerber" @@ -4369,8 +4371,8 @@ msgstr "Yeni boş bir Gerber nesnesi oluşturur." #: appTools/ToolAlignObjects.py:435 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:892 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolDblSided.py:530 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolDblSided.py:530 #: appTools/ToolDblSided.py:728 appTools/ToolDblSided.py:770 #: appTools/ToolFilm.py:1211 appTools/ToolIsolation.py:3404 #: appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 @@ -4576,7 +4578,7 @@ msgstr "Ayarları Dosyadan İçe Aktar" msgid "Export Preferences to file" msgstr "Ayarları Dosyaya Aktar" -#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1188 +#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1191 msgid "Save Preferences" msgstr "Ayarları Kaydet" @@ -4728,10 +4730,10 @@ msgid "Q" msgstr "Q" #: appGUI/MainGUI.py:454 appGUI/MainGUI.py:1263 -#: appGUI/preferences/PreferencesUIManager.py:913 -#: appGUI/preferences/PreferencesUIManager.py:1006 -#: appGUI/preferences/PreferencesUIManager.py:1034 -#: appGUI/preferences/PreferencesUIManager.py:1139 app_Main.py:5739 +#: appGUI/preferences/PreferencesUIManager.py:916 +#: appGUI/preferences/PreferencesUIManager.py:1009 +#: appGUI/preferences/PreferencesUIManager.py:1037 +#: appGUI/preferences/PreferencesUIManager.py:1142 app_Main.py:5739 #: app_Main.py:5744 app_Main.py:5759 msgid "Preferences" msgstr "Ayarlar" @@ -5423,7 +5425,7 @@ msgid "QRCode Tool" msgstr "QR Kod" #: appGUI/MainGUI.py:1079 appGUI/MainGUI.py:2248 appGUI/MainGUI.py:4475 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1168 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1211 msgid "Copper Thieving Tool" msgstr "Bakır Dolgu" @@ -5447,7 +5449,7 @@ msgid "Invert Gerber Tool" msgstr "Gerber Polaritesi" #: appGUI/MainGUI.py:1090 appGUI/MainGUI.py:2259 appGUI/MainGUI.py:4478 -#: appTools/ToolCorners.py:452 +#: appTools/ToolCorners.py:455 msgid "Corner Markers Tool" msgstr "Köşe İşaretleyici" @@ -5597,8 +5599,8 @@ msgstr "Proje" msgid "Plot Area" msgstr "Çalışma Alanı" -#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1200 -#: appTools/ToolCorners.py:472 appTools/ToolEtchCompensation.py:291 +#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1243 +#: appTools/ToolCorners.py:475 appTools/ToolEtchCompensation.py:291 #: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:902 #: appTools/ToolInvertGerber.py:212 appTools/ToolIsolation.py:2999 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:1010 @@ -5762,14 +5764,14 @@ msgstr "FlatCAM Ayarları Klasörü açıldı." msgid "Are you sure you want to delete the GUI Settings? \n" msgstr "Arayüz sıfırlamak istediğinizden emin misiniz?\n" -#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:945 -#: appGUI/preferences/PreferencesUIManager.py:1192 appTranslation.py:111 +#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:948 +#: appGUI/preferences/PreferencesUIManager.py:1195 appTranslation.py:111 #: appTranslation.py:213 app_Main.py:2498 app_Main.py:3525 app_Main.py:5980 #: app_Main.py:8996 msgid "Yes" msgstr "Evet" -#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1193 +#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1196 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:49 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 @@ -6478,8 +6480,8 @@ msgstr "Çizim Seçenekleri" #: appGUI/ObjectUI.py:202 appGUI/ObjectUI.py:552 #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1321 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:132 +#: appTools/ToolCopperThieving.py:1388 msgid "Solid" msgstr "Dolgulu" @@ -8159,41 +8161,41 @@ msgstr "" "Metin öğelerinin sayısı ile metin konumlarının sayısı arasındaki farktan " "dolayı açıklama eklenemedi." -#: appGUI/preferences/PreferencesUIManager.py:920 +#: appGUI/preferences/PreferencesUIManager.py:923 msgid "Preferences applied." msgstr "Ayar değişiklikleri uygulandı." -#: appGUI/preferences/PreferencesUIManager.py:940 +#: appGUI/preferences/PreferencesUIManager.py:943 msgid "Are you sure you want to continue?" msgstr "Devam etmek istiyor musunuz?" -#: appGUI/preferences/PreferencesUIManager.py:941 +#: appGUI/preferences/PreferencesUIManager.py:944 msgid "Application will restart" msgstr "Uygulama Yeniden Başlatılacak" -#: appGUI/preferences/PreferencesUIManager.py:1039 +#: appGUI/preferences/PreferencesUIManager.py:1042 msgid "Preferences closed without saving." msgstr "Uygulama, ayarlar kaydedilmeden kapatıldı." -#: appGUI/preferences/PreferencesUIManager.py:1051 +#: appGUI/preferences/PreferencesUIManager.py:1054 msgid "Preferences default values are restored." msgstr "Varsayılan ayarlar geri yüklendi." -#: appGUI/preferences/PreferencesUIManager.py:1082 app_Main.py:2833 +#: appGUI/preferences/PreferencesUIManager.py:1085 app_Main.py:2833 #: app_Main.py:9670 msgid "Failed to write defaults to file." msgstr "Varsayılan değerler dosyaya yazılamadı." -#: appGUI/preferences/PreferencesUIManager.py:1086 -#: appGUI/preferences/PreferencesUIManager.py:1201 +#: appGUI/preferences/PreferencesUIManager.py:1089 +#: appGUI/preferences/PreferencesUIManager.py:1204 msgid "Preferences saved." msgstr "Ayarlar kaydedildi." -#: appGUI/preferences/PreferencesUIManager.py:1136 +#: appGUI/preferences/PreferencesUIManager.py:1139 msgid "Preferences edited but not saved." msgstr "Ayarlar düzenlendi ancak kaydedilmedi." -#: appGUI/preferences/PreferencesUIManager.py:1186 +#: appGUI/preferences/PreferencesUIManager.py:1189 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -8230,8 +8232,8 @@ msgstr "CNC İş Gelişmiş Seçenekleri" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1219 -#: appTools/ToolCorners.py:536 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1262 +#: appTools/ToolCorners.py:539 appTools/ToolEtchCompensation.py:356 #: appTools/ToolFiducials.py:792 appTools/ToolInvertGerber.py:225 #: appTools/ToolQRCode.py:702 msgid "Parameters" @@ -8632,7 +8634,7 @@ msgstr "Excellon dosyasında kullanılan birimler." #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:187 appTools/ToolPcbWizard.py:453 +#: appTools/ToolCalculators.py:227 appTools/ToolPcbWizard.py:453 msgid "INCH" msgstr "İNÇ" @@ -8641,7 +8643,7 @@ msgstr "İNÇ" #: appGUI/preferences/general/GeneralAppPrefGroupUI.py:43 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 -#: appTools/ToolCalculators.py:188 appTools/ToolPcbWizard.py:454 +#: appTools/ToolCalculators.py:228 appTools/ToolPcbWizard.py:454 msgid "MM" msgstr "MM" @@ -9050,8 +9052,10 @@ msgstr "" "frezeleyecektir" #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:293 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 -#: appTools/ToolFilm.py:1109 appTools/ToolMilling.py:1771 +#: appTools/ToolCopperThieving.py:1671 appTools/ToolFilm.py:1109 +#: appTools/ToolMilling.py:1771 msgid "Both" msgstr "Her İkisi" @@ -10234,8 +10238,8 @@ msgid "\"Follow\"" msgstr "\"Takip Et\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:568 -#: appTools/ToolCopperThieving.py:774 appTools/ToolCopperThieving.py:787 +#: appObjects/FlatCAMGerber.py:368 appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:778 appTools/ToolCopperThieving.py:791 #: appTools/ToolIsolation.py:1360 appTools/ToolNCC.py:1807 #: appTools/ToolNCC.py:1834 appTools/ToolNCC.py:1942 appTools/ToolNCC.py:1955 #: appTools/ToolNCC.py:2857 appTools/ToolNCC.py:2962 appTools/ToolNCC.py:2977 @@ -10259,15 +10263,17 @@ msgstr "" "<>: Ne yaptığınızı bilmiyorsanız bunu değiştirmeyin !!!" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:71 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:296 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:844 appTools/ToolFilm.py:1106 -#: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 -#: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 -#: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 +#: appTools/ToolCopperThieving.py:1674 appTools/ToolFiducials.py:844 +#: appTools/ToolFilm.py:1106 appTools/ToolProperties.py:449 +#: appTools/ToolProperties.py:452 appTools/ToolProperties.py:455 +#: appTools/ToolProperties.py:483 appTools/ToolProperties.py:490 +#: appTools/ToolProperties.py:493 msgid "None" msgstr "Yok" @@ -10543,8 +10549,8 @@ msgid "Number of steps (lines) used to interpolate circles." msgstr "Daireleri eklemek için kullanılan adım (satır) sayısı." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolCopperThieving.py:1563 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:274 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolCopperThieving.py:1630 msgid "Clearance" msgstr "Aralık" @@ -10555,37 +10561,49 @@ msgid "" "and the copper traces in the Gerber file." msgstr "Bu seçim bakır dolgu ile yollar arasındaki mesafeyi ayarlar." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:85 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: appTools/ToolCalculators.py:342 appTools/ToolCalculators.py:385 +#: appTools/ToolCopperThieving.py:1298 +msgid "Area" +msgstr "Area" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appTools/ToolCopperThieving.py:1300 +msgid "Thieving areas with area less then this value will not be added." +msgstr "" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:99 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1255 appTools/ToolNCC.py:4319 +#: appTools/ToolCopperThieving.py:1321 appTools/ToolNCC.py:4319 msgid "Itself" msgstr "Tamamı" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:100 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1256 appTools/ToolIsolation.py:3391 +#: appTools/ToolCopperThieving.py:1322 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:4319 appTools/ToolPaint.py:3116 msgid "Area Selection" msgstr "Alan" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1257 appTools/ToolDblSided.py:761 +#: appTools/ToolCopperThieving.py:1323 appTools/ToolDblSided.py:761 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:4319 #: appTools/ToolPaint.py:3116 tclCommands/TclCommandPaint.py:166 msgid "Reference Object" msgstr "Nesne" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1259 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:103 +#: appTools/ToolCopperThieving.py:1325 msgid "Reference:" msgstr "Seçim Şekli:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:105 msgid "" "- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -10598,29 +10616,29 @@ msgstr "" "belirleyebilirsiniz.\n" "- 'Nesne' - Belirtilen nesne alanı içinde bakır dolgusu yapar." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:114 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1301 appTools/ToolExtractDrills.py:495 +#: appTools/ToolCopperThieving.py:1372 appTools/ToolExtractDrills.py:495 #: appTools/ToolExtractDrills.py:628 appTools/ToolPunchGerber.py:1068 #: appTools/ToolPunchGerber.py:1240 msgid "Rectangular" msgstr "Dikdörtgensel" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1302 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:115 +#: appTools/ToolCopperThieving.py:1373 msgid "Minimal" msgstr "Dairesel" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1304 appTools/ToolFilm.py:958 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:117 +#: appTools/ToolCopperThieving.py:1366 appTools/ToolFilm.py:958 msgid "Box Type:" msgstr "Çerçeve Tipi:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1306 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: appTools/ToolCopperThieving.py:1368 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10628,28 +10646,28 @@ msgstr "" "- 'Dikdörtgen' - Sınırlayıcı kutu dikdörtgen (köşeli) şeklinde olacaktır.\n" "- 'Dairesel' - Sınırlayıcı kutu dairesel şekilde olacaktır." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1322 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:133 +#: appTools/ToolCopperThieving.py:1389 msgid "Dots Grid" msgstr "Nokta Deseni" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1323 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: appTools/ToolCopperThieving.py:1390 msgid "Squares Grid" msgstr "Kare Deseni" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1324 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:135 +#: appTools/ToolCopperThieving.py:1391 msgid "Lines Grid" msgstr "Çizgi Deseni" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1326 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137 +#: appTools/ToolCopperThieving.py:1393 msgid "Fill Type:" msgstr "Dolgu Tipi:" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1328 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:139 +#: appTools/ToolCopperThieving.py:1395 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10661,58 +10679,58 @@ msgstr "" "- 'Kare Deseni' - Boş alan kare deseni ile doldurulacaktır\n" "- 'Çizgi Deseni' - Boş alan çizgi deseni ile doldurulacaktır." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1347 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:147 +#: appTools/ToolCopperThieving.py:1414 msgid "Dots Grid Parameters" msgstr "Nokta Desenli Dolgu Seçenekleri" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1353 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: appTools/ToolCopperThieving.py:1420 msgid "Dot diameter in Dots Grid." msgstr "Nokta desenli dolguda nokta boyutu." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1366 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:166 +#: appTools/ToolCopperThieving.py:1433 msgid "Distance between each two dots in Dots Grid." msgstr "Nokta desenli dolguda her iki nokta arasındaki mesafe." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1387 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:176 +#: appTools/ToolCopperThieving.py:1454 msgid "Squares Grid Parameters" msgstr "Kare Desenli Dolgu Seçenekleri" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1393 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: appTools/ToolCopperThieving.py:1460 msgid "Square side size in Squares Grid." msgstr "Kare desenli dolguda kare boyutu." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1406 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:195 +#: appTools/ToolCopperThieving.py:1473 msgid "Distance between each two squares in Squares Grid." msgstr "Kare desenli dolguda her iki kare arasındaki mesafe." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1427 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:205 +#: appTools/ToolCopperThieving.py:1494 msgid "Lines Grid Parameters" msgstr "Çizgi Desenli Dolgu Seçenekleri" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1433 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: appTools/ToolCopperThieving.py:1500 msgid "Line thickness size in Lines Grid." msgstr "Çizgi desenli ızgarada çizgi kalınlığı boyutu." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1446 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:224 +#: appTools/ToolCopperThieving.py:1513 msgid "Distance between each two lines in Lines Grid." msgstr "Çizgi desenli ızgarada her iki çizgi arasındaki mesafe." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1485 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:234 +#: appTools/ToolCopperThieving.py:1552 msgid "Robber Bar Parameters" msgstr "Soyguncu Çubuğu Seçenekleri" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1487 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:236 +#: appTools/ToolCopperThieving.py:1554 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10721,41 +10739,41 @@ msgstr "" "Soyguncu çubuğu: Deliklerin kaplanmasını kolaylaştırmak\n" "için bakır kenarlık (çerçeve)" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1495 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: appTools/ToolCopperThieving.py:1562 msgid "Bounding box margin for robber bar." msgstr "" "Soyguncu çubuğu çerçevesi ile PCB sınırı arasındaki boşluk.\n" "(Soyguncu çubuğu: Deliklerin kaplanmasını kolaylaştırmak\n" "için bakır kenarlık (çerçeve))." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:255 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appTools/ToolCopperThieving.py:1506 appTools/ToolCorners.py:557 +#: appTools/ToolCopperThieving.py:1573 appTools/ToolCorners.py:560 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Kalınlık" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1508 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:257 +#: appTools/ToolCopperThieving.py:1575 msgid "The robber bar thickness." msgstr "" "Soyguncu çubuğunun kalınlığı.\n" "(Soyguncu çubuğu: Deliklerin kaplanmasını\n" "kolaylaştırmak için bakır kenarlık (çerçeve))." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1540 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:267 +#: appTools/ToolCopperThieving.py:1607 msgid "Pattern Plating Mask" msgstr "Desen Kaplama Maskesi" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1542 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:269 +#: appTools/ToolCopperThieving.py:1609 msgid "Generate a mask for pattern plating." msgstr "Desen kaplama için bir maske oluşturun." -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1565 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:276 +#: appTools/ToolCopperThieving.py:1632 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10765,6 +10783,24 @@ msgstr "" "(Soyguncu çubuğu: Deliklerin kaplanmasını\n" "kolaylaştırmak için bakır kenarlık (çerçeve))." +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:290 +#: appTools/ToolCopperThieving.py:1668 +msgid "Choose which additional geometry to include, if available." +msgstr "" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:294 +#: appTools/ToolCopperThieving.py:499 appTools/ToolCopperThieving.py:503 +#: appTools/ToolCopperThieving.py:565 appTools/ToolCopperThieving.py:1672 +msgid "Thieving" +msgstr "Dolgu" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:295 +#: appTools/ToolCopperThieving.py:1673 +#, fuzzy +#| msgid "Insert Robber Bar" +msgid "Robber bar" +msgstr "Soyguncu Çubuğu Ekle" + #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 msgid "Calibration Tool Options" msgstr "Kalibrasyon Seçenekleri" @@ -10774,7 +10810,7 @@ msgstr "Kalibrasyon Seçenekleri" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1221 appTools/ToolCorners.py:538 +#: appTools/ToolCopperThieving.py:1264 appTools/ToolCorners.py:541 #: appTools/ToolFiducials.py:794 msgid "Parameters used for this tool." msgstr "Bu araç için kullanılan seçenekler." @@ -11126,7 +11162,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:49 -#: appTools/ToolCorners.py:550 appTools/ToolFiducials.py:864 +#: appTools/ToolCorners.py:553 appTools/ToolFiducials.py:864 msgid "Cross" msgstr "Çapraz" @@ -11690,7 +11726,7 @@ msgid "Calculators Tool Options" msgstr "Hesap Makinesi" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: appTools/ToolCalculators.py:152 +#: appTools/ToolCalculators.py:191 msgid "V-Shape Tool Calculator" msgstr "V Şekilli Uç Hesaplama" @@ -11704,12 +11740,12 @@ msgstr "" "derinliğini değerleri dikkate alarak hesaplar." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: appTools/ToolCalculators.py:220 +#: appTools/ToolCalculators.py:260 msgid "Tip Diameter" msgstr "Uç Kalınlığı" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: appTools/ToolCalculators.py:228 +#: appTools/ToolCalculators.py:268 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." @@ -11718,7 +11754,7 @@ msgstr "" "Üretici tarafından belirtilmiştir." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: appTools/ToolCalculators.py:231 +#: appTools/ToolCalculators.py:271 msgid "Tip Angle" msgstr "Uç Açısı" @@ -11739,12 +11775,12 @@ msgstr "" "Bir CNC İş nesnesinde bu Z Derinlik değeridir." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:154 +#: appTools/ToolCalculators.py:193 msgid "ElectroPlating Calculator" msgstr "Elektronik Kaplama Hesaplayıcı" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: appTools/ToolCalculators.py:284 +#: appTools/ToolCalculators.py:324 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium " @@ -11755,32 +11791,39 @@ msgstr "" "kaplayanlar için kullanışlıdır." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: appTools/ToolCalculators.py:293 +#: appTools/ToolCalculators.py:349 msgid "Board Length" msgstr "Plaket Uzunluğu" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: appTools/ToolCalculators.py:299 +#: appTools/ToolCalculators.py:350 msgid "This is the board length. In centimeters." msgstr "Plaketin uzunluğu. Santimetre olarak." #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: appTools/ToolCalculators.py:301 +#: appTools/ToolCalculators.py:367 msgid "Board Width" msgstr "Plaket Genişliği" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: appTools/ToolCalculators.py:307 +#: appTools/ToolCalculators.py:368 msgid "This is the board width.In centimeters." msgstr "Plaketin genişliği. Santimetre olarak." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: appTools/ToolCalculators.py:309 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:120 +#: appTools/ToolCalculators.py:386 +#, fuzzy +#| msgid "This is the Area ID." +msgid "This is the board area." +msgstr "Bu bölge tanımlayıcısıdır." + +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:130 +#: appTools/ToolCalculators.py:408 msgid "Current Density" msgstr "Akım Yoğunluğu" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: appTools/ToolCalculators.py:316 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:136 +#: appTools/ToolCalculators.py:409 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." @@ -11788,13 +11831,13 @@ msgstr "" "Plaketten geçecek akım yoğunluğu.\n" "Metrekare başına amper." -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: appTools/ToolCalculators.py:319 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:142 +#: appTools/ToolCalculators.py:428 msgid "Copper Growth" msgstr "Bakır Tabaka" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: appTools/ToolCalculators.py:326 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:148 +#: appTools/ToolCalculators.py:429 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -11807,32 +11850,32 @@ msgid "Corner Markers Options" msgstr "Köşe İşareti Seçenekleri" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:545 +#: appTools/ToolCorners.py:548 msgid "Shape of the marker." msgstr "Köşe işaretinin şekli." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:48 -#: appTools/ToolCorners.py:549 +#: appTools/ToolCorners.py:552 msgid "Semi-Cross" msgstr "Yarı Çapraz" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:559 +#: appTools/ToolCorners.py:562 msgid "The thickness of the line that makes the corner marker." msgstr "Köşe işaretinin çizgi kalınlığı." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:85 -#: appTools/ToolCorners.py:573 +#: appTools/ToolCorners.py:576 msgid "The length of the line that makes the corner marker." msgstr "Köşe işaretinin çizgi uzunluğu." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:96 -#: appTools/ToolCorners.py:625 appTools/ToolDblSided.py:827 +#: appTools/ToolCorners.py:628 appTools/ToolDblSided.py:827 msgid "Drill Dia" msgstr "Delik Genişliği" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:98 -#: appTools/ToolCorners.py:627 +#: appTools/ToolCorners.py:630 msgid "Drill Diameter" msgstr "Delik Genişliği" @@ -12176,18 +12219,18 @@ msgstr "" "Şekil sınırlama kutusunun dört noktasından biri olabilir." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:509 appTools/ToolFiducials.py:723 +#: appTools/ToolCorners.py:512 appTools/ToolFiducials.py:723 #: appTools/ToolFilm.py:1069 msgid "Bottom Left" msgstr "Sol Alt" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:501 appTools/ToolFilm.py:1070 +#: appTools/ToolCorners.py:504 appTools/ToolFilm.py:1070 msgid "Top Left" msgstr "Sol Üst" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:513 appTools/ToolFilm.py:1071 +#: appTools/ToolCorners.py:516 appTools/ToolFilm.py:1071 msgid "Bottom Right" msgstr "Sağ Alt" @@ -12466,8 +12509,8 @@ msgstr "Sıralı" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:452 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1072 -#: appTools/ToolCorners.py:416 appTools/ToolFiducials.py:563 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1115 +#: appTools/ToolCorners.py:419 appTools/ToolFiducials.py:563 #: appTools/ToolMove.py:229 appTools/ToolQRCode.py:466 app_Main.py:4813 msgid "Plotting" msgstr "Çiziliyor" @@ -13518,7 +13561,7 @@ msgstr "CNC Kodu oluşturuluyor" msgid "CNCjob created" msgstr "CNC İşi oluşturuldu" -#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:586 +#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:593 #: appTools/ToolFilm.py:639 appTools/ToolFilm.py:883 #: appTools/ToolIsolation.py:930 appTools/ToolNCC.py:868 #: appTools/ToolOptimal.py:145 appTools/ToolPanelize.py:613 @@ -13640,7 +13683,8 @@ msgstr "Ölçekleniyor ..." msgid "Skewing..." msgstr "Eğriltiliyor..." -#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:152 +#: appObjects/FlatCAMObj.py:487 appTools/ToolCalculators.py:341 +#: appTools/ToolProperties.py:152 msgid "Dimensions" msgstr "Boyutlar" @@ -14005,9 +14049,9 @@ msgstr "" "Eğer bir nokta seçilirse, bir noktaya göre hizalama yapar.\n" "Eğer iki nokta seçilirse, iki noktaya göre hizalama yapar." -#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1617 -#: appTools/ToolCorners.py:654 appTools/ToolCutOut.py:2411 +#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:501 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1698 +#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2411 #: appTools/ToolDblSided.py:946 appTools/ToolDrilling.py:2649 #: appTools/ToolEtchCompensation.py:459 appTools/ToolExtractDrills.py:699 #: appTools/ToolFiducials.py:962 appTools/ToolFilm.py:1387 @@ -14021,9 +14065,9 @@ msgstr "" msgid "Reset Tool" msgstr "Verileri Sıfırla" -#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1620 -#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2414 +#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:504 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1701 +#: appTools/ToolCorners.py:660 appTools/ToolCutOut.py:2414 #: appTools/ToolDblSided.py:949 appTools/ToolDrilling.py:2652 #: appTools/ToolEtchCompensation.py:462 appTools/ToolExtractDrills.py:702 #: appTools/ToolFiducials.py:965 appTools/ToolFilm.py:1390 @@ -14037,27 +14081,27 @@ msgstr "Verileri Sıfırla" msgid "Will reset the tool parameters." msgstr "Yapılan değişiklikleri varsayılan ayarlara döndürür." -#: appTools/ToolCalculators.py:77 +#: appTools/ToolCalculators.py:79 msgid "Calc. Tool" msgstr "Hesap Makinesi" -#: appTools/ToolCalculators.py:151 +#: appTools/ToolCalculators.py:190 msgid "Calculators" msgstr "Hesap Makinesi" -#: appTools/ToolCalculators.py:153 +#: appTools/ToolCalculators.py:192 msgid "Units Calculator" msgstr "Birim Hesaplayıcı" -#: appTools/ToolCalculators.py:196 +#: appTools/ToolCalculators.py:236 msgid "Here you enter the value to be converted from INCH to MM" msgstr "Burada İNÇ'ten MM'ye dönüştürülecek değeri girersiniz" -#: appTools/ToolCalculators.py:201 +#: appTools/ToolCalculators.py:241 msgid "Here you enter the value to be converted from MM to INCH" msgstr "Burada MM'den İNÇ'e dönüştürülecek değeri girersiniz" -#: appTools/ToolCalculators.py:237 +#: appTools/ToolCalculators.py:277 msgid "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." @@ -14065,7 +14109,7 @@ msgstr "" "Bu ucun açısıdır.\n" "Üretici tarafından belirtilmiştir." -#: appTools/ToolCalculators.py:246 +#: appTools/ToolCalculators.py:286 msgid "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." @@ -14073,7 +14117,7 @@ msgstr "" "Bu, malzemeyi kesme derinliğidir.\n" "CNC işleminde bu Z Derinliği değeridir." -#: appTools/ToolCalculators.py:254 +#: appTools/ToolCalculators.py:294 msgid "" "This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" @@ -14082,11 +14126,11 @@ msgstr "" "Bu, FlatCAM Gerber bölümüne girilecek uç kalınlığıdır.\n" "CNC İş bölümünde > takım çapı < olarak adlandırılır." -#: appTools/ToolCalculators.py:265 appTools/ToolCalculators.py:361 +#: appTools/ToolCalculators.py:305 appTools/ToolCalculators.py:490 msgid "Calculate" msgstr "Hesapla" -#: appTools/ToolCalculators.py:268 +#: appTools/ToolCalculators.py:309 msgid "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " @@ -14094,11 +14138,30 @@ msgstr "" "İstenen ve bilinen yöntemlere bağlı olarak kesme \n" "derinliğini veya etkili uç kalınlığını hesaplar. " -#: appTools/ToolCalculators.py:331 +#: appTools/ToolCalculators.py:336 +#, fuzzy +#| msgid "Area Selection" +msgid "Area Calculation" +msgstr "Alan" + +#: appTools/ToolCalculators.py:338 +msgid "Choose how to calculate the board area." +msgstr "" + +#: appTools/ToolCalculators.py:356 appTools/ToolCalculators.py:374 +#: appTools/ToolCalculators.py:392 +msgid "cm" +msgstr "" + +#: appTools/ToolCalculators.py:437 +msgid "um" +msgstr "" + +#: appTools/ToolCalculators.py:448 msgid "Current Value" msgstr "Mevcut Değer" -#: appTools/ToolCalculators.py:338 +#: appTools/ToolCalculators.py:449 msgid "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." @@ -14106,11 +14169,11 @@ msgstr "" "Bu, Güç Kaynağında ayarlanacak geçerli\n" "yoğunluk değeridir. Amper cinsinden." -#: appTools/ToolCalculators.py:342 +#: appTools/ToolCalculators.py:469 msgid "Time" msgstr "Zaman" -#: appTools/ToolCalculators.py:349 +#: appTools/ToolCalculators.py:470 msgid "" "This is the calculated time required for the procedure.\n" "In minutes." @@ -14118,7 +14181,7 @@ msgstr "" "Bu işlem için gereken tahmini süredir.\n" "Dakikalar içinde." -#: appTools/ToolCalculators.py:364 +#: appTools/ToolCalculators.py:493 msgid "" "Calculate the current intensity value and the procedure time,\n" "depending on the parameters above" @@ -14423,45 +14486,45 @@ msgstr "" "Yukarıdaki değerlere sahip nesnelerin \n" "düzeltilmesi (ölçeklendirilmesi ve/veya eğrilmesi)." -#: appTools/ToolCopperThieving.py:184 appTools/ToolCopperThieving.py:209 +#: appTools/ToolCopperThieving.py:186 appTools/ToolCopperThieving.py:211 msgid "Lines Grid works only for 'itself' reference ..." msgstr "Çizgi Desenli dolgu yalnızca 'Tamamı' seçim şeklinde çalışır..." -#: appTools/ToolCopperThieving.py:195 +#: appTools/ToolCopperThieving.py:197 msgid "Solid fill selected." msgstr "Dolu (düz) dolgu seçildi." -#: appTools/ToolCopperThieving.py:200 +#: appTools/ToolCopperThieving.py:202 msgid "Dots grid fill selected." msgstr "Nokta Desenli dolgu seçildi." -#: appTools/ToolCopperThieving.py:205 +#: appTools/ToolCopperThieving.py:207 msgid "Squares grid fill selected." msgstr "Kare Desenli dolgu seçildi." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:324 -#: appTools/ToolCopperThieving.py:936 appTools/ToolCorners.py:127 -#: appTools/ToolCorners.py:353 appTools/ToolDblSided.py:307 +#: appTools/ToolCopperThieving.py:229 appTools/ToolCopperThieving.py:327 +#: appTools/ToolCopperThieving.py:946 appTools/ToolCorners.py:127 +#: appTools/ToolCorners.py:350 appTools/ToolDblSided.py:307 #: appTools/ToolExtractDrills.py:141 appTools/ToolFiducials.py:191 #: appTools/ToolFiducials.py:482 appTools/ToolOptimal.py:138 #: appTools/ToolPunchGerber.py:381 appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Yüklü Gerber nesnesi yok ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 +#: appTools/ToolCopperThieving.py:242 appTools/ToolCopperThieving.py:847 msgid "Append geometry" msgstr "Şekil Ekle" -#: appTools/ToolCopperThieving.py:294 appTools/ToolCopperThieving.py:889 -#: appTools/ToolCopperThieving.py:1048 +#: appTools/ToolCopperThieving.py:297 appTools/ToolCopperThieving.py:898 +#: appTools/ToolCopperThieving.py:1091 msgid "Append source file" msgstr "Kaynak Dosya Ekle" -#: appTools/ToolCopperThieving.py:307 appTools/ToolCopperThieving.py:902 +#: appTools/ToolCopperThieving.py:310 appTools/ToolCopperThieving.py:911 msgid "Copper Thieving Tool done." msgstr "Bakır dolgu işlemi tamamlandı." -#: appTools/ToolCopperThieving.py:334 appTools/ToolCopperThieving.py:354 +#: appTools/ToolCopperThieving.py:337 appTools/ToolCopperThieving.py:357 #: appTools/ToolCutOut.py:551 appTools/ToolCutOut.py:927 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 @@ -14477,77 +14540,80 @@ msgstr "Bakır dolgu işlemi tamamlandı." msgid "Could not retrieve object" msgstr "Nesne alınamadı" -#: appTools/ToolCopperThieving.py:382 +#: appTools/ToolCopperThieving.py:385 msgid "Click the end point of the filling area." msgstr "Dolgu alanının bitiş noktasını tıklayın." -#: appTools/ToolCopperThieving.py:496 appTools/ToolCopperThieving.py:500 -#: appTools/ToolCopperThieving.py:558 -msgid "Thieving" -msgstr "Dolgu" - -#: appTools/ToolCopperThieving.py:507 +#: appTools/ToolCopperThieving.py:510 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Bakır dolgu işlemi başladı. Seçenekler uygulanıyor." -#: appTools/ToolCopperThieving.py:532 +#: appTools/ToolCopperThieving.py:536 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Bakır dolgu. Dolgusuz alanlar hazırlanıyor." -#: appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:582 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Bakır dolgu. Bakır ile doldurmak için kullanılan alanlar hazırlanıyor." -#: appTools/ToolCopperThieving.py:619 +#: appTools/ToolCopperThieving.py:626 msgid "Geometry not supported for bounding box" msgstr "Sınırlayıcı kutu için şekil desteklenmiyor" -#: appTools/ToolCopperThieving.py:625 appTools/ToolNCC.py:1695 +#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1695 #: appTools/ToolNCC.py:1750 appTools/ToolNCC.py:2744 appTools/ToolPaint.py:2468 msgid "No object available." msgstr "Kullanılabilir nesne yok." -#: appTools/ToolCopperThieving.py:662 appTools/ToolNCC.py:1720 +#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1720 #: appTools/ToolNCC.py:1773 appTools/ToolNCC.py:2786 msgid "The reference object type is not supported." msgstr "Belirtilen nesnenin türü desteklenmiyor." -#: appTools/ToolCopperThieving.py:667 +#: appTools/ToolCopperThieving.py:674 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "Bakır dolgu. Dolgu ekleniyor ve tamponlanıyor." -#: appTools/ToolCopperThieving.py:683 +#: appTools/ToolCopperThieving.py:710 msgid "Create geometry" msgstr "Şekil Oluştur" -#: appTools/ToolCopperThieving.py:913 appTools/ToolCopperThieving.py:917 +#: appTools/ToolCopperThieving.py:922 appTools/ToolCopperThieving.py:926 msgid "P-Plating Mask" msgstr "Desen Kaplama Maskesi" -#: appTools/ToolCopperThieving.py:939 +#: appTools/ToolCopperThieving.py:949 msgid "Append PP-M geometry" msgstr "Desen Kaplama Maskesi Ekle" -#: appTools/ToolCopperThieving.py:1068 +#: appTools/ToolCopperThieving.py:1111 msgid "Generating Pattern Plating Mask done." msgstr "Desen kaplama maskesi oluşturma işlemi tamamlandı." -#: appTools/ToolCopperThieving.py:1111 +#: appTools/ToolCopperThieving.py:1154 msgid "Copper Thieving Tool exit." msgstr "Bakır dolgu aracından çıkış." -#: appTools/ToolCopperThieving.py:1202 appTools/ToolFiducials.py:904 +#: appTools/ToolCopperThieving.py:1245 appTools/ToolFiducials.py:904 msgid "Gerber Object to which will be added a copper thieving." msgstr "Bakır dolgunun ekleneceği Gerber nesnesi." -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1271 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" "and the copper traces in the Gerber file." msgstr "Bakır dolgu ile yollar arasındaki mesafe." -#: appTools/ToolCopperThieving.py:1261 +#: appTools/ToolCopperThieving.py:1309 appTools/ToolCopperThieving.py:1657 +msgid "mm" +msgstr "mm" + +#: appTools/ToolCopperThieving.py:1311 appTools/ToolCopperThieving.py:1659 +msgid "in" +msgstr "in" + +#: appTools/ToolCopperThieving.py:1327 msgid "" "- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be " @@ -14560,12 +14626,12 @@ msgstr "" "belirleyebilirsiniz.\n" "- 'Nesne' - Belirtilen nesne alanı içinde bakır dolgusu yapar." -#: appTools/ToolCopperThieving.py:1268 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1334 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4336 appTools/ToolPaint.py:3126 msgid "Ref. Type" msgstr "Seçilen Tür" -#: appTools/ToolCopperThieving.py:1270 +#: appTools/ToolCopperThieving.py:1336 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14573,21 +14639,21 @@ msgstr "" "Bakır dolgusu için şablon olarak kullanılacak FlatCAM nesnesinin türü.\n" "Gerber, Excellon veya Şekil olabilir." -#: appTools/ToolCopperThieving.py:1279 appTools/ToolIsolation.py:3409 +#: appTools/ToolCopperThieving.py:1345 appTools/ToolIsolation.py:3409 #: appTools/ToolNCC.py:4346 appTools/ToolPaint.py:3136 msgid "Ref. Object" msgstr "Nesne Türü" -#: appTools/ToolCopperThieving.py:1281 appTools/ToolIsolation.py:3411 +#: appTools/ToolCopperThieving.py:1347 appTools/ToolIsolation.py:3411 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3138 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "Bakır temizlemeye şablon olarak kullanılacak FlatCAM nesnesi." -#: appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCopperThieving.py:1524 msgid "Insert Copper thieving" msgstr "Bakır Dolgu Ekle" -#: appTools/ToolCopperThieving.py:1460 +#: appTools/ToolCopperThieving.py:1527 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14595,11 +14661,11 @@ msgstr "" "Gerçek Gerber yolları dışında kalan alanları \n" "kaplayan ve parçalardan oluşmuş dolgular ekler." -#: appTools/ToolCopperThieving.py:1519 +#: appTools/ToolCopperThieving.py:1586 msgid "Insert Robber Bar" msgstr "Soyguncu Çubuğu Ekle" -#: appTools/ToolCopperThieving.py:1522 +#: appTools/ToolCopperThieving.py:1589 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14611,11 +14677,11 @@ msgstr "" "(Soyguncu çubuğu: Deliklerin kaplanmasını kolaylaştırmak\n" "için bakır kenarlık (çerçeve)." -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1613 msgid "Select Soldermask object" msgstr "Lehim Maskesi Nesnesinin Seçimi" -#: appTools/ToolCopperThieving.py:1548 +#: appTools/ToolCopperThieving.py:1615 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14625,11 +14691,11 @@ msgstr "" "Desen kaplama maskesi için bir \n" "taban olarak kullanılacaktır." -#: appTools/ToolCopperThieving.py:1577 +#: appTools/ToolCopperThieving.py:1644 msgid "Plated area" msgstr "Kaplama Alanı" -#: appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCopperThieving.py:1646 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14647,19 +14713,11 @@ msgstr "" "biraz daha büyüktür ve bu alan lehim maskesi açıklıklarından\n" "hesaplanır." -#: appTools/ToolCopperThieving.py:1590 -msgid "mm" -msgstr "mm" - -#: appTools/ToolCopperThieving.py:1592 -msgid "in" -msgstr "in" - -#: appTools/ToolCopperThieving.py:1599 +#: appTools/ToolCopperThieving.py:1680 msgid "Generate pattern plating mask" msgstr "Desen Kaplama Maskesi Oluştur" -#: appTools/ToolCopperThieving.py:1602 +#: appTools/ToolCopperThieving.py:1683 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14674,7 +14732,7 @@ msgstr "" msgid "Corners Tool" msgstr "Köşe Aracı" -#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:343 +#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:355 msgid "Please select at least a location" msgstr "Lütfen en az bir konum seçin" @@ -14682,51 +14740,51 @@ msgstr "Lütfen en az bir konum seçin" msgid "The tool diameter is zero." msgstr "" -#: appTools/ToolCorners.py:412 +#: appTools/ToolCorners.py:415 msgid "Excellon object with corner drills created." msgstr "" -#: appTools/ToolCorners.py:447 +#: appTools/ToolCorners.py:450 msgid "A Gerber object with corner markers was created." msgstr "" -#: appTools/ToolCorners.py:474 +#: appTools/ToolCorners.py:477 msgid "The Gerber object to which will be added corner markers." msgstr "Köşe işaretleri eklenecek Gerber nesnesi." -#: appTools/ToolCorners.py:490 +#: appTools/ToolCorners.py:493 msgid "Locations" msgstr "Konumlar" -#: appTools/ToolCorners.py:492 +#: appTools/ToolCorners.py:495 msgid "Locations where to place corner markers." msgstr "Köşe işaretlerinin yerleştirileceği yerler." -#: appTools/ToolCorners.py:505 appTools/ToolFiducials.py:735 +#: appTools/ToolCorners.py:508 appTools/ToolFiducials.py:735 msgid "Top Right" msgstr "Sağ Üst" -#: appTools/ToolCorners.py:522 +#: appTools/ToolCorners.py:525 msgid "Toggle ALL" msgstr "TÜMÜNÜ Seç" -#: appTools/ToolCorners.py:602 +#: appTools/ToolCorners.py:605 msgid "Add Marker" msgstr "Köşe İşareti Ekle" -#: appTools/ToolCorners.py:605 +#: appTools/ToolCorners.py:608 msgid "Will add corner markers to the selected Gerber file." msgstr "Seçilen Gerber dosyasına köşe işaretleri ekler." -#: appTools/ToolCorners.py:621 +#: appTools/ToolCorners.py:624 msgid "Drills in Corners" msgstr "" -#: appTools/ToolCorners.py:638 appTools/ToolDblSided.py:928 +#: appTools/ToolCorners.py:641 appTools/ToolDblSided.py:928 msgid "Create Excellon Object" msgstr "Excellon Oluştur" -#: appTools/ToolCorners.py:641 +#: appTools/ToolCorners.py:644 msgid "Will add drill holes in the center of the markers." msgstr "" @@ -19638,11 +19696,11 @@ msgstr "Uç kalınlığı için okunan G-Kod dosyasından Şekil oluşturuluyor" msgid "G91 coordinates not implemented ..." msgstr "G91 koordinatları uygulanmadı ..." -#: defaults.py:867 +#: defaults.py:870 msgid "Could not load defaults file." msgstr "Varsayılan dosya yüklenemedi." -#: defaults.py:880 +#: defaults.py:883 msgid "Failed to parse defaults file." msgstr "Varsayılan dosya okunamadı." @@ -21374,9 +21432,6 @@ msgstr "Değişkenlerde Şekil ismi yok. Lütfen bir isim girin ve tekrar deneyi #~ "
Seed-based: Outwards from seed.
Line-based: Parallel " #~ "lines." -#~ msgid "Area" -#~ msgstr "Area" - #~ msgid "Ref" #~ msgstr "Ref" diff --git a/locale_template/strings.pot b/locale_template/strings.pot index 61060dfd..3cdaeac9 100644 --- a/locale_template/strings.pot +++ b/locale_template/strings.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-11-02 13:42+0200\n" +"POT-Creation-Date: 2020-11-02 17:52+0200\n" "PO-Revision-Date: 2019-03-25 15:08+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -154,7 +154,7 @@ msgstr "" msgid "The user requested a graceful exit of the current task." msgstr "" -#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:344 appTools/ToolIsolation.py:1443 +#: appCommon/Common.py:293 appTools/ToolCopperThieving.py:347 appTools/ToolIsolation.py:1443 #: appTools/ToolNCC.py:1380 msgid "Click the start point of the area." msgstr "" @@ -163,7 +163,7 @@ msgstr "" msgid "Click the end point of the area." msgstr "" -#: appCommon/Common.py:358 appCommon/Common.py:460 appTools/ToolCopperThieving.py:388 +#: appCommon/Common.py:358 appCommon/Common.py:460 appTools/ToolCopperThieving.py:391 #: appTools/ToolIsolation.py:2354 appTools/ToolIsolation.py:2406 appTools/ToolNCC.py:1445 #: appTools/ToolNCC.py:1497 appTools/ToolPaint.py:1225 appTools/ToolPaint.py:1276 msgid "Zone added. Click to start adding next zone or right click to finish." @@ -448,7 +448,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 -#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 appTools/ToolCalculators.py:240 +#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 appTools/ToolCalculators.py:280 #: appTools/ToolCutOut.py:2121 appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "" @@ -672,15 +672,15 @@ msgstr "" #: appDatabase.py:649 appDatabase.py:1157 appEditors/AppGeoEditor.py:473 #: appGUI/ObjectUI.py:1681 appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:307 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:70 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 -#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 appTools/ToolCopperThieving.py:1241 -#: appTools/ToolCopperThieving.py:1493 appTools/ToolCorners.py:584 +#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 appTools/ToolCopperThieving.py:1284 +#: appTools/ToolCopperThieving.py:1560 appTools/ToolCorners.py:587 #: appTools/ToolCutOut.py:2174 appTools/ToolFiducials.py:815 #: appTools/ToolInvertGerber.py:231 appTools/ToolInvertGerber.py:239 #: appTools/ToolNCC.py:4159 appTools/ToolNCC.py:4262 @@ -693,8 +693,8 @@ msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:72 -#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 appTools/ToolCopperThieving.py:1243 -#: appTools/ToolCorners.py:586 appTools/ToolFiducials.py:817 appTools/ToolNCC.py:4161 +#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 appTools/ToolCopperThieving.py:1286 +#: appTools/ToolCorners.py:589 appTools/ToolFiducials.py:817 appTools/ToolNCC.py:4161 #: appTools/ToolNCC.py:4264 msgid "Bounding box margin." msgstr "" @@ -1086,7 +1086,7 @@ msgid "" msgstr "" #: appDatabase.py:1223 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 -#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 appTools/ToolCalculators.py:249 +#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 appTools/ToolCalculators.py:289 #: appTools/ToolCutOut.py:2237 msgid "Tool Diameter" msgstr "" @@ -1096,12 +1096,12 @@ msgstr "" msgid "The drill hole diameter when doing mouse bites." msgstr "" -#: appDatabase.py:1236 appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 +#: appDatabase.py:1236 appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:164 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:193 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:222 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1364 appTools/ToolCopperThieving.py:1404 -#: appTools/ToolCopperThieving.py:1444 appTools/ToolCutOut.py:2249 +#: appTools/ToolCopperThieving.py:1431 appTools/ToolCopperThieving.py:1471 +#: appTools/ToolCopperThieving.py:1511 appTools/ToolCutOut.py:2249 msgid "Spacing" msgstr "" @@ -1195,7 +1195,7 @@ msgid "" "in the Tools Database." msgstr "" -#: appDatabase.py:1367 appGUI/MainGUI.py:1553 appGUI/preferences/PreferencesUIManager.py:946 +#: appDatabase.py:1367 appGUI/MainGUI.py:1553 appGUI/preferences/PreferencesUIManager.py:949 #: app_Main.py:2500 app_Main.py:3527 app_Main.py:4471 app_Main.py:4724 app_Main.py:8998 msgid "Cancel" msgstr "" @@ -1204,11 +1204,11 @@ msgstr "" #: appEditors/AppExcEditor.py:4231 appEditors/appGCodeEditor.py:770 #: appEditors/appGCodeEditor.py:781 appGUI/ObjectUI.py:163 appGUI/ObjectUI.py:174 #: appTool.py:280 appTool.py:291 appTools/ToolAlignObjects.py:517 -#: appTools/ToolAlignObjects.py:528 appTools/ToolCalculators.py:390 -#: appTools/ToolCalculators.py:401 appTools/ToolCalibration.py:1395 -#: appTools/ToolCalibration.py:1406 appTools/ToolCopperThieving.py:1635 -#: appTools/ToolCopperThieving.py:1646 appTools/ToolCorners.py:672 -#: appTools/ToolCorners.py:683 appTools/ToolCutOut.py:2454 appTools/ToolCutOut.py:2465 +#: appTools/ToolAlignObjects.py:528 appTools/ToolCalculators.py:519 +#: appTools/ToolCalculators.py:530 appTools/ToolCalibration.py:1395 +#: appTools/ToolCalibration.py:1406 appTools/ToolCopperThieving.py:1716 +#: appTools/ToolCopperThieving.py:1727 appTools/ToolCorners.py:675 +#: appTools/ToolCorners.py:686 appTools/ToolCutOut.py:2454 appTools/ToolCutOut.py:2465 #: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:975 appTools/ToolDistance.py:660 #: appTools/ToolDistance.py:671 appTools/ToolDistanceMin.py:324 #: appTools/ToolDistanceMin.py:335 appTools/ToolDrilling.py:2666 @@ -1234,11 +1234,11 @@ msgstr "" #: appEditors/AppExcEditor.py:4233 appEditors/appGCodeEditor.py:776 #: appEditors/appGCodeEditor.py:783 appGUI/ObjectUI.py:169 appGUI/ObjectUI.py:176 #: appTool.py:286 appTool.py:293 appTools/ToolAlignObjects.py:523 -#: appTools/ToolAlignObjects.py:530 appTools/ToolCalculators.py:396 -#: appTools/ToolCalculators.py:403 appTools/ToolCalibration.py:1401 -#: appTools/ToolCalibration.py:1408 appTools/ToolCopperThieving.py:1641 -#: appTools/ToolCopperThieving.py:1648 appTools/ToolCorners.py:678 -#: appTools/ToolCorners.py:685 appTools/ToolCutOut.py:2460 appTools/ToolCutOut.py:2467 +#: appTools/ToolAlignObjects.py:530 appTools/ToolCalculators.py:525 +#: appTools/ToolCalculators.py:532 appTools/ToolCalibration.py:1401 +#: appTools/ToolCalibration.py:1408 appTools/ToolCopperThieving.py:1722 +#: appTools/ToolCopperThieving.py:1729 appTools/ToolCorners.py:681 +#: appTools/ToolCorners.py:688 appTools/ToolCutOut.py:2460 appTools/ToolCutOut.py:2467 #: appTools/ToolDblSided.py:970 appTools/ToolDblSided.py:977 appTools/ToolDistance.py:666 #: appTools/ToolDistance.py:673 appTools/ToolDistanceMin.py:330 #: appTools/ToolDistanceMin.py:337 appTools/ToolDrilling.py:2672 @@ -1803,7 +1803,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4012 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:83 appObjects/FlatCAMObj.py:877 -#: appTools/ToolCorners.py:571 appTools/ToolProperties.py:571 +#: appTools/ToolCorners.py:574 appTools/ToolProperties.py:571 msgid "Length" msgstr "" @@ -1948,10 +1948,10 @@ msgstr "" #: appEditors/AppGeoEditor.py:316 appEditors/AppGerberEditor.py:2491 #: appEditors/AppGerberEditor.py:3947 appGUI/ObjectUI.py:316 #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:103 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1391 appTools/ToolCopperThieving.py:1431 +#: appTools/ToolCopperThieving.py:1458 appTools/ToolCopperThieving.py:1498 #: appTools/ToolFiducials.py:799 appTools/ToolPunchGerber.py:1088 msgid "Size" msgstr "" @@ -2086,7 +2086,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:256 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 appTools/ToolIsolation.py:3381 #: appTools/ToolNCC.py:4323 appTools/ToolPaint.py:3104 appTools/ToolTransform.py:557 -#: defaults.py:571 +#: defaults.py:572 msgid "Selection" msgstr "" @@ -2119,7 +2119,9 @@ msgid "A point of reference in format X,Y." msgstr "" #: appEditors/AppGeoEditor.py:671 appEditors/AppGerberEditor.py:2586 -#: appEditors/AppGerberEditor.py:5352 appGUI/ObjectUI.py:2375 appTools/ToolDblSided.py:709 +#: appEditors/AppGerberEditor.py:5352 appGUI/ObjectUI.py:2375 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:288 +#: appTools/ToolCopperThieving.py:1666 appTools/ToolDblSided.py:709 #: appTools/ToolDblSided.py:897 appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 #: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1204 #: appTools/ToolTransform.py:572 app_Main.py:6294 @@ -2760,7 +2762,7 @@ msgstr "" #: appEditors/AppGeoEditor.py:3297 appEditors/AppGerberEditor.py:2491 #: appEditors/AppGerberEditor.py:3947 appEditors/appGCodeEditor.py:687 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2034 -#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 appTools/ToolCorners.py:543 +#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 appTools/ToolCorners.py:546 #: appTools/ToolCutOut.py:2030 appTools/ToolDblSided.py:522 appTools/ToolPunchGerber.py:1088 #: appTools/ToolTransform.py:579 msgid "Type" @@ -3183,7 +3185,7 @@ msgstr "" #: appEditors/AppGerberEditor.py:2710 msgid "" "The threshold value, all areas less than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" #: appEditors/AppGerberEditor.py:2717 @@ -3193,7 +3195,7 @@ msgstr "" #: appEditors/AppGerberEditor.py:2719 msgid "" "The threshold value, all areas more than this are marked.\n" -"Can have a value between 0.0000 and 9999.9999" +"Can have a value between 0.0000 and 10000.0000" msgstr "" #: appEditors/AppGerberEditor.py:2733 @@ -3342,9 +3344,9 @@ msgstr "" msgid "No aperture to buffer. Select at least one aperture and try again." msgstr "" -#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:303 -#: appTools/ToolCopperThieving.py:898 appTools/ToolCopperThieving.py:1061 -#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:410 appTools/ToolCutOut.py:779 +#: appEditors/AppGerberEditor.py:5140 appTools/ToolCopperThieving.py:306 +#: appTools/ToolCopperThieving.py:907 appTools/ToolCopperThieving.py:1104 +#: appTools/ToolCorners.py:146 appTools/ToolCorners.py:413 appTools/ToolCutOut.py:779 #: appTools/ToolCutOut.py:905 appTools/ToolCutOut.py:1128 appTools/ToolCutOut.py:1278 #: appTools/ToolFiducials.py:240 appTools/ToolFiducials.py:492 appTools/ToolFiducials.py:540 #: appTools/ToolFiducials.py:554 camlib.py:5279 camlib.py:5675 @@ -3518,8 +3520,8 @@ msgstr "" #: appEditors/appGCodeEditor.py:687 appEditors/appGCodeEditor.py:698 appGUI/ObjectUI.py:999 #: appGUI/ObjectUI.py:2034 appGUI/ObjectUI.py:2044 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1351 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 +#: appTools/ToolCopperThieving.py:1418 msgid "Dia" msgstr "" @@ -3817,8 +3819,8 @@ msgstr "" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appObjects/ObjectCollection.py:234 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2027 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2027 #: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:771 appTools/ToolFilm.py:933 #: appTools/ToolFilm.py:956 appTools/ToolImage.py:135 appTools/ToolImage.py:190 #: appTools/ToolIsolation.py:3351 appTools/ToolIsolation.py:3404 appTools/ToolNCC.py:3872 @@ -3843,15 +3845,15 @@ msgstr "" #: appTools/ToolAlignObjects.py:434 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:891 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolCutOut.py:2026 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2026 #: appTools/ToolDblSided.py:528 appTools/ToolDblSided.py:769 appTools/ToolFilm.py:932 #: appTools/ToolFilm.py:955 appTools/ToolImage.py:116 appTools/ToolImage.py:137 #: appTools/ToolImage.py:190 appTools/ToolIsolation.py:3352 appTools/ToolIsolation.py:3404 #: appTools/ToolNCC.py:3873 appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 #: appTools/ToolPanelize.py:148 appTools/ToolPanelize.py:168 appTools/ToolPanelize.py:716 #: appTools/ToolPanelize.py:810 appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 -#: defaults.py:572 +#: defaults.py:573 msgid "Gerber" msgstr "" @@ -3871,8 +3873,8 @@ msgstr "" #: appTools/ToolAlignObjects.py:435 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:892 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1274 -#: appTools/ToolCopperThieving.py:1288 appTools/ToolDblSided.py:530 +#: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 +#: appTools/ToolCopperThieving.py:1354 appTools/ToolDblSided.py:530 #: appTools/ToolDblSided.py:728 appTools/ToolDblSided.py:770 appTools/ToolFilm.py:1211 #: appTools/ToolIsolation.py:3404 appTools/ToolNCC.py:4342 appTools/ToolPaint.py:3132 #: appTools/ToolPanelize.py:148 appTools/ToolPunchGerber.py:1128 @@ -4066,7 +4068,7 @@ msgstr "" msgid "Export Preferences to file" msgstr "" -#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1188 +#: appGUI/MainGUI.py:314 appGUI/preferences/PreferencesUIManager.py:1191 msgid "Save Preferences" msgstr "" @@ -4207,10 +4209,10 @@ msgid "Q" msgstr "" #: appGUI/MainGUI.py:454 appGUI/MainGUI.py:1263 -#: appGUI/preferences/PreferencesUIManager.py:913 -#: appGUI/preferences/PreferencesUIManager.py:1006 -#: appGUI/preferences/PreferencesUIManager.py:1034 -#: appGUI/preferences/PreferencesUIManager.py:1139 app_Main.py:5739 app_Main.py:5744 +#: appGUI/preferences/PreferencesUIManager.py:916 +#: appGUI/preferences/PreferencesUIManager.py:1009 +#: appGUI/preferences/PreferencesUIManager.py:1037 +#: appGUI/preferences/PreferencesUIManager.py:1142 app_Main.py:5739 app_Main.py:5744 #: app_Main.py:5759 msgid "Preferences" msgstr "" @@ -4895,7 +4897,7 @@ msgid "QRCode Tool" msgstr "" #: appGUI/MainGUI.py:1079 appGUI/MainGUI.py:2248 appGUI/MainGUI.py:4475 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1168 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1211 msgid "Copper Thieving Tool" msgstr "" @@ -4919,7 +4921,7 @@ msgid "Invert Gerber Tool" msgstr "" #: appGUI/MainGUI.py:1090 appGUI/MainGUI.py:2259 appGUI/MainGUI.py:4478 -#: appTools/ToolCorners.py:452 +#: appTools/ToolCorners.py:455 msgid "Corner Markers Tool" msgstr "" @@ -5061,7 +5063,7 @@ msgstr "" msgid "Plot Area" msgstr "" -#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1200 appTools/ToolCorners.py:472 +#: appGUI/MainGUI.py:1429 appTools/ToolCopperThieving.py:1243 appTools/ToolCorners.py:475 #: appTools/ToolEtchCompensation.py:291 appTools/ToolExtractDrills.py:454 #: appTools/ToolFiducials.py:902 appTools/ToolInvertGerber.py:212 #: appTools/ToolIsolation.py:2999 appTools/ToolOptimal.py:421 @@ -5218,13 +5220,13 @@ msgstr "" msgid "Are you sure you want to delete the GUI Settings? \n" msgstr "" -#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:945 -#: appGUI/preferences/PreferencesUIManager.py:1192 appTranslation.py:111 +#: appGUI/MainGUI.py:2114 appGUI/preferences/PreferencesUIManager.py:948 +#: appGUI/preferences/PreferencesUIManager.py:1195 appTranslation.py:111 #: appTranslation.py:213 app_Main.py:2498 app_Main.py:3525 app_Main.py:5980 app_Main.py:8996 msgid "Yes" msgstr "" -#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1193 +#: appGUI/MainGUI.py:2115 appGUI/preferences/PreferencesUIManager.py:1196 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:49 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:62 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 @@ -5902,8 +5904,8 @@ msgstr "" #: appGUI/ObjectUI.py:202 appGUI/ObjectUI.py:552 #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1321 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:132 +#: appTools/ToolCopperThieving.py:1388 msgid "Solid" msgstr "" @@ -7264,40 +7266,40 @@ msgid "" "of text positions." msgstr "" -#: appGUI/preferences/PreferencesUIManager.py:920 +#: appGUI/preferences/PreferencesUIManager.py:923 msgid "Preferences applied." msgstr "" -#: appGUI/preferences/PreferencesUIManager.py:940 +#: appGUI/preferences/PreferencesUIManager.py:943 msgid "Are you sure you want to continue?" msgstr "" -#: appGUI/preferences/PreferencesUIManager.py:941 +#: appGUI/preferences/PreferencesUIManager.py:944 msgid "Application will restart" msgstr "" -#: appGUI/preferences/PreferencesUIManager.py:1039 +#: appGUI/preferences/PreferencesUIManager.py:1042 msgid "Preferences closed without saving." msgstr "" -#: appGUI/preferences/PreferencesUIManager.py:1051 +#: appGUI/preferences/PreferencesUIManager.py:1054 msgid "Preferences default values are restored." msgstr "" -#: appGUI/preferences/PreferencesUIManager.py:1082 app_Main.py:2833 app_Main.py:9670 +#: appGUI/preferences/PreferencesUIManager.py:1085 app_Main.py:2833 app_Main.py:9670 msgid "Failed to write defaults to file." msgstr "" -#: appGUI/preferences/PreferencesUIManager.py:1086 -#: appGUI/preferences/PreferencesUIManager.py:1201 +#: appGUI/preferences/PreferencesUIManager.py:1089 +#: appGUI/preferences/PreferencesUIManager.py:1204 msgid "Preferences saved." msgstr "" -#: appGUI/preferences/PreferencesUIManager.py:1136 +#: appGUI/preferences/PreferencesUIManager.py:1139 msgid "Preferences edited but not saved." msgstr "" -#: appGUI/preferences/PreferencesUIManager.py:1186 +#: appGUI/preferences/PreferencesUIManager.py:1189 msgid "" "One or more values are changed.\n" "Do you want to save the Preferences?" @@ -7333,7 +7335,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 appTools/ToolCalibration.py:762 -#: appTools/ToolCopperThieving.py:1219 appTools/ToolCorners.py:536 +#: appTools/ToolCopperThieving.py:1262 appTools/ToolCorners.py:539 #: appTools/ToolEtchCompensation.py:356 appTools/ToolFiducials.py:792 #: appTools/ToolInvertGerber.py:225 appTools/ToolQRCode.py:702 msgid "Parameters" @@ -7689,7 +7691,7 @@ msgstr "" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:96 #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:182 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:47 -#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 appTools/ToolCalculators.py:187 +#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:87 appTools/ToolCalculators.py:227 #: appTools/ToolPcbWizard.py:453 msgid "INCH" msgstr "" @@ -7698,7 +7700,7 @@ msgstr "" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:183 #: appGUI/preferences/general/GeneralAppPrefGroupUI.py:43 #: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:48 -#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 appTools/ToolCalculators.py:188 +#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:88 appTools/ToolCalculators.py:228 #: appTools/ToolPcbWizard.py:454 msgid "MM" msgstr "" @@ -8016,8 +8018,9 @@ msgid "" msgstr "" #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73 -#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 appTools/ToolFilm.py:1109 -#: appTools/ToolMilling.py:1771 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:293 +#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 appTools/ToolCopperThieving.py:1671 +#: appTools/ToolFilm.py:1109 appTools/ToolMilling.py:1771 msgid "Both" msgstr "" @@ -9003,8 +9006,8 @@ msgid "\"Follow\"" msgstr "" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 appObjects/FlatCAMGerber.py:368 -#: appTools/ToolCopperThieving.py:568 appTools/ToolCopperThieving.py:774 -#: appTools/ToolCopperThieving.py:787 appTools/ToolIsolation.py:1360 +#: appTools/ToolCopperThieving.py:575 appTools/ToolCopperThieving.py:778 +#: appTools/ToolCopperThieving.py:791 appTools/ToolIsolation.py:1360 #: appTools/ToolNCC.py:1807 appTools/ToolNCC.py:1834 appTools/ToolNCC.py:1942 #: appTools/ToolNCC.py:1955 appTools/ToolNCC.py:2857 appTools/ToolNCC.py:2962 #: appTools/ToolNCC.py:2977 appTools/ToolNCC.py:3244 appTools/ToolNCC.py:3345 @@ -9021,10 +9024,12 @@ msgid "" msgstr "" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:71 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:296 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 appObjects/FlatCAMObj.py:755 #: appObjects/FlatCAMObj.py:758 appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 -#: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 appTools/ToolFiducials.py:844 +#: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 +#: appTools/ToolCopperThieving.py:1674 appTools/ToolFiducials.py:844 #: appTools/ToolFilm.py:1106 appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 #: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 #: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 @@ -9268,8 +9273,8 @@ msgid "Number of steps (lines) used to interpolate circles." msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolCopperThieving.py:1563 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:274 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolCopperThieving.py:1630 msgid "Clearance" msgstr "" @@ -9280,35 +9285,47 @@ msgid "" "and the copper traces in the Gerber file." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 -#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 appTools/ToolCopperThieving.py:1255 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:85 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 +#: appTools/ToolCalculators.py:342 appTools/ToolCalculators.py:385 +#: appTools/ToolCopperThieving.py:1298 +msgid "Area" +msgstr "" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appTools/ToolCopperThieving.py:1300 +msgid "Thieving areas with area less then this value will not be added." +msgstr "" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:99 +#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 appTools/ToolCopperThieving.py:1321 #: appTools/ToolNCC.py:4319 msgid "Itself" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:100 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 appTools/ToolCopperThieving.py:1256 +#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 appTools/ToolCopperThieving.py:1322 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:4319 appTools/ToolPaint.py:3116 msgid "Area Selection" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 appTools/ToolCopperThieving.py:1257 +#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 appTools/ToolCopperThieving.py:1323 #: appTools/ToolDblSided.py:761 appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:4319 #: appTools/ToolPaint.py:3116 tclCommands/TclCommandPaint.py:166 msgid "Reference Object" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1259 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:103 +#: appTools/ToolCopperThieving.py:1325 msgid "Reference:" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:105 msgid "" "- 'Itself' - the copper Thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be filled.\n" @@ -9316,56 +9333,56 @@ msgid "" "object." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:114 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1301 appTools/ToolExtractDrills.py:495 +#: appTools/ToolCopperThieving.py:1372 appTools/ToolExtractDrills.py:495 #: appTools/ToolExtractDrills.py:628 appTools/ToolPunchGerber.py:1068 #: appTools/ToolPunchGerber.py:1240 msgid "Rectangular" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1302 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:115 +#: appTools/ToolCopperThieving.py:1373 msgid "Minimal" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1304 appTools/ToolFilm.py:958 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:117 +#: appTools/ToolCopperThieving.py:1366 appTools/ToolFilm.py:958 msgid "Box Type:" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1306 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 +#: appTools/ToolCopperThieving.py:1368 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1322 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:133 +#: appTools/ToolCopperThieving.py:1389 msgid "Dots Grid" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1323 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 +#: appTools/ToolCopperThieving.py:1390 msgid "Squares Grid" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1324 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:135 +#: appTools/ToolCopperThieving.py:1391 msgid "Lines Grid" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1326 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:137 +#: appTools/ToolCopperThieving.py:1393 msgid "Fill Type:" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1328 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:139 +#: appTools/ToolCopperThieving.py:1395 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -9373,97 +9390,113 @@ msgid "" "- 'Lines Grid' - the empty area will be filled with a pattern of lines." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1347 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:147 +#: appTools/ToolCopperThieving.py:1414 msgid "Dots Grid Parameters" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1353 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 +#: appTools/ToolCopperThieving.py:1420 msgid "Dot diameter in Dots Grid." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1366 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:166 +#: appTools/ToolCopperThieving.py:1433 msgid "Distance between each two dots in Dots Grid." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1387 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:176 +#: appTools/ToolCopperThieving.py:1454 msgid "Squares Grid Parameters" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1393 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 +#: appTools/ToolCopperThieving.py:1460 msgid "Square side size in Squares Grid." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1406 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:195 +#: appTools/ToolCopperThieving.py:1473 msgid "Distance between each two squares in Squares Grid." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1427 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:205 +#: appTools/ToolCopperThieving.py:1494 msgid "Lines Grid Parameters" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1433 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 +#: appTools/ToolCopperThieving.py:1500 msgid "Line thickness size in Lines Grid." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1446 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:224 +#: appTools/ToolCopperThieving.py:1513 msgid "Distance between each two lines in Lines Grid." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1485 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:234 +#: appTools/ToolCopperThieving.py:1552 msgid "Robber Bar Parameters" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1487 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:236 +#: appTools/ToolCopperThieving.py:1554 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1495 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 +#: appTools/ToolCopperThieving.py:1562 msgid "Bounding box margin for robber bar." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:255 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appTools/ToolCopperThieving.py:1506 appTools/ToolCorners.py:557 +#: appTools/ToolCopperThieving.py:1573 appTools/ToolCorners.py:560 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1508 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:257 +#: appTools/ToolCopperThieving.py:1575 msgid "The robber bar thickness." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1540 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:267 +#: appTools/ToolCopperThieving.py:1607 msgid "Pattern Plating Mask" msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1542 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:269 +#: appTools/ToolCopperThieving.py:1609 msgid "Generate a mask for pattern plating." msgstr "" -#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1565 +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:276 +#: appTools/ToolCopperThieving.py:1632 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." msgstr "" +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:290 +#: appTools/ToolCopperThieving.py:1668 +msgid "Choose which additional geometry to include, if available." +msgstr "" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:294 +#: appTools/ToolCopperThieving.py:499 appTools/ToolCopperThieving.py:503 +#: appTools/ToolCopperThieving.py:565 appTools/ToolCopperThieving.py:1672 +msgid "Thieving" +msgstr "" + +#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:295 +#: appTools/ToolCopperThieving.py:1673 +msgid "Robber bar" +msgstr "" + #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:27 msgid "Calibration Tool Options" msgstr "" @@ -9473,7 +9506,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1221 appTools/ToolCorners.py:538 +#: appTools/ToolCopperThieving.py:1264 appTools/ToolCorners.py:541 #: appTools/ToolFiducials.py:794 msgid "Parameters used for this tool." msgstr "" @@ -9759,7 +9792,7 @@ msgid "" msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:49 appTools/ToolCorners.py:550 +#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:49 appTools/ToolCorners.py:553 #: appTools/ToolFiducials.py:864 msgid "Cross" msgstr "" @@ -10215,7 +10248,7 @@ msgid "Calculators Tool Options" msgstr "" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31 -#: appTools/ToolCalculators.py:152 +#: appTools/ToolCalculators.py:191 msgid "V-Shape Tool Calculator" msgstr "" @@ -10227,19 +10260,19 @@ msgid "" msgstr "" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50 -#: appTools/ToolCalculators.py:220 +#: appTools/ToolCalculators.py:260 msgid "Tip Diameter" msgstr "" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52 -#: appTools/ToolCalculators.py:228 +#: appTools/ToolCalculators.py:268 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." msgstr "" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64 -#: appTools/ToolCalculators.py:231 +#: appTools/ToolCalculators.py:271 msgid "Tip Angle" msgstr "" @@ -10256,56 +10289,61 @@ msgid "" msgstr "" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87 -#: appTools/ToolCalculators.py:154 +#: appTools/ToolCalculators.py:193 msgid "ElectroPlating Calculator" msgstr "" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89 -#: appTools/ToolCalculators.py:284 +#: appTools/ToolCalculators.py:324 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like graphite ink or calcium hypophosphite ink or palladium chloride." msgstr "" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:100 -#: appTools/ToolCalculators.py:293 +#: appTools/ToolCalculators.py:349 msgid "Board Length" msgstr "" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102 -#: appTools/ToolCalculators.py:299 +#: appTools/ToolCalculators.py:350 msgid "This is the board length. In centimeters." msgstr "" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112 -#: appTools/ToolCalculators.py:301 +#: appTools/ToolCalculators.py:367 msgid "Board Width" msgstr "" #: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114 -#: appTools/ToolCalculators.py:307 +#: appTools/ToolCalculators.py:368 msgid "This is the board width.In centimeters." msgstr "" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119 -#: appTools/ToolCalculators.py:309 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:120 +#: appTools/ToolCalculators.py:386 +msgid "This is the board area." +msgstr "" + +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:130 +#: appTools/ToolCalculators.py:408 msgid "Current Density" msgstr "" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125 -#: appTools/ToolCalculators.py:316 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:136 +#: appTools/ToolCalculators.py:409 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." msgstr "" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:131 -#: appTools/ToolCalculators.py:319 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:142 +#: appTools/ToolCalculators.py:428 msgid "Copper Growth" msgstr "" -#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137 -#: appTools/ToolCalculators.py:326 +#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:148 +#: appTools/ToolCalculators.py:429 msgid "" "How thick the copper growth is intended to be.\n" "In microns." @@ -10315,28 +10353,28 @@ msgstr "" msgid "Corner Markers Options" msgstr "" -#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 appTools/ToolCorners.py:545 +#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 appTools/ToolCorners.py:548 msgid "Shape of the marker." msgstr "" -#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:48 appTools/ToolCorners.py:549 +#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:48 appTools/ToolCorners.py:552 msgid "Semi-Cross" msgstr "" -#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 appTools/ToolCorners.py:559 +#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 appTools/ToolCorners.py:562 msgid "The thickness of the line that makes the corner marker." msgstr "" -#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:85 appTools/ToolCorners.py:573 +#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:85 appTools/ToolCorners.py:576 msgid "The length of the line that makes the corner marker." msgstr "" -#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:96 appTools/ToolCorners.py:625 +#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:96 appTools/ToolCorners.py:628 #: appTools/ToolDblSided.py:827 msgid "Drill Dia" msgstr "" -#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:98 appTools/ToolCorners.py:627 +#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:98 appTools/ToolCorners.py:630 msgid "Drill Diameter" msgstr "" @@ -10592,17 +10630,17 @@ msgid "" "It can be one of the four points of the geometry bounding box." msgstr "" -#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 appTools/ToolCorners.py:509 +#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 appTools/ToolCorners.py:512 #: appTools/ToolFiducials.py:723 appTools/ToolFilm.py:1069 msgid "Bottom Left" msgstr "" -#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 appTools/ToolCorners.py:501 +#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 appTools/ToolCorners.py:504 #: appTools/ToolFilm.py:1070 msgid "Top Left" msgstr "" -#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 appTools/ToolCorners.py:513 +#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 appTools/ToolCorners.py:516 #: appTools/ToolFilm.py:1071 msgid "Bottom Right" msgstr "" @@ -10819,8 +10857,8 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 appObjects/AppObject.py:452 #: appObjects/FlatCAMObj.py:266 appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1072 -#: appTools/ToolCorners.py:416 appTools/ToolFiducials.py:563 appTools/ToolMove.py:229 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1115 +#: appTools/ToolCorners.py:419 appTools/ToolFiducials.py:563 appTools/ToolMove.py:229 #: appTools/ToolQRCode.py:466 app_Main.py:4813 msgid "Plotting" msgstr "" @@ -11714,7 +11752,7 @@ msgstr "" msgid "CNCjob created" msgstr "" -#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:586 +#: appObjects/FlatCAMGeometry.py:2564 appTools/ToolCopperThieving.py:593 #: appTools/ToolFilm.py:639 appTools/ToolFilm.py:883 appTools/ToolIsolation.py:930 #: appTools/ToolNCC.py:868 appTools/ToolOptimal.py:145 appTools/ToolPanelize.py:613 #: appTools/ToolRulesCheck.py:627 @@ -11826,7 +11864,8 @@ msgstr "" msgid "Skewing..." msgstr "" -#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:152 +#: appObjects/FlatCAMObj.py:487 appTools/ToolCalculators.py:341 +#: appTools/ToolProperties.py:152 msgid "Dimensions" msgstr "" @@ -12165,9 +12204,9 @@ msgid "" "If tho points are used it assume translation and rotation." msgstr "" -#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1617 -#: appTools/ToolCorners.py:654 appTools/ToolCutOut.py:2411 appTools/ToolDblSided.py:946 +#: appTools/ToolAlignObjects.py:499 appTools/ToolCalculators.py:501 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1698 +#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2411 appTools/ToolDblSided.py:946 #: appTools/ToolDrilling.py:2649 appTools/ToolEtchCompensation.py:459 #: appTools/ToolExtractDrills.py:699 appTools/ToolFiducials.py:962 appTools/ToolFilm.py:1387 #: appTools/ToolInvertGerber.py:284 appTools/ToolIsolation.py:3490 @@ -12178,9 +12217,9 @@ msgstr "" msgid "Reset Tool" msgstr "" -#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1620 -#: appTools/ToolCorners.py:657 appTools/ToolCutOut.py:2414 appTools/ToolDblSided.py:949 +#: appTools/ToolAlignObjects.py:502 appTools/ToolCalculators.py:504 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1701 +#: appTools/ToolCorners.py:660 appTools/ToolCutOut.py:2414 appTools/ToolDblSided.py:949 #: appTools/ToolDrilling.py:2652 appTools/ToolEtchCompensation.py:462 #: appTools/ToolExtractDrills.py:702 appTools/ToolFiducials.py:965 appTools/ToolFilm.py:1390 #: appTools/ToolInvertGerber.py:287 appTools/ToolIsolation.py:3493 @@ -12191,76 +12230,93 @@ msgstr "" msgid "Will reset the tool parameters." msgstr "" -#: appTools/ToolCalculators.py:77 +#: appTools/ToolCalculators.py:79 msgid "Calc. Tool" msgstr "" -#: appTools/ToolCalculators.py:151 +#: appTools/ToolCalculators.py:190 msgid "Calculators" msgstr "" -#: appTools/ToolCalculators.py:153 +#: appTools/ToolCalculators.py:192 msgid "Units Calculator" msgstr "" -#: appTools/ToolCalculators.py:196 +#: appTools/ToolCalculators.py:236 msgid "Here you enter the value to be converted from INCH to MM" msgstr "" -#: appTools/ToolCalculators.py:201 +#: appTools/ToolCalculators.py:241 msgid "Here you enter the value to be converted from MM to INCH" msgstr "" -#: appTools/ToolCalculators.py:237 +#: appTools/ToolCalculators.py:277 msgid "" "This is the angle of the tip of the tool.\n" "It is specified by manufacturer." msgstr "" -#: appTools/ToolCalculators.py:246 +#: appTools/ToolCalculators.py:286 msgid "" "This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter." msgstr "" -#: appTools/ToolCalculators.py:254 +#: appTools/ToolCalculators.py:294 msgid "" "This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" "In the CNCJob section it is called >Tool dia<." msgstr "" -#: appTools/ToolCalculators.py:265 appTools/ToolCalculators.py:361 +#: appTools/ToolCalculators.py:305 appTools/ToolCalculators.py:490 msgid "Calculate" msgstr "" -#: appTools/ToolCalculators.py:268 +#: appTools/ToolCalculators.py:309 msgid "" "Calculate either the Cut Z or the effective tool diameter,\n" " depending on which is desired and which is known. " msgstr "" -#: appTools/ToolCalculators.py:331 -msgid "Current Value" +#: appTools/ToolCalculators.py:336 +msgid "Area Calculation" msgstr "" #: appTools/ToolCalculators.py:338 +msgid "Choose how to calculate the board area." +msgstr "" + +#: appTools/ToolCalculators.py:356 appTools/ToolCalculators.py:374 +#: appTools/ToolCalculators.py:392 +msgid "cm" +msgstr "" + +#: appTools/ToolCalculators.py:437 +msgid "um" +msgstr "" + +#: appTools/ToolCalculators.py:448 +msgid "Current Value" +msgstr "" + +#: appTools/ToolCalculators.py:449 msgid "" "This is the current intensity value\n" "to be set on the Power Supply. In Amps." msgstr "" -#: appTools/ToolCalculators.py:342 +#: appTools/ToolCalculators.py:469 msgid "Time" msgstr "" -#: appTools/ToolCalculators.py:349 +#: appTools/ToolCalculators.py:470 msgid "" "This is the calculated time required for the procedure.\n" "In minutes." msgstr "" -#: appTools/ToolCalculators.py:364 +#: appTools/ToolCalculators.py:493 msgid "" "Calculate the current intensity value and the procedure time,\n" "depending on the parameters above" @@ -12532,45 +12588,45 @@ msgid "" "with the factors determined above." msgstr "" -#: appTools/ToolCopperThieving.py:184 appTools/ToolCopperThieving.py:209 +#: appTools/ToolCopperThieving.py:186 appTools/ToolCopperThieving.py:211 msgid "Lines Grid works only for 'itself' reference ..." msgstr "" -#: appTools/ToolCopperThieving.py:195 +#: appTools/ToolCopperThieving.py:197 msgid "Solid fill selected." msgstr "" -#: appTools/ToolCopperThieving.py:200 +#: appTools/ToolCopperThieving.py:202 msgid "Dots grid fill selected." msgstr "" -#: appTools/ToolCopperThieving.py:205 +#: appTools/ToolCopperThieving.py:207 msgid "Squares grid fill selected." msgstr "" -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:324 -#: appTools/ToolCopperThieving.py:936 appTools/ToolCorners.py:127 -#: appTools/ToolCorners.py:353 appTools/ToolDblSided.py:307 +#: appTools/ToolCopperThieving.py:229 appTools/ToolCopperThieving.py:327 +#: appTools/ToolCopperThieving.py:946 appTools/ToolCorners.py:127 +#: appTools/ToolCorners.py:350 appTools/ToolDblSided.py:307 #: appTools/ToolExtractDrills.py:141 appTools/ToolFiducials.py:191 #: appTools/ToolFiducials.py:482 appTools/ToolOptimal.py:138 appTools/ToolPunchGerber.py:381 #: appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "" -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 +#: appTools/ToolCopperThieving.py:242 appTools/ToolCopperThieving.py:847 msgid "Append geometry" msgstr "" -#: appTools/ToolCopperThieving.py:294 appTools/ToolCopperThieving.py:889 -#: appTools/ToolCopperThieving.py:1048 +#: appTools/ToolCopperThieving.py:297 appTools/ToolCopperThieving.py:898 +#: appTools/ToolCopperThieving.py:1091 msgid "Append source file" msgstr "" -#: appTools/ToolCopperThieving.py:307 appTools/ToolCopperThieving.py:902 +#: appTools/ToolCopperThieving.py:310 appTools/ToolCopperThieving.py:911 msgid "Copper Thieving Tool done." msgstr "" -#: appTools/ToolCopperThieving.py:334 appTools/ToolCopperThieving.py:354 +#: appTools/ToolCopperThieving.py:337 appTools/ToolCopperThieving.py:357 #: appTools/ToolCutOut.py:551 appTools/ToolCutOut.py:927 appTools/ToolDrilling.py:726 #: appTools/ToolDrilling.py:1582 appTools/ToolEtchCompensation.py:152 #: appTools/ToolInvertGerber.py:99 appTools/ToolIsolation.py:922 @@ -12584,77 +12640,80 @@ msgstr "" msgid "Could not retrieve object" msgstr "" -#: appTools/ToolCopperThieving.py:382 +#: appTools/ToolCopperThieving.py:385 msgid "Click the end point of the filling area." msgstr "" -#: appTools/ToolCopperThieving.py:496 appTools/ToolCopperThieving.py:500 -#: appTools/ToolCopperThieving.py:558 -msgid "Thieving" -msgstr "" - -#: appTools/ToolCopperThieving.py:507 +#: appTools/ToolCopperThieving.py:510 msgid "Copper Thieving Tool started. Reading parameters." msgstr "" -#: appTools/ToolCopperThieving.py:532 +#: appTools/ToolCopperThieving.py:536 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "" -#: appTools/ToolCopperThieving.py:575 +#: appTools/ToolCopperThieving.py:582 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "" -#: appTools/ToolCopperThieving.py:619 +#: appTools/ToolCopperThieving.py:626 msgid "Geometry not supported for bounding box" msgstr "" -#: appTools/ToolCopperThieving.py:625 appTools/ToolNCC.py:1695 appTools/ToolNCC.py:1750 +#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1695 appTools/ToolNCC.py:1750 #: appTools/ToolNCC.py:2744 appTools/ToolPaint.py:2468 msgid "No object available." msgstr "" -#: appTools/ToolCopperThieving.py:662 appTools/ToolNCC.py:1720 appTools/ToolNCC.py:1773 +#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1720 appTools/ToolNCC.py:1773 #: appTools/ToolNCC.py:2786 msgid "The reference object type is not supported." msgstr "" -#: appTools/ToolCopperThieving.py:667 +#: appTools/ToolCopperThieving.py:674 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "" -#: appTools/ToolCopperThieving.py:683 +#: appTools/ToolCopperThieving.py:710 msgid "Create geometry" msgstr "" -#: appTools/ToolCopperThieving.py:913 appTools/ToolCopperThieving.py:917 +#: appTools/ToolCopperThieving.py:922 appTools/ToolCopperThieving.py:926 msgid "P-Plating Mask" msgstr "" -#: appTools/ToolCopperThieving.py:939 +#: appTools/ToolCopperThieving.py:949 msgid "Append PP-M geometry" msgstr "" -#: appTools/ToolCopperThieving.py:1068 +#: appTools/ToolCopperThieving.py:1111 msgid "Generating Pattern Plating Mask done." msgstr "" -#: appTools/ToolCopperThieving.py:1111 +#: appTools/ToolCopperThieving.py:1154 msgid "Copper Thieving Tool exit." msgstr "" -#: appTools/ToolCopperThieving.py:1202 appTools/ToolFiducials.py:904 +#: appTools/ToolCopperThieving.py:1245 appTools/ToolFiducials.py:904 msgid "Gerber Object to which will be added a copper thieving." msgstr "" -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1271 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" "and the copper traces in the Gerber file." msgstr "" -#: appTools/ToolCopperThieving.py:1261 +#: appTools/ToolCopperThieving.py:1309 appTools/ToolCopperThieving.py:1657 +msgid "mm" +msgstr "" + +#: appTools/ToolCopperThieving.py:1311 appTools/ToolCopperThieving.py:1659 +msgid "in" +msgstr "" + +#: appTools/ToolCopperThieving.py:1327 msgid "" "- 'Itself' - the copper thieving extent is based on the object extent.\n" "- 'Area Selection' - left mouse click to start selection of the area to be filled.\n" @@ -12662,42 +12721,42 @@ msgid "" "object." msgstr "" -#: appTools/ToolCopperThieving.py:1268 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1334 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4336 appTools/ToolPaint.py:3126 msgid "Ref. Type" msgstr "" -#: appTools/ToolCopperThieving.py:1270 +#: appTools/ToolCopperThieving.py:1336 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." msgstr "" -#: appTools/ToolCopperThieving.py:1279 appTools/ToolIsolation.py:3409 +#: appTools/ToolCopperThieving.py:1345 appTools/ToolIsolation.py:3409 #: appTools/ToolNCC.py:4346 appTools/ToolPaint.py:3136 msgid "Ref. Object" msgstr "" -#: appTools/ToolCopperThieving.py:1281 appTools/ToolIsolation.py:3411 +#: appTools/ToolCopperThieving.py:1347 appTools/ToolIsolation.py:3411 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3138 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "" -#: appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCopperThieving.py:1524 msgid "Insert Copper thieving" msgstr "" -#: appTools/ToolCopperThieving.py:1460 +#: appTools/ToolCopperThieving.py:1527 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." msgstr "" -#: appTools/ToolCopperThieving.py:1519 +#: appTools/ToolCopperThieving.py:1586 msgid "Insert Robber Bar" msgstr "" -#: appTools/ToolCopperThieving.py:1522 +#: appTools/ToolCopperThieving.py:1589 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -12705,22 +12764,22 @@ msgid "" "Required when doing holes pattern plating." msgstr "" -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1613 msgid "Select Soldermask object" msgstr "" -#: appTools/ToolCopperThieving.py:1548 +#: appTools/ToolCopperThieving.py:1615 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" "the pattern plating mask." msgstr "" -#: appTools/ToolCopperThieving.py:1577 +#: appTools/ToolCopperThieving.py:1644 msgid "Plated area" msgstr "" -#: appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCopperThieving.py:1646 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -12731,19 +12790,11 @@ msgid "" "calculated from the soldermask openings." msgstr "" -#: appTools/ToolCopperThieving.py:1590 -msgid "mm" -msgstr "" - -#: appTools/ToolCopperThieving.py:1592 -msgid "in" -msgstr "" - -#: appTools/ToolCopperThieving.py:1599 +#: appTools/ToolCopperThieving.py:1680 msgid "Generate pattern plating mask" msgstr "" -#: appTools/ToolCopperThieving.py:1602 +#: appTools/ToolCopperThieving.py:1683 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -12754,7 +12805,7 @@ msgstr "" msgid "Corners Tool" msgstr "" -#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:343 +#: appTools/ToolCorners.py:168 appTools/ToolCorners.py:355 msgid "Please select at least a location" msgstr "" @@ -12762,51 +12813,51 @@ msgstr "" msgid "The tool diameter is zero." msgstr "" -#: appTools/ToolCorners.py:412 +#: appTools/ToolCorners.py:415 msgid "Excellon object with corner drills created." msgstr "" -#: appTools/ToolCorners.py:447 +#: appTools/ToolCorners.py:450 msgid "A Gerber object with corner markers was created." msgstr "" -#: appTools/ToolCorners.py:474 +#: appTools/ToolCorners.py:477 msgid "The Gerber object to which will be added corner markers." msgstr "" -#: appTools/ToolCorners.py:490 +#: appTools/ToolCorners.py:493 msgid "Locations" msgstr "" -#: appTools/ToolCorners.py:492 +#: appTools/ToolCorners.py:495 msgid "Locations where to place corner markers." msgstr "" -#: appTools/ToolCorners.py:505 appTools/ToolFiducials.py:735 +#: appTools/ToolCorners.py:508 appTools/ToolFiducials.py:735 msgid "Top Right" msgstr "" -#: appTools/ToolCorners.py:522 +#: appTools/ToolCorners.py:525 msgid "Toggle ALL" msgstr "" -#: appTools/ToolCorners.py:602 +#: appTools/ToolCorners.py:605 msgid "Add Marker" msgstr "" -#: appTools/ToolCorners.py:605 +#: appTools/ToolCorners.py:608 msgid "Will add corner markers to the selected Gerber file." msgstr "" -#: appTools/ToolCorners.py:621 +#: appTools/ToolCorners.py:624 msgid "Drills in Corners" msgstr "" -#: appTools/ToolCorners.py:638 appTools/ToolDblSided.py:928 +#: appTools/ToolCorners.py:641 appTools/ToolDblSided.py:928 msgid "Create Excellon Object" msgstr "" -#: appTools/ToolCorners.py:641 +#: appTools/ToolCorners.py:644 msgid "Will add drill holes in the center of the markers." msgstr "" @@ -17045,11 +17096,11 @@ msgstr "" msgid "G91 coordinates not implemented ..." msgstr "" -#: defaults.py:867 +#: defaults.py:870 msgid "Could not load defaults file." msgstr "" -#: defaults.py:880 +#: defaults.py:883 msgid "Failed to parse defaults file." msgstr ""