Przeglądaj źródła

Merged marius_stanciu/flatcam_beta/Beta_8.994 into Beta_unstable

Marius Stanciu 5 lat temu
rodzic
commit
5a4422d3ba
90 zmienionych plików z 5976 dodań i 31517 usunięć
  1. 65 0
      CHANGELOG.md
  2. 1 1
      FlatCAM.py
  3. 9 926
      appDatabase.py
  4. 6 6
      appEditors/AppExcEditor.py
  5. 70 60
      appEditors/AppGeoEditor.py
  6. 4 4
      appEditors/AppGerberEditor.py
  7. 57 63
      appEditors/AppTextEditor.py
  8. 2 2
      appEditors/appGCodeEditor.py
  9. 62 4
      appGUI/GUIElements.py
  10. 128 96
      appGUI/MainGUI.py
  11. 21 12
      appGUI/ObjectUI.py
  12. 4 0
      appGUI/PlotCanvas.py
  13. 4 0
      appGUI/PlotCanvasLegacy.py
  14. 30 29
      appGUI/preferences/PreferencesUIManager.py
  15. 1 1
      appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py
  16. 3 3
      appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py
  17. 2 3
      appGUI/preferences/general/GeneralAPPSetGroupUI.py
  18. 3 3
      appGUI/preferences/geometry/GeometryGenPrefGroupUI.py
  19. 1 1
      appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py
  20. 10 0
      appGUI/preferences/tools/ToolsNCCPrefGroupUI.py
  21. 1 3
      appGUI/preferences/tools/ToolsPaintPrefGroupUI.py
  22. 1 1
      appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py
  23. 28 10
      appObjects/AppObject.py
  24. 37 23
      appObjects/FlatCAMCNCJob.py
  25. 9 3
      appObjects/FlatCAMExcellon.py
  26. 2 1
      appObjects/FlatCAMGeometry.py
  27. 2 2
      appObjects/FlatCAMObj.py
  28. 7 7
      appObjects/ObjectCollection.py
  29. 18 18
      appParsers/ParseHPGL2.py
  30. 1 1
      appTool.py
  31. 4 4
      appTools/ToolCalibration.py
  32. 26 24
      appTools/ToolCopperThieving.py
  33. 4 3
      appTools/ToolCorners.py
  34. 12 8
      appTools/ToolCutOut.py
  35. 7 8
      appTools/ToolDblSided.py
  36. 2 2
      appTools/ToolEtchCompensation.py
  37. 3 2
      appTools/ToolExtractDrills.py
  38. 13 11
      appTools/ToolFiducials.py
  39. 8 9
      appTools/ToolFilm.py
  40. 6 6
      appTools/ToolInvertGerber.py
  41. 1 1
      appTools/ToolMilling.py
  42. 2 2
      appTools/ToolMove.py
  43. 242 125
      appTools/ToolNCC.py
  44. 44 44
      appTools/ToolPaint.py
  45. 7 7
      appTools/ToolPanelize.py
  46. 15 19
      appTools/ToolProperties.py
  47. 23 20
      appTools/ToolPunchGerber.py
  48. 3 2
      appTools/ToolQRCode.py
  49. 4 2
      appTools/ToolRulesCheck.py
  50. 1 1
      appTools/ToolShell.py
  51. 23 21
      appTools/ToolSub.py
  52. 6 6
      appTools/ToolTransform.py
  53. 0 1
      appTranslation.py
  54. 1230 1287
      app_Main.py
  55. 1 1
      camlib.py
  56. 39 35
      defaults.py
  57. BIN
      locale/de/LC_MESSAGES/strings.mo
  58. 316 669
      locale/de/LC_MESSAGES/strings.po
  59. BIN
      locale/en/LC_MESSAGES/strings.mo
  60. 311 650
      locale/en/LC_MESSAGES/strings.po
  61. BIN
      locale/es/LC_MESSAGES/strings.mo
  62. 322 691
      locale/es/LC_MESSAGES/strings.po
  63. BIN
      locale/fr/LC_MESSAGES/strings.mo
  64. 321 673
      locale/fr/LC_MESSAGES/strings.po
  65. BIN
      locale/hu/LC_MESSAGES/strings.mo
  66. 0 22024
      locale/hu/LC_MESSAGES/strings.po
  67. BIN
      locale/it/LC_MESSAGES/strings.mo
  68. 312 651
      locale/it/LC_MESSAGES/strings.po
  69. BIN
      locale/pt_BR/LC_MESSAGES/strings.mo
  70. 317 669
      locale/pt_BR/LC_MESSAGES/strings.po
  71. BIN
      locale/ro/LC_MESSAGES/strings.mo
  72. 321 680
      locale/ro/LC_MESSAGES/strings.po
  73. BIN
      locale/ru/LC_MESSAGES/strings.mo
  74. 316 668
      locale/ru/LC_MESSAGES/strings.po
  75. BIN
      locale/tr/LC_MESSAGES/strings.mo
  76. 305 645
      locale/tr/LC_MESSAGES/strings.po
  77. 277 522
      locale_template/strings.pot
  78. 249 0
      preprocessors/Default_no_M6.py
  79. 251 0
      preprocessors/GRBL_11_no_M6.py
  80. 17 17
      tclCommands/TclCommandCopperClear.py
  81. 1 1
      tclCommands/TclCommandExportDXF.py
  82. 1 1
      tclCommands/TclCommandExportExcellon.py
  83. 1 1
      tclCommands/TclCommandExportGerber.py
  84. 1 1
      tclCommands/TclCommandExportSVG.py
  85. 2 0
      tclCommands/TclCommandGetSys.py
  86. 1 1
      tclCommands/TclCommandOpenExcellon.py
  87. 1 1
      tclCommands/TclCommandOpenGCode.py
  88. 1 1
      tclCommands/TclCommandOpenGerber.py
  89. 1 1
      tclCommands/TclCommandOpenProject.py
  90. 16 16
      tclCommands/TclCommandPaint.py

+ 65 - 0
CHANGELOG.md

@@ -7,6 +7,70 @@ CHANGELOG for FlatCAM beta
 
 =================================================
 
+26.10.2020
+
+- added a new menu entry and functionality in the View category: enable all non-selected (shortcut key ALT+3)
+- fixed shortcut keys for a number of functionality and in some cases added some new
+- fixed the enable/disable all plots functionality
+- fixed issue with the app window restored in a shifted position after doing Fullscreen
+- fixed issue with coords, delta_coords and status toolbars being disabled when entering fullscreen mode and remaining disabled after restore to normal mode
+- changed some of the strings (added a few in the How To section)
+
+25.10.2020
+
+- updated the Italian translation (by Massimiliano Golfetto)
+- finished the update of the Spanish translation (Google translate)
+
+24.10.2020
+
+- added a new GUI element, an InputDialog made out of FCSliderWithSpinner named FCInputDialogSlider
+- replaced the InputDialog in the Opacity pop menu for the objects in the Project Tab with a FCInputDialogSlider
+- minor changes
+- UI changes in the AppTextEditor and in CNCJob properties tab and in GCoe Editor
+- some changes in strings; updated all the translation strings to the latest changes
+- finished the Romanian translation
+- created two new preprocessors (from 'default' and from 'grbl_11') that will have no toolchange commands regardless of the settings in the software
+- updated the Turkish translation (by Mehmet Kaya)
+- the methods of the APP class that were the handlers for the File menu are now moved to their own class
+- fixed some of the Tcl Commands that depended on the methods refactored above
+- reverted the preprocessors with no toolchange commands to the original but removed the M6 toolchange command
+- fixed newly introduced issue when doing File -> Print(PDF)
+- fixed newly introduced issues with SysTray and Splash
+- added ability for the app to detect the current DPI used on the screen; applied this information in the Film Tool when exporting PNG files
+- found that Pillow v >= 7.2 breaks Reportlab 3.5.53 (latest version) and creates an error in Film Tool when exporting PNG files. Pillow 7.2 still works.
+
+23.10.2020
+
+- updated Copper Thieving Tool to work with the updated program
+- updated Rules Check Tool - Hole Size rule to work with the new data structure for the Excellon objects
+- updated Rules Check Tool - added an activity message
+- updated some strings, updated the translation strings
+- commented the ToolsDB class since it is not used currently
+- some minor changes in the AppTextEditor.py file
+- removed Hungarian language since it's looking like is no longer being translated
+- added a default properties tab which will hold a set of information's about the application
+- minor changes in the Properties Tool
+- Excellon UI: fixed a small issue with toggling all rows in Tools Table not toggling off and also the milling section in Utilities was not updated
+- some refactoring in the keys of the defaults dictionary
+- fixed an ambiguity in the Tools Database GUI elements
+
+22.10.2020
+
+- added  a message to show if voronoi_diagram method can be used (require Shapely >= 1.8)
+- modified behind the scene the UI for Tool Subtract
+- modified some strings and updated the translation strings
+- in NCC Tool added a check for the validity of the used tools; its only informative
+- in NCC Tool done some refactoring
+- in NCC Tool fixed a bug when using Rest Machining; optimizations
+- in NCC Tool fixed a UI issue
+- updated the Turkish translation (by Mehmet Kaya)
+- small change in the CNCJob UI by replacing the AL checkbox with a checkable QButton
+- disabled the Autolevelling feature in CNCJob due of being not finished and missing also a not-yet-released package: Shapely v 1.8
+- added some new strings for translation and updated the translation strings
+- in ToolsDB2UI class made the vertical layouts have a preferred minimum dimension as opposed to the previous fixed one
+- in Geometry Object made sure that the Tools Table second column is set to Resize to contents
+- fixed a bug in Tool PunchGerber when using an Excellon to punch holes in the Gerber apertures
+
 21.10.2020
 
 - in Geometry Object fixed the issue with not using the End X-Y value and also made some other updates here
@@ -28,6 +92,7 @@ CHANGELOG for FlatCAM beta
 - optimized a bit the UI for Gerber/Excellon/Geometry objects
 - optimized FlatCAMObj.add_properties_items() method
 - updated the Turkish translation (by Mehmet Kaya)
+- added ability to run a callback function with callback_parameters after a new FlatCAM object is created
 
 20.10.2020
 

+ 1 - 1
FlatCAM.py

@@ -90,6 +90,6 @@ if __name__ == '__main__':
         style = settings.value('style', type=str)
         app.setStyle(style)
 
-    fc = App()
+    fc = App(qapp=app)
     sys.exit(app.exec_())
     # app.exec_()

Plik diff jest za duży
+ 9 - 926
appDatabase.py


+ 6 - 6
appEditors/AppExcEditor.py

@@ -1978,9 +1978,9 @@ class AppExcEditor(QtCore.QObject):
         self.e_ui.tools_table_exc.clearSelection()
 
         # Remove anything else in the GUI Selected Tab
-        self.app.ui.selected_scroll_area.takeWidget()
+        self.app.ui.properties_scroll_area.takeWidget()
         # Put ourselves in the GUI Properties Tab
-        self.app.ui.selected_scroll_area.setWidget(self.e_ui.exc_edit_widget)
+        self.app.ui.properties_scroll_area.setWidget(self.e_ui.exc_edit_widget)
         # Switch notebook to Properties page
         self.app.ui.notebook.setCurrentWidget(self.app.ui.properties_tab)
 
@@ -2868,10 +2868,10 @@ class AppExcEditor(QtCore.QObject):
 
             try:
                 edited_obj = self.app.app_obj.new_object("excellon", outname, obj_init)
-                edited_obj.source_file = self.app.export_excellon(obj_name=edited_obj.options['name'],
-                                                                  local_use=edited_obj,
-                                                                  filename=None,
-                                                                  use_thread=False)
+                edited_obj.source_file = self.app.f_handlers.export_excellon(obj_name=edited_obj.options['name'],
+                                                                             local_use=edited_obj,
+                                                                             filename=None,
+                                                                             use_thread=False)
             except Exception as e:
                 self.deactivate()
                 log.error("Error on Edited object creation: %s" % str(e))

+ 70 - 60
appEditors/AppGeoEditor.py

@@ -310,7 +310,7 @@ class TextInputTool(AppTool):
         self.font_italic_tb.setIcon(QtGui.QIcon(self.app.resource_location + '/italic32.png'))
         hlay.addWidget(self.font_italic_tb)
 
-        self.form_layout.addRow(FCLabel('%s:' % "Size"), hlay)
+        self.form_layout.addRow(FCLabel('%s:' % _("Size")), hlay)
 
         # Text input
         self.text_input_entry = FCTextAreaRich()
@@ -547,33 +547,33 @@ class PaintOptionsTool(AppTool):
 
     def set_tool_ui(self):
         # Init appGUI
-        if self.app.defaults["tools_painttooldia"]:
-            self.painttooldia_entry.set_value(self.app.defaults["tools_painttooldia"])
+        if self.app.defaults["tools_paint_tooldia"]:
+            self.painttooldia_entry.set_value(self.app.defaults["tools_paint_tooldia"])
         else:
             self.painttooldia_entry.set_value(0.0)
 
-        if self.app.defaults["tools_paintoverlap"]:
-            self.paintoverlap_entry.set_value(self.app.defaults["tools_paintoverlap"])
+        if self.app.defaults["tools_paint_overlap"]:
+            self.paintoverlap_entry.set_value(self.app.defaults["tools_paint_overlap"])
         else:
             self.paintoverlap_entry.set_value(0.0)
 
-        if self.app.defaults["tools_paintoffset"]:
-            self.paintmargin_entry.set_value(self.app.defaults["tools_paintoffset"])
+        if self.app.defaults["tools_paint_offset"]:
+            self.paintmargin_entry.set_value(self.app.defaults["tools_paint_offset"])
         else:
             self.paintmargin_entry.set_value(0.0)
 
-        if self.app.defaults["tools_paintmethod"]:
-            self.paintmethod_combo.set_value(self.app.defaults["tools_paintmethod"])
+        if self.app.defaults["tools_paint_method"]:
+            self.paintmethod_combo.set_value(self.app.defaults["tools_paint_method"])
         else:
             self.paintmethod_combo.set_value(_("Seed"))
 
-        if self.app.defaults["tools_pathconnect"]:
-            self.pathconnect_cb.set_value(self.app.defaults["tools_pathconnect"])
+        if self.app.defaults["tools_paint_connect"]:
+            self.pathconnect_cb.set_value(self.app.defaults["tools_paint_connect"])
         else:
             self.pathconnect_cb.set_value(False)
 
-        if self.app.defaults["tools_paintcontour"]:
-            self.paintcontour_cb.set_value(self.app.defaults["tools_paintcontour"])
+        if self.app.defaults["tools_paint_contour"]:
+            self.paintcontour_cb.set_value(self.app.defaults["tools_paint_contour"])
         else:
             self.paintcontour_cb.set_value(False)
 
@@ -3419,57 +3419,15 @@ class AppGeoEditor(QtCore.QObject):
 
         self.rtree_index = rtindex.Index()
 
-        def entry2option(opt, entry):
-            """
-
-            :param opt:     A option from the self.options dictionary
-            :param entry:   A GUI element which text value is used
-            :return:
-            """
-            try:
-                text_value = entry.text()
-                if ',' in text_value:
-                    text_value = text_value.replace(',', '.')
-                self.options[opt] = float(text_value)
-            except Exception as e:
-                entry.set_value(self.app.defaults[opt])
-                log.debug("AppGeoEditor.__init__().entry2option() --> %s" % str(e))
-                return
-
-        def grid_changed(goption, gentry):
-            """
-
-            :param goption:     String. Can be either 'global_gridx' or 'global_gridy'
-            :param gentry:      A GUI element which text value is read and used
-            :return:
-            """
-            if goption not in ['global_gridx', 'global_gridy']:
-                return
-
-            entry2option(opt=goption, entry=gentry)
-            # if the grid link is checked copy the value in the GridX field to GridY
-            try:
-                text_value = gentry.text()
-                if ',' in text_value:
-                    text_value = text_value.replace(',', '.')
-                val = float(text_value)
-            except ValueError:
-                return
-
-            if self.app.ui.grid_gap_link_cb.isChecked():
-                self.app.ui.grid_gap_y_entry.set_value(val, decimals=self.decimals)
-
         self.app.ui.grid_gap_x_entry.setValidator(QtGui.QDoubleValidator())
-        self.app.ui.grid_gap_x_entry.textChanged.connect(
-            lambda: grid_changed("global_gridx", self.app.ui.grid_gap_x_entry))
+        self.app.ui.grid_gap_x_entry.textChanged.connect(self.on_gridx_val_changed)
 
         self.app.ui.grid_gap_y_entry.setValidator(QtGui.QDoubleValidator())
-        self.app.ui.grid_gap_y_entry.textChanged.connect(
-            lambda: entry2option("global_gridy", self.app.ui.grid_gap_y_entry))
+        self.app.ui.grid_gap_y_entry.textChanged.connect(self.on_gridy_val_changed)
 
         self.app.ui.snap_max_dist_entry.setValidator(QtGui.QDoubleValidator())
         self.app.ui.snap_max_dist_entry.textChanged.connect(
-            lambda: entry2option("snap_max", self.app.ui.snap_max_dist_entry))
+            lambda: self.entry2option("snap_max", self.app.ui.snap_max_dist_entry))
 
         # if using Paint store here the tool diameter used
         self.paint_tooldia = None
@@ -3522,15 +3480,65 @@ class AppGeoEditor(QtCore.QObject):
         self.delete_selected()
         self.replot()
 
+    def entry2option(self, opt, entry):
+        """
+
+        :param opt:     A option from the self.options dictionary
+        :param entry:   A GUI element which text value is used
+        :return:
+        """
+        try:
+            text_value = entry.text()
+            if ',' in text_value:
+                text_value = text_value.replace(',', '.')
+            self.options[opt] = float(text_value)
+        except Exception as e:
+            entry.set_value(self.app.defaults[opt])
+            log.debug("AppGeoEditor.__init__().entry2option() --> %s" % str(e))
+            return
+
+    def grid_changed(self, goption, gentry):
+        """
+
+        :param goption:     String. Can be either 'global_gridx' or 'global_gridy'
+        :param gentry:      A GUI element which text value is read and used
+        :return:
+        """
+        if goption not in ['global_gridx', 'global_gridy']:
+            return
+
+        self.entry2option(opt=goption, entry=gentry)
+        # if the grid link is checked copy the value in the GridX field to GridY
+        try:
+            text_value = gentry.text()
+            if ',' in text_value:
+                text_value = text_value.replace(',', '.')
+            val = float(text_value)
+        except ValueError:
+            return
+
+        if self.app.ui.grid_gap_link_cb.isChecked():
+            self.app.ui.grid_gap_y_entry.set_value(val, decimals=self.decimals)
+
+    def on_gridx_val_changed(self):
+        self.grid_changed("global_gridx", self.app.ui.grid_gap_x_entry)
+        # try:
+        #     self.app.defaults["global_gridx"] =  float(self.app.ui.grid_gap_x_entry.get_value())
+        # except ValueError:
+        #     return
+
+    def on_gridy_val_changed(self):
+        self.entry2option("global_gridy", self.app.ui.grid_gap_y_entry)
+
     def set_ui(self):
         # updated units
         self.units = self.app.defaults['units'].upper()
         self.decimals = self.app.decimals
 
         # Remove anything else in the GUI Selected Tab
-        self.app.ui.selected_scroll_area.takeWidget()
+        self.app.ui.properties_scroll_area.takeWidget()
         # Put ourselves in the appGUI Properties Tab
-        self.app.ui.selected_scroll_area.setWidget(self.geo_edit_widget)
+        self.app.ui.properties_scroll_area.setWidget(self.geo_edit_widget)
         # Switch notebook to Properties page
         self.app.ui.notebook.setCurrentWidget(self.app.ui.properties_tab)
 
@@ -4025,9 +4033,11 @@ class AppGeoEditor(QtCore.QObject):
 
         # make sure that the cursor shape is enabled/disabled, too
         if self.options['grid_snap'] is True:
+            self.app.defaults['global_grid_snap'] = True
             self.app.inform[str, bool].emit(_("Grid Snap enabled."), False)
             self.app.app_cursor.enabled = True
         else:
+            self.app.defaults['global_grid_snap'] = False
             self.app.app_cursor.enabled = False
             self.app.inform[str, bool].emit(_("Grid Snap disabled."), False)
 

+ 4 - 4
appEditors/AppGerberEditor.py

@@ -3323,9 +3323,9 @@ class AppGerberEditor(QtCore.QObject):
         self.apertures_table.clearSelection()
 
         # Remove anything else in the GUI Properties Tab
-        self.app.ui.selected_scroll_area.takeWidget()
+        self.app.ui.properties_scroll_area.takeWidget()
         # Put ourselves in the GUI Properties Tab
-        self.app.ui.selected_scroll_area.setWidget(self.grb_edit_widget)
+        self.app.ui.properties_scroll_area.setWidget(self.grb_edit_widget)
         # Switch notebook to Properties page
         self.app.ui.notebook.setCurrentWidget(self.app.ui.properties_tab)
 
@@ -4366,8 +4366,8 @@ class AppGerberEditor(QtCore.QObject):
                 app_obj.inform.emit(msg)
                 raise
 
-            grb_obj.source_file = self.app.export_gerber(obj_name=out_name, filename=None,
-                                                         local_use=grb_obj, use_thread=False)
+            grb_obj.source_file = self.app.f_handlers.export_gerber(obj_name=out_name, filename=None,
+                                                                    local_use=grb_obj, use_thread=False)
 
         with self.app.proc_container.new(_("Creating Gerber.")):
             try:

+ 57 - 63
appEditors/AppTextEditor.py

@@ -37,6 +37,7 @@ class AppTextEditor(QtWidgets.QWidget):
             QtWidgets.QSizePolicy.MinimumExpanding
         )
 
+        # UI Layout
         self.main_editor_layout = QtWidgets.QVBoxLayout(self)
         self.main_editor_layout.setContentsMargins(0, 0, 0, 0)
 
@@ -48,6 +49,7 @@ class AppTextEditor(QtWidgets.QWidget):
         self.work_editor_layout.setContentsMargins(2, 2, 2, 2)
         self.t_frame.setLayout(self.work_editor_layout)
 
+        # CODE Editor
         if self.plain_text:
             self.editor_class = FCTextAreaLineNumber()
             self.code_editor = self.editor_class.edit
@@ -72,90 +74,86 @@ class AppTextEditor(QtWidgets.QWidget):
         if text:
             self.code_editor.setPlainText(text)
 
-        self.buttonPreview = FCButton(_('Print Preview'))
-        self.buttonPreview.setIcon(QtGui.QIcon(self.app.resource_location + '/preview32.png'))
-        self.buttonPreview.setToolTip(_("Open a OS standard Preview Print window."))
-        self.buttonPreview.setMinimumWidth(100)
-
-        self.buttonPrint = FCButton(_('Print Code'))
-        self.buttonPrint.setIcon(QtGui.QIcon(self.app.resource_location + '/printer32.png'))
-        self.buttonPrint.setToolTip(_("Open a OS standard Print window."))
-        self.buttonPrint.setMinimumWidth(100)
+        # #############################################################################################################
+        # UI SETUP
+        # #############################################################################################################
+        control_lay = QtWidgets.QHBoxLayout()
+        self.work_editor_layout.addLayout(control_lay, 1, 0, 1, 5)
 
-        self.buttonFind = FCButton(_('Find in Code'))
+        # FIND
+        self.buttonFind = FCButton(_('Find'))
         self.buttonFind.setIcon(QtGui.QIcon(self.app.resource_location + '/find32.png'))
         self.buttonFind.setToolTip(_("Will search and highlight in yellow the string in the Find box."))
-        self.buttonFind.setMinimumWidth(100)
+        control_lay.addWidget(self.buttonFind)
 
+        # Entry FIND
         self.entryFind = FCEntry()
         self.entryFind.setToolTip(_("Find box. Enter here the strings to be searched in the text."))
+        control_lay.addWidget(self.entryFind)
 
+        # REPLACE
         self.buttonReplace = FCButton(_('Replace With'))
         self.buttonReplace.setIcon(QtGui.QIcon(self.app.resource_location + '/replace32.png'))
         self.buttonReplace.setToolTip(_("Will replace the string from the Find box with the one in the Replace box."))
-        self.buttonReplace.setMinimumWidth(100)
+        control_lay.addWidget(self.buttonReplace)
 
+        # Entry REPLACE
         self.entryReplace = FCEntry()
         self.entryReplace.setToolTip(_("String to replace the one in the Find box throughout the text."))
+        control_lay.addWidget(self.entryReplace)
 
+        # Select All
         self.sel_all_cb = QtWidgets.QCheckBox(_('All'))
         self.sel_all_cb.setToolTip(_("When checked it will replace all instances in the 'Find' box\n"
                                      "with the text in the 'Replace' box.."))
+        control_lay.addWidget(self.sel_all_cb)
 
-        self.button_copy_all = FCButton(_('Copy All'))
-        self.button_copy_all.setIcon(QtGui.QIcon(self.app.resource_location + '/copy_file32.png'))
-        self.button_copy_all.setToolTip(_("Will copy all the text in the Code Editor to the clipboard."))
-        self.button_copy_all.setMinimumWidth(100)
+        # COPY All
+        # self.button_copy_all = FCButton(_('Copy All'))
+        # self.button_copy_all.setIcon(QtGui.QIcon(self.app.resource_location + '/copy_file32.png'))
+        # self.button_copy_all.setToolTip(_("Will copy all the text in the Code Editor to the clipboard."))
+        # control_lay.addWidget(self.button_copy_all)
 
+        # Update
         self.button_update_code = QtWidgets.QToolButton()
         self.button_update_code.setIcon(QtGui.QIcon(self.app.resource_location + '/save_as.png'))
         self.button_update_code.setToolTip(_("Save changes internally."))
         self.button_update_code.hide()
+        control_lay.addWidget(self.button_update_code)
+
+        # Print PREVIEW
+        self.buttonPreview = QtWidgets.QToolButton()
+        self.buttonPreview.setIcon(QtGui.QIcon(self.app.resource_location + '/preview32.png'))
+        self.buttonPreview.setToolTip(_("Open a OS standard Preview Print window."))
+        control_lay.addWidget(self.buttonPreview)
 
-        self.buttonOpen = FCButton(_('Open Code'))
+        # PRINT
+        self.buttonPrint = QtWidgets.QToolButton()
+        self.buttonPrint.setIcon(QtGui.QIcon(self.app.resource_location + '/printer32.png'))
+        self.buttonPrint.setToolTip(_("Open a OS standard Print window."))
+        control_lay.addWidget(self.buttonPrint)
+
+        # OPEN
+        self.buttonOpen = QtWidgets.QToolButton()
         self.buttonOpen.setIcon(QtGui.QIcon(self.app.resource_location + '/folder32_bis.png'))
         self.buttonOpen.setToolTip(_("Will open a text file in the editor."))
-        self.buttonOpen.setMinimumWidth(100)
+        control_lay.addWidget(self.buttonOpen)
 
-        self.buttonSave = FCButton(_('Save Code'))
+        # SAVE
+        self.buttonSave = QtWidgets.QToolButton()
         self.buttonSave.setIcon(QtGui.QIcon(self.app.resource_location + '/save_as.png'))
         self.buttonSave.setToolTip(_("Will save the text in the editor into a file."))
-        self.buttonSave.setMinimumWidth(100)
+        control_lay.addWidget(self.buttonSave)
 
-        self.buttonRun = FCButton(_('Run Code'))
+        # RUN
+        self.buttonRun = FCButton(_('Run'))
         self.buttonRun.setToolTip(_("Will run the TCL commands found in the text file, one by one."))
-        self.buttonRun.setMinimumWidth(100)
-
         self.buttonRun.hide()
+        control_lay.addWidget(self.buttonRun)
 
-        editor_hlay_1 = QtWidgets.QHBoxLayout()
-        # cnc_tab_lay_1.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
-        editor_hlay_1.addWidget(self.buttonFind)
-        editor_hlay_1.addWidget(self.entryFind)
-        editor_hlay_1.addWidget(self.buttonReplace)
-        editor_hlay_1.addWidget(self.entryReplace)
-        editor_hlay_1.addWidget(self.sel_all_cb)
-        editor_hlay_1.addWidget(self.button_copy_all)
-        editor_hlay_1.addWidget(self.button_update_code)
-        self.work_editor_layout.addLayout(editor_hlay_1, 1, 0, 1, 5)
-
-        editor_hlay_2 = QtWidgets.QHBoxLayout()
-        editor_hlay_2.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
-        editor_hlay_2.addWidget(self.buttonPreview)
-        editor_hlay_2.addWidget(self.buttonPrint)
-        self.work_editor_layout.addLayout(editor_hlay_2, 2, 0, 1, 1, QtCore.Qt.AlignLeft)
-
-        cnc_tab_lay_4 = QtWidgets.QHBoxLayout()
-        cnc_tab_lay_4.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
-        cnc_tab_lay_4.addWidget(self.buttonOpen)
-        cnc_tab_lay_4.addWidget(self.buttonSave)
-        cnc_tab_lay_4.addWidget(self.buttonRun)
-        self.work_editor_layout.addLayout(cnc_tab_lay_4, 2, 4, 1, 1)
-
-        # #################################################################################
-        # ################### SIGNALS #####################################################
-        # #################################################################################
-
+        # #############################################################################################################
+        # ################### SIGNALS #################################################################################
+        # #############################################################################################################
         self.code_editor.textChanged.connect(self.handleTextChanged)
         self.buttonOpen.clicked.connect(self.handleOpen)
         self.buttonSave.clicked.connect(self.handleSaveGCode)
@@ -163,7 +161,7 @@ class AppTextEditor(QtWidgets.QWidget):
         self.buttonPreview.clicked.connect(self.handlePreview)
         self.buttonFind.clicked.connect(self.handleFindGCode)
         self.buttonReplace.clicked.connect(self.handleReplaceGCode)
-        self.button_copy_all.clicked.connect(self.handleCopyAll)
+        # self.button_copy_all.clicked.connect(self.handleCopyAll)
 
         self.code_editor.set_model_data(self.app.myKeywords)
 
@@ -173,18 +171,14 @@ class AppTextEditor(QtWidgets.QWidget):
         self.callback = callback
 
     def handlePrint(self):
-        self.app.defaults.report_usage("handlePrint()")
-
         dialog = QtPrintSupport.QPrintDialog()
-        if dialog.exec_() == QtWidgets.QDialog.Accepted:
+        if dialog.exec() == QtWidgets.QDialog.Accepted:
             self.code_editor.document().print_(dialog.printer())
 
     def handlePreview(self):
-        self.app.defaults.report_usage("handlePreview()")
-
         dialog = QtPrintSupport.QPrintPreviewDialog()
-        dialog.paintRequested.connect(self.code_editor.print_)
-        dialog.exec_()
+        dialog.paintRequested.connect(self.code_editor.print)
+        dialog.exec()
 
     def handleTextChanged(self):
         # enable = not self.ui.code_editor.document().isEmpty()
@@ -368,10 +362,10 @@ class AppTextEditor(QtWidgets.QWidget):
             # Mark end of undo block
             cursor.endEditBlock()
 
-    def handleCopyAll(self):
-        text = self.code_editor.toPlainText()
-        self.app.clipboard.setText(text)
-        self.app.inform.emit(_("Content copied to clipboard ..."))
+    # def handleCopyAll(self):
+    #     text = self.code_editor.toPlainText()
+    #     self.app.clipboard.setText(text)
+    #     self.app.inform.emit(_("Content copied to clipboard ..."))
 
     # def closeEvent(self, QCloseEvent):
     #     super().closeEvent(QCloseEvent)

+ 2 - 2
appEditors/appGCodeEditor.py

@@ -91,9 +91,9 @@ class AppGCodeEditor(QtCore.QObject):
         self.ui.prepend_text.set_value(self.app.defaults["cncjob_prepend"])
 
         # Remove anything else in the GUI Properties Tab
-        self.app.ui.selected_scroll_area.takeWidget()
+        self.app.ui.properties_scroll_area.takeWidget()
         # Put ourselves in the GUI Properties Tab
-        self.app.ui.selected_scroll_area.setWidget(self.ui.edit_widget)
+        self.app.ui.properties_scroll_area.setWidget(self.ui.edit_widget)
         # Switch notebook to Properties page
         self.app.ui.notebook.setCurrentWidget(self.app.ui.properties_tab)
 

+ 62 - 4
appGUI/GUIElements.py

@@ -1687,6 +1687,64 @@ class FCInputDialog(QtWidgets.QInputDialog):
         pass
 
 
+class FCInputDialogSlider(QtWidgets.QDialog):
+
+    def __init__(self, parent=None, title=None, text=None, min=None, max=None, step=1, init_val=None):
+        super().__init__(parent)
+
+        self.val = 0.0
+
+        self.init_value = init_val if init_val else 0.0
+
+        self.setWindowTitle(title) if title else self.setWindowTitle('title')
+        self.text = text if text else 'text'
+
+        self.min = min if min else 0
+        self.max = max if max else 255
+        self.step = step if step else 1
+
+        self.lbl = FCLabel(self.text)
+
+        self.wdg = FCSliderWithSpinner(min=self.min, max=self.max, step=self.step)
+        self.wdg.set_value(self.init_value)
+
+        QBtn = QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel
+
+        self.buttonBox = QtWidgets.QDialogButtonBox(QBtn)
+        self.buttonBox.accepted.connect(self.accept)
+        self.buttonBox.rejected.connect(self.reject)
+
+        self.layout = QtWidgets.QVBoxLayout()
+        self.layout.addWidget(self.lbl)
+        self.layout.addWidget(self.wdg)
+        self.layout.addWidget(self.buttonBox)
+        self.setLayout(self.layout)
+
+    def set_title(self, txt):
+        self.setWindowTitle(txt)
+
+    def set_text(self, txt):
+        self.lbl.set_value(txt)
+
+    def set_min(self, val):
+        self.wdg.spinner.setMinimum(val)
+
+    def set_max(self, val):
+        self.wdg.spinner.setMaximum(val)
+
+    def set_range(self, min, max):
+        self.wdg.spinner.set_range(min, max)
+
+    def set_step(self, val):
+        self.wdg.spinner.set_step(val)
+
+    def get_results(self):
+        if self.exec_() == QtWidgets.QDialog.Accepted:
+            return self.wdg.get_value(), True
+        else:
+            return None, False
+
+
 class FCButton(QtWidgets.QPushButton):
     def __init__(self, text=None, checkable=None, click_callback=None, parent=None):
         super(FCButton, self).__init__(text, parent)
@@ -3790,10 +3848,10 @@ class FlatCAMSystemTray(QtWidgets.QSystemTrayIcon):
 
             self.menu_open.addSeparator()
 
-            menu_openproject.triggered.connect(self.app.on_file_openproject)
-            menu_opengerber.triggered.connect(self.app.on_fileopengerber)
-            menu_openexcellon.triggered.connect(self.app.on_fileopenexcellon)
-            menu_opengcode.triggered.connect(self.app.on_fileopengcode)
+            menu_openproject.triggered.connect(self.app.f_handlers.on_file_openproject)
+            menu_opengerber.triggered.connect(self.app.f_handlers.on_fileopengerber)
+            menu_openexcellon.triggered.connect(self.app.f_handlers.on_fileopenexcellon)
+            menu_opengcode.triggered.connect(self.app.f_handlers.on_fileopengcode)
 
         exitAction = menu.addAction(_("Exit"))
         exitAction.setIcon(QtGui.QIcon(self.app.resource_location + '/power16.png'))

+ 128 - 96
appGUI/MainGUI.py

@@ -81,14 +81,14 @@ class MainGUI(QtWidgets.QMainWindow):
 
         # New Project
         self.menufilenewproject = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/file16.png'),
-                                                    _('&New Project ...\tCtrl+N'), self)
+                                                    _('New Project ...\tCtrl+N'), self)
         self.menufilenewproject.setToolTip(
             _("Will create a new, blank project")
         )
         self.menufile.addAction(self.menufilenewproject)
 
         # New Category (Excellon, Geometry)
-        self.menufilenew = self.menufile.addMenu(QtGui.QIcon(self.app.resource_location + '/file16.png'), _('&New'))
+        self.menufilenew = self.menufile.addMenu(QtGui.QIcon(self.app.resource_location + '/file16.png'), _('New'))
         self.menufilenew.setToolTipsVisible(True)
 
         self.menufilenewgeo = self.menufilenew.addAction(
@@ -120,23 +120,23 @@ class MainGUI(QtWidgets.QMainWindow):
 
         # Open Project ...
         self.menufileopenproject = QtWidgets.QAction(
-            QtGui.QIcon(self.app.resource_location + '/folder16.png'), _('Open &Project ...'), self)
+            QtGui.QIcon(self.app.resource_location + '/folder16.png'), _('Open Project ...'), self)
         self.menufile_open.addAction(self.menufileopenproject)
         self.menufile_open.addSeparator()
 
         # Open Gerber ...
         self.menufileopengerber = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/flatcam_icon24.png'),
-                                                    _('Open &Gerber ...\tCtrl+G'), self)
+                                                    _('Open Gerber ...\tCtrl+G'), self)
         self.menufile_open.addAction(self.menufileopengerber)
 
         # Open Excellon ...
         self.menufileopenexcellon = QtWidgets.QAction(QtGui.QIcon(self.app.resource_location + '/open_excellon32.png'),
-                                                      _('Open &Excellon ...\tCtrl+E'), self)
+                                                      _('Open Excellon ...\tCtrl+E'), self)
         self.menufile_open.addAction(self.menufileopenexcellon)
 
         # Open G-Code ...
         self.menufileopengcode = QtWidgets.QAction(
-            QtGui.QIcon(self.app.resource_location + '/code.png'), _('Open G-&Code ...'), self)
+            QtGui.QIcon(self.app.resource_location + '/code.png'), _('Open G-Code ...'), self)
         self.menufile_open.addAction(self.menufileopengcode)
 
         self.menufile_open.addSeparator()
@@ -157,17 +157,17 @@ class MainGUI(QtWidgets.QMainWindow):
 
         # Save Project
         self.menufilesaveproject = QtWidgets.QAction(
-            QtGui.QIcon(self.app.resource_location + '/floppy16.png'), _('&Save Project ...\tCtrl+S'), self)
+            QtGui.QIcon(self.app.resource_location + '/floppy16.png'), _('Save Project ...\tCtrl+S'), self)
         self.menufile_save.addAction(self.menufilesaveproject)
 
         # Save Project As ...
         self.menufilesaveprojectas = QtWidgets.QAction(
-            QtGui.QIcon(self.app.resource_location + '/floppy16.png'), _('Save Project &As ...\tCtrl+Shift+S'), self)
+            QtGui.QIcon(self.app.resource_location + '/floppy16.png'), _('Save Project As ...\tCtrl+Shift+S'), self)
         self.menufile_save.addAction(self.menufilesaveprojectas)
 
         # Save Project Copy ...
         # self.menufilesaveprojectcopy = QtWidgets.QAction(
-        #     QtGui.QIcon(self.app.resource_location + '/floppy16.png'), _('Save Project C&opy ...'), self)
+        #     QtGui.QIcon(self.app.resource_location + '/floppy16.png'), _('Save Project Copy ...'), self)
         # self.menufile_save.addAction(self.menufilesaveprojectcopy)
 
         self.menufile_save.addSeparator()
@@ -206,18 +206,18 @@ class MainGUI(QtWidgets.QMainWindow):
         self.menufileimport = self.menufile.addMenu(
             QtGui.QIcon(self.app.resource_location + '/import.png'), _('Import'))
         self.menufileimportsvg = QtWidgets.QAction(
-            QtGui.QIcon(self.app.resource_location + '/svg16.png'), _('&SVG as Geometry Object ...'), self)
+            QtGui.QIcon(self.app.resource_location + '/svg16.png'), _('SVG as Geometry Object ...'), self)
         self.menufileimport.addAction(self.menufileimportsvg)
         self.menufileimportsvg_as_gerber = QtWidgets.QAction(
-            QtGui.QIcon(self.app.resource_location + '/svg16.png'), _('&SVG as Gerber Object ...'), self)
+            QtGui.QIcon(self.app.resource_location + '/svg16.png'), _('SVG as Gerber Object ...'), self)
         self.menufileimport.addAction(self.menufileimportsvg_as_gerber)
         self.menufileimport.addSeparator()
 
         self.menufileimportdxf = QtWidgets.QAction(
-            QtGui.QIcon(self.app.resource_location + '/dxf16.png'), _('&DXF as Geometry Object ...'), self)
+            QtGui.QIcon(self.app.resource_location + '/dxf16.png'), _('DXF as Geometry Object ...'), self)
         self.menufileimport.addAction(self.menufileimportdxf)
         self.menufileimportdxf_as_gerber = QtWidgets.QAction(
-            QtGui.QIcon(self.app.resource_location + '/dxf16.png'), _('&DXF as Gerber Object ...'), self)
+            QtGui.QIcon(self.app.resource_location + '/dxf16.png'), _('DXF as Gerber Object ...'), self)
         self.menufileimport.addAction(self.menufileimportdxf_as_gerber)
         self.menufileimport.addSeparator()
         self.menufileimport_hpgl2_as_geo = QtWidgets.QAction(
@@ -231,7 +231,7 @@ class MainGUI(QtWidgets.QMainWindow):
         self.menufileexport.setToolTipsVisible(True)
 
         self.menufileexportsvg = QtWidgets.QAction(
-            QtGui.QIcon(self.app.resource_location + '/export.png'), _('Export &SVG ...'), self)
+            QtGui.QIcon(self.app.resource_location + '/export.png'), _('Export SVG ...'), self)
         self.menufileexport.addAction(self.menufileexportsvg)
 
         self.menufileexportdxf = QtWidgets.QAction(
@@ -241,7 +241,7 @@ class MainGUI(QtWidgets.QMainWindow):
         self.menufileexport.addSeparator()
 
         self.menufileexportpng = QtWidgets.QAction(
-            QtGui.QIcon(self.app.resource_location + '/export_png32.png'), _('Export &PNG ...'), self)
+            QtGui.QIcon(self.app.resource_location + '/export_png32.png'), _('Export PNG ...'), self)
         self.menufileexportpng.setToolTip(
             _("Will export an image in PNG format,\n"
               "the saved image will contain the visual \n"
@@ -252,7 +252,7 @@ class MainGUI(QtWidgets.QMainWindow):
         self.menufileexport.addSeparator()
 
         self.menufileexportexcellon = QtWidgets.QAction(
-            QtGui.QIcon(self.app.resource_location + '/drill32.png'), _('Export &Excellon ...'), self)
+            QtGui.QIcon(self.app.resource_location + '/drill32.png'), _('Export Excellon ...'), self)
         self.menufileexportexcellon.setToolTip(
             _("Will export an Excellon Object as Excellon file,\n"
               "the coordinates format, the file units and zeros\n"
@@ -261,7 +261,7 @@ class MainGUI(QtWidgets.QMainWindow):
         self.menufileexport.addAction(self.menufileexportexcellon)
 
         self.menufileexportgerber = QtWidgets.QAction(
-            QtGui.QIcon(self.app.resource_location + '/flatcam_icon32.png'), _('Export &Gerber ...'), self)
+            QtGui.QIcon(self.app.resource_location + '/flatcam_icon32.png'), _('Export Gerber ...'), self)
         self.menufileexportgerber.setToolTip(
             _("Will export an Gerber Object as Gerber file,\n"
               "the coordinates format, the file units and zeros\n"
@@ -306,7 +306,7 @@ class MainGUI(QtWidgets.QMainWindow):
 
         # Quit
         self.menufile_exit = QtWidgets.QAction(
-            QtGui.QIcon(self.app.resource_location + '/power16.png'), _('E&xit'), self)
+            QtGui.QIcon(self.app.resource_location + '/power16.png'), _('Exit'), self)
         # exitAction.setShortcut('Ctrl+Q')
         # exitAction.setStatusTip('Exit application')
         self.menufile.addAction(self.menufile_exit)
@@ -361,7 +361,7 @@ class MainGUI(QtWidgets.QMainWindow):
         self.menuedit_join = self.menuedit.addMenu(
             QtGui.QIcon(self.app.resource_location + '/join16.png'), _('Join Objects'))
         self.menuedit_join2geo = self.menuedit_join.addAction(
-            QtGui.QIcon(self.app.resource_location + '/join16.png'), _('&Join Geo/Gerber/Exc -> Geo'))
+            QtGui.QIcon(self.app.resource_location + '/join16.png'), _('Join Geo/Gerber/Exc -> Geo'))
         self.menuedit_join2geo.setToolTip(
             _("Merge a selection of objects, which can be of type:\n"
               "- Gerber\n"
@@ -385,17 +385,17 @@ class MainGUI(QtWidgets.QMainWindow):
         # Separator
         self.menuedit.addSeparator()
         self.menueditcopyobject = self.menuedit.addAction(
-            QtGui.QIcon(self.app.resource_location + '/copy.png'), _('&Copy\tCtrl+C'))
+            QtGui.QIcon(self.app.resource_location + '/copy.png'), _('Copy\tCtrl+C'))
 
         # Separator
         self.menuedit.addSeparator()
         self.menueditdelete = self.menuedit.addAction(
-            QtGui.QIcon(self.app.resource_location + '/trash16.png'), _('&Delete\tDEL'))
+            QtGui.QIcon(self.app.resource_location + '/trash16.png'), _('Delete\tDEL'))
 
         # Separator
         self.menuedit.addSeparator()
         self.menueditorigin = self.menuedit.addAction(
-            QtGui.QIcon(self.app.resource_location + '/origin16.png'), _('Se&t Origin\tO'))
+            QtGui.QIcon(self.app.resource_location + '/origin16.png'), _('Set Origin\tO'))
         self.menuedit_move2origin = self.menuedit.addAction(
             QtGui.QIcon(self.app.resource_location + '/origin2_16.png'), _('Move to Origin\tShift+O'))
 
@@ -409,12 +409,12 @@ class MainGUI(QtWidgets.QMainWindow):
         self.menuedittoggleunits = self.menuedit.addAction(
             QtGui.QIcon(self.app.resource_location + '/toggle_units16.png'), _('Toggle Units\tQ'))
         self.menueditselectall = self.menuedit.addAction(
-            QtGui.QIcon(self.app.resource_location + '/select_all.png'), _('&Select All\tCtrl+A'))
+            QtGui.QIcon(self.app.resource_location + '/select_all.png'), _('Select All\tCtrl+A'))
 
         # Separator
         self.menuedit.addSeparator()
         self.menueditpreferences = self.menuedit.addAction(
-            QtGui.QIcon(self.app.resource_location + '/pref.png'), _('&Preferences\tShift+P'))
+            QtGui.QIcon(self.app.resource_location + '/pref.png'), _('Preferences\tShift+P'))
 
         # ########################################################################
         # ########################## OPTIONS # ###################################
@@ -422,21 +422,21 @@ class MainGUI(QtWidgets.QMainWindow):
 
         self.menuoptions = self.menu.addMenu(_('Options'))
         self.menuoptions_transform_rotate = self.menuoptions.addAction(
-            QtGui.QIcon(self.app.resource_location + '/rotate.png'), _("&Rotate Selection\tShift+(R)"))
+            QtGui.QIcon(self.app.resource_location + '/rotate.png'), _("Rotate Selection\tShift+(R)"))
         # Separator
         self.menuoptions.addSeparator()
 
         self.menuoptions_transform_skewx = self.menuoptions.addAction(
-            QtGui.QIcon(self.app.resource_location + '/skewX.png'), _("&Skew on X axis\tShift+X"))
+            QtGui.QIcon(self.app.resource_location + '/skewX.png'), _("Skew on X axis\tShift+X"))
         self.menuoptions_transform_skewy = self.menuoptions.addAction(
-            QtGui.QIcon(self.app.resource_location + '/skewY.png'), _("S&kew on Y axis\tShift+Y"))
+            QtGui.QIcon(self.app.resource_location + '/skewY.png'), _("Skew on Y axis\tShift+Y"))
 
         # Separator
         self.menuoptions.addSeparator()
         self.menuoptions_transform_flipx = self.menuoptions.addAction(
-            QtGui.QIcon(self.app.resource_location + '/flipx.png'), _("Flip on &X axis\tX"))
+            QtGui.QIcon(self.app.resource_location + '/flipx.png'), _("Flip on X axis\tX"))
         self.menuoptions_transform_flipy = self.menuoptions.addAction(
-            QtGui.QIcon(self.app.resource_location + '/flipy.png'), _("Flip on &Y axis\tY"))
+            QtGui.QIcon(self.app.resource_location + '/flipy.png'), _("Flip on Y axis\tY"))
         # Separator
         self.menuoptions.addSeparator()
 
@@ -455,16 +455,19 @@ class MainGUI(QtWidgets.QMainWindow):
             QtGui.QIcon(self.app.resource_location + '/replot16.png'), _('Enable all plots\tAlt+1'))
         self.menuviewdisableall = self.menuview.addAction(
             QtGui.QIcon(self.app.resource_location + '/clear_plot16.png'), _('Disable all plots\tAlt+2'))
+        self.menuviewenableother = self.menuview.addAction(
+            QtGui.QIcon(self.app.resource_location + '/replot16.png'), _('Enable non-selected\tAlt+3'))
         self.menuviewdisableother = self.menuview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/clear_plot16.png'), _('Disable non-selected\tAlt+3'))
+            QtGui.QIcon(self.app.resource_location + '/clear_plot16.png'), _('Disable non-selected\tAlt+4'))
+
         # Separator
         self.menuview.addSeparator()
         self.menuview_zoom_fit = self.menuview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/zoom_fit32.png'), _("&Zoom Fit\tV"))
+            QtGui.QIcon(self.app.resource_location + '/zoom_fit32.png'), _("Zoom Fit\tV"))
         self.menuview_zoom_in = self.menuview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/zoom_in32.png'), _("&Zoom In\t="))
+            QtGui.QIcon(self.app.resource_location + '/zoom_in32.png'), _("Zoom In\t="))
         self.menuview_zoom_out = self.menuview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/zoom_out32.png'), _("&Zoom Out\t-"))
+            QtGui.QIcon(self.app.resource_location + '/zoom_out32.png'), _("Zoom Out\t-"))
         self.menuview.addSeparator()
 
         # Replot all
@@ -476,23 +479,23 @@ class MainGUI(QtWidgets.QMainWindow):
             QtGui.QIcon(self.app.resource_location + '/code_editor32.png'), _('Toggle Code Editor\tShift+E'))
         self.menuview.addSeparator()
         self.menuview_toggle_fscreen = self.menuview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/fscreen32.png'), _("&Toggle FullScreen\tAlt+F10"))
+            QtGui.QIcon(self.app.resource_location + '/fscreen32.png'), _("Toggle FullScreen\tAlt+F10"))
         self.menuview_toggle_parea = self.menuview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/plot32.png'), _("&Toggle Plot Area\tCtrl+F10"))
+            QtGui.QIcon(self.app.resource_location + '/plot32.png'), _("Toggle Plot Area\tCtrl+F10"))
         self.menuview_toggle_notebook = self.menuview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/notebook32.png'), _("&Toggle Project/Sel/Tool\t`"))
+            QtGui.QIcon(self.app.resource_location + '/notebook32.png'), _("Toggle Project/Sel/Tool\t`"))
 
         self.menuview.addSeparator()
         self.menuview_toggle_grid = self.menuview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/grid32.png'), _("&Toggle Grid Snap\tG"))
+            QtGui.QIcon(self.app.resource_location + '/grid32.png'), _("Toggle Grid Snap\tG"))
         self.menuview_toggle_grid_lines = self.menuview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/grid_lines32.png'), _("&Toggle Grid Lines\tAlt+G"))
+            QtGui.QIcon(self.app.resource_location + '/grid_lines32.png'), _("Toggle Grid Lines\tShift+G"))
         self.menuview_toggle_axis = self.menuview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/axis32.png'), _("&Toggle Axis\tShift+G"))
+            QtGui.QIcon(self.app.resource_location + '/axis32.png'), _("Toggle Axis\tShift+A"))
         self.menuview_toggle_workspace = self.menuview.addAction(
             QtGui.QIcon(self.app.resource_location + '/workspace24.png'), _("Toggle Workspace\tShift+W"))
         self.menuview_toggle_hud = self.menuview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/hud_32.png'), _("Toggle HUD\tAlt+H"))
+            QtGui.QIcon(self.app.resource_location + '/hud_32.png'), _("Toggle HUD\tShift+H"))
 
         # ########################################################################
         # ########################## Objects # ###################################
@@ -511,7 +514,7 @@ class MainGUI(QtWidgets.QMainWindow):
         self.menutool = QtWidgets.QMenu(_('Tool'))
         self.menutoolaction = self.menu.addMenu(self.menutool)
         self.menutoolshell = self.menutool.addAction(
-            QtGui.QIcon(self.app.resource_location + '/shell16.png'), _('&Command Line\tS'))
+            QtGui.QIcon(self.app.resource_location + '/shell16.png'), _('Command Line\tS'))
 
         # ########################################################################
         # ########################## Help # ######################################
@@ -545,7 +548,7 @@ class MainGUI(QtWidgets.QMainWindow):
         self.menuhelp.addSeparator()
 
         self.menuhelp_readme = self.menuhelp.addAction(
-            QtGui.QIcon(self.app.resource_location + '/warning.png'), _('How To'))
+            QtGui.QIcon(self.app.resource_location + '/warning.png'), _("How To"))
 
         self.menuhelp_about = self.menuhelp.addAction(
             QtGui.QIcon(self.app.resource_location + '/about32.png'), _('About FlatCAM'))
@@ -873,7 +876,7 @@ class MainGUI(QtWidgets.QMainWindow):
         self.copy_btn = self.toolbaredit.addAction(
             QtGui.QIcon(self.app.resource_location + '/copy_file32.png'), _("Copy"))
         self.delete_btn = self.toolbaredit.addAction(
-            QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("&Delete"))
+            QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete"))
         self.toolbaredit.addSeparator()
         self.distance_btn = self.toolbaredit.addAction(
             QtGui.QIcon(self.app.resource_location + '/distance32.png'), _("Distance Tool"))
@@ -893,9 +896,9 @@ class MainGUI(QtWidgets.QMainWindow):
         # ########################## View Toolbar# ###############################
         # ########################################################################
         self.replot_btn = self.toolbarview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/replot32.png'), _("&Replot"))
+            QtGui.QIcon(self.app.resource_location + '/replot32.png'), _("Replot"))
         self.clear_plot_btn = self.toolbarview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/clear_plot32.png'), _("&Clear plot"))
+            QtGui.QIcon(self.app.resource_location + '/clear_plot32.png'), _("Clear plot"))
         self.zoom_in_btn = self.toolbarview.addAction(
             QtGui.QIcon(self.app.resource_location + '/zoom_in32.png'), _("Zoom In"))
         self.zoom_out_btn = self.toolbarview.addAction(
@@ -909,7 +912,7 @@ class MainGUI(QtWidgets.QMainWindow):
         # ########################## Shell Toolbar# ##############################
         # ########################################################################
         self.shell_btn = self.toolbarshell.addAction(
-            QtGui.QIcon(self.app.resource_location + '/shell32.png'), _("&Command Line"))
+            QtGui.QIcon(self.app.resource_location + '/shell32.png'), _("Command Line"))
         self.new_script_btn = self.toolbarshell.addAction(
             QtGui.QIcon(self.app.resource_location + '/script_new24.png'), _('New Script ...'))
         self.open_script_btn = self.toolbarshell.addAction(
@@ -1191,7 +1194,7 @@ class MainGUI(QtWidgets.QMainWindow):
         # #######################################################################
         # ####################### TCL Shell DOCK ################################
         # #######################################################################
-        self.shell_dock = FCDock("TCL Shell", close_callback=self.toggle_shell_ui)
+        self.shell_dock = FCDock(_("TCL Shell"), close_callback=self.toggle_shell_ui)
         self.shell_dock.setObjectName('Shell_DockWidget')
         self.shell_dock.setAllowedAreas(QtCore.Qt.AllDockWidgetAreas)
         self.shell_dock.setFeatures(QtWidgets.QDockWidget.DockWidgetMovable |
@@ -1230,9 +1233,9 @@ class MainGUI(QtWidgets.QMainWindow):
         self.properties_tab_layout = QtWidgets.QVBoxLayout(self.properties_tab)
         self.properties_tab_layout.setContentsMargins(2, 2, 2, 2)
 
-        self.selected_scroll_area = VerticalScrollArea()
-        # self.selected_scroll_area.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
-        self.properties_tab_layout.addWidget(self.selected_scroll_area)
+        self.properties_scroll_area = VerticalScrollArea()
+        # self.properties_scroll_area.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
+        self.properties_tab_layout.addWidget(self.properties_scroll_area)
         self.notebook.addTab(self.properties_tab, _("Properties"))
 
         # ########################################################################
@@ -1595,18 +1598,18 @@ class MainGUI(QtWidgets.QMainWindow):
         self.infobar.addWidget(self.fcinfo, stretch=1)
 
         self.infobar.addWidget(self.delta_coords_toolbar)
-        self.delta_coords_toolbar.setVisible(self.app.defaults["global_delta_coords_show"])
+        self.delta_coords_toolbar.setVisible(self.app.defaults["global_delta_coordsbar_show"])
 
         self.infobar.addWidget(self.coords_toolbar)
-        self.coords_toolbar.setVisible(self.app.defaults["global_coords_show"])
+        self.coords_toolbar.setVisible(self.app.defaults["global_coordsbar_show"])
 
         self.grid_toolbar.setMaximumHeight(24)
         self.infobar.addWidget(self.grid_toolbar)
-        self.grid_toolbar.setVisible(self.app.defaults["global_grid_show"])
+        self.grid_toolbar.setVisible(self.app.defaults["global_gridbar_show"])
 
         self.status_toolbar.setMaximumHeight(24)
         self.infobar.addWidget(self.status_toolbar)
-        self.status_toolbar.setVisible(self.app.defaults["global_status_show"])
+        self.status_toolbar.setVisible(self.app.defaults["global_statusbar_show"])
 
         self.units_label = QtWidgets.QLabel("[mm]")
         self.units_label.setToolTip(_("Application units"))
@@ -1754,6 +1757,7 @@ class MainGUI(QtWidgets.QMainWindow):
         self.y_pos = None
         self.width = None
         self.height = None
+        self.titlebar_height = None
 
         self.geom_update[int, int, int, int, int].connect(self.save_geometry)
         self.final_save.connect(self.app.final_save)
@@ -1887,7 +1891,7 @@ class MainGUI(QtWidgets.QMainWindow):
         delta_coords_action = QtWidgets.QAction(self)
         delta_coords_action.setCheckable(True)
         delta_coords_action.setText(delta_coords_action_name)
-        delta_coords_action.setChecked(self.app.defaults["global_delta_coords_show"])
+        delta_coords_action.setChecked(self.app.defaults["global_delta_coordsbar_show"])
         self.infobar.addAction(delta_coords_action)
         delta_coords_action.triggered.connect(self.toggle_delta_coords)
 
@@ -1895,7 +1899,7 @@ class MainGUI(QtWidgets.QMainWindow):
         coords_action = QtWidgets.QAction(self)
         coords_action.setCheckable(True)
         coords_action.setText(coords_action_name)
-        coords_action.setChecked(self.app.defaults["global_coords_show"])
+        coords_action.setChecked(self.app.defaults["global_coordsbar_show"])
         self.infobar.addAction(coords_action)
         coords_action.triggered.connect(self.toggle_coords)
 
@@ -1903,7 +1907,7 @@ class MainGUI(QtWidgets.QMainWindow):
         grid_action = QtWidgets.QAction(self)
         grid_action.setCheckable(True)
         grid_action.setText(grid_action_name)
-        grid_action.setChecked(self.app.defaults["global_grid_show"])
+        grid_action.setChecked(self.app.defaults["global_gridbar_show"])
         self.infobar.addAction(grid_action)
         grid_action.triggered.connect(self.toggle_gridbar)
 
@@ -1911,24 +1915,24 @@ class MainGUI(QtWidgets.QMainWindow):
         status_action = QtWidgets.QAction(self)
         status_action.setCheckable(True)
         status_action.setText(status_action_name)
-        status_action.setChecked(self.app.defaults["global_status_show"])
+        status_action.setChecked(self.app.defaults["global_statusbar_show"])
         self.infobar.addAction(status_action)
         status_action.triggered.connect(self.toggle_statusbar)
 
     def toggle_coords(self, checked):
-        self.app.defaults["global_coords_show"] = checked
+        self.app.defaults["global_coordsbar_show"] = checked
         self.coords_toolbar.setVisible(checked)
 
     def toggle_delta_coords(self, checked):
-        self.app.defaults["global_delta_coords_show"] = checked
+        self.app.defaults["global_delta_coordsbar_show"] = checked
         self.delta_coords_toolbar.setVisible(checked)
 
     def toggle_gridbar(self, checked):
-        self.app.defaults["global_grid_show"] = checked
+        self.app.defaults["global_gridbar_show"] = checked
         self.grid_toolbar.setVisible(checked)
 
     def toggle_statusbar(self, checked):
-        self.app.defaults["global_status_show"] = checked
+        self.app.defaults["global_statusbar_show"] = checked
         self.status_toolbar.setVisible(checked)
 
     def eventFilter(self, obj, event):
@@ -2031,7 +2035,7 @@ class MainGUI(QtWidgets.QMainWindow):
         self.copy_btn = self.toolbaredit.addAction(
             QtGui.QIcon(self.app.resource_location + '/copy_file32.png'), _("Copy"))
         self.delete_btn = self.toolbaredit.addAction(
-            QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("&Delete"))
+            QtGui.QIcon(self.app.resource_location + '/trash32.png'), _("Delete"))
         self.toolbaredit.addSeparator()
         self.distance_btn = self.toolbaredit.addAction(
             QtGui.QIcon(self.app.resource_location + '/distance32.png'), _("Distance Tool"))
@@ -2050,9 +2054,9 @@ class MainGUI(QtWidgets.QMainWindow):
         # ########################## View Toolbar# ###############################
         # ########################################################################
         self.replot_btn = self.toolbarview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/replot32.png'), _("&Replot"))
+            QtGui.QIcon(self.app.resource_location + '/replot32.png'), _("Replot"))
         self.clear_plot_btn = self.toolbarview.addAction(
-            QtGui.QIcon(self.app.resource_location + '/clear_plot32.png'), _("&Clear plot"))
+            QtGui.QIcon(self.app.resource_location + '/clear_plot32.png'), _("Clear plot"))
         self.zoom_in_btn = self.toolbarview.addAction(
             QtGui.QIcon(self.app.resource_location + '/zoom_in32.png'), _("Zoom In"))
         self.zoom_out_btn = self.toolbarview.addAction(
@@ -2064,7 +2068,7 @@ class MainGUI(QtWidgets.QMainWindow):
         # ########################## Shell Toolbar# ##############################
         # ########################################################################
         self.shell_btn = self.toolbarshell.addAction(
-            QtGui.QIcon(self.app.resource_location + '/shell32.png'), _("&Command Line"))
+            QtGui.QIcon(self.app.resource_location + '/shell32.png'), _("Command Line"))
         self.new_script_btn = self.toolbarshell.addAction(
             QtGui.QIcon(self.app.resource_location + '/script_new24.png'), _('New Script ...'))
         self.open_script_btn = self.toolbarshell.addAction(
@@ -2083,7 +2087,7 @@ class MainGUI(QtWidgets.QMainWindow):
             QtGui.QIcon(self.app.resource_location + '/extract_drill32.png'), _("Extract Drills Tool"))
 
         self.cutout_btn = self.toolbartools.addAction(
-            QtGui.QIcon(self.app.resource_location + '/cut16_bis.png'), _("&Cutout Tool"))
+            QtGui.QIcon(self.app.resource_location + '/cut16_bis.png'), _("Cutout Tool"))
         self.ncc_btn = self.toolbartools.addAction(
             QtGui.QIcon(self.app.resource_location + '/ncc16.png'), _("NCC Tool"))
         self.paint_btn = self.toolbartools.addAction(
@@ -2321,7 +2325,7 @@ class MainGUI(QtWidgets.QMainWindow):
             # CTRL + SHIFT
             if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.ShiftModifier:
                 if key == QtCore.Qt.Key_S:
-                    self.app.on_file_saveprojectas()
+                    self.app.f_handlers.on_file_saveprojectas()
                     return
             # CTRL
             elif modifiers == QtCore.Qt.ControlModifier:
@@ -2346,7 +2350,7 @@ class MainGUI(QtWidgets.QMainWindow):
 
                 # Open Excellon file
                 if key == QtCore.Qt.Key_E:
-                    self.app.on_fileopenexcellon(signal=None)
+                    self.app.f_handlers.on_fileopenexcellon(signal=None)
 
                 # Open Gerber file
                 if key == QtCore.Qt.Key_G:
@@ -2354,7 +2358,7 @@ class MainGUI(QtWidgets.QMainWindow):
                     if 'editor' in widget_name.lower():
                         self.app.goto_text_line()
                     else:
-                        self.app.on_fileopengerber(signal=None)
+                        self.app.f_handlers.on_fileopengerber(signal=None)
 
                 # Distance Tool
                 if key == QtCore.Qt.Key_M:
@@ -2362,15 +2366,15 @@ class MainGUI(QtWidgets.QMainWindow):
 
                 # Create New Project
                 if key == QtCore.Qt.Key_N:
-                    self.app.on_file_new_click()
+                    self.app.f_handlers.on_file_new_click()
 
                 # Open Project
                 if key == QtCore.Qt.Key_O:
-                    self.app.on_file_openproject(signal=None)
+                    self.app.f_handlers.on_file_openproject(signal=None)
 
                 # Open Project
                 if key == QtCore.Qt.Key_P:
-                    self.app.on_file_save_objects_pdf(use_thread=True)
+                    self.app.f_handlers.on_file_save_objects_pdf(use_thread=True)
 
                 # PDF Import
                 if key == QtCore.Qt.Key_Q:
@@ -2389,7 +2393,7 @@ class MainGUI(QtWidgets.QMainWindow):
                         self.app.tools_db_tab.on_save_tools_db()
                         return
 
-                    self.app.on_file_saveproject()
+                    self.app.f_handlers.on_file_saveproject()
 
                 # Toggle Plot Area
                 if key == QtCore.Qt.Key_F10 or key == 'F10':
@@ -2399,6 +2403,10 @@ class MainGUI(QtWidgets.QMainWindow):
             # SHIFT
             elif modifiers == QtCore.Qt.ShiftModifier:
 
+                # Toggle axis
+                if key == QtCore.Qt.Key_A:
+                    self.app.plotcanvas.on_toggle_axis()
+
                 # Copy Object Name
                 if key == QtCore.Qt.Key_C:
                     self.app.on_copy_name()
@@ -2407,9 +2415,10 @@ class MainGUI(QtWidgets.QMainWindow):
                 if key == QtCore.Qt.Key_E:
                     self.app.on_toggle_code_editor()
 
-                # Toggle axis
+                # Toggle Grid lines
                 if key == QtCore.Qt.Key_G:
-                    self.app.plotcanvas.on_toggle_axis()
+                    self.app.plotcanvas.on_toggle_grid_lines()
+                    return
 
                 # Toggle HUD (Heads-Up Display)
                 if key == QtCore.Qt.Key_H:
@@ -2435,7 +2444,7 @@ class MainGUI(QtWidgets.QMainWindow):
 
                 # Run a Script
                 if key == QtCore.Qt.Key_S:
-                    self.app.on_filerunscript()
+                    self.app.f_handlers.on_filerunscript()
                     return
 
                 # Toggle Workspace
@@ -2464,6 +2473,10 @@ class MainGUI(QtWidgets.QMainWindow):
 
                 # Disable all other plots
                 if key == Qt.Key_3:
+                    self.app.enable_other_plots()
+
+                # Disable all other plots
+                if key == Qt.Key_4:
                     self.app.disable_other_plots()
 
                 # Align in Object Tool
@@ -2490,10 +2503,9 @@ class MainGUI(QtWidgets.QMainWindow):
                     self.app.fiducial_tool.run(toggle=True)
                     return
 
-                # Toggle Grid lines
+                # Punch Gerber Tool
                 if key == QtCore.Qt.Key_G:
-                    self.app.plotcanvas.on_toggle_grid_lines()
-                    return
+                    self.app.invert_tool.run(toggle=True)
 
                 # Punch Gerber Tool
                 if key == QtCore.Qt.Key_H:
@@ -3677,31 +3689,31 @@ class MainGUI(QtWidgets.QMainWindow):
                     extension = self.filename.lower().rpartition('.')[-1]
 
                     if extension in self.app.grb_list:
-                        self.app.worker_task.emit({'fcn': self.app.open_gerber,
+                        self.app.worker_task.emit({'fcn': self.app.f_handlers.open_gerber,
                                                    'params': [self.filename]})
                     else:
                         event.ignore()
 
                     if extension in self.app.exc_list:
-                        self.app.worker_task.emit({'fcn': self.app.open_excellon,
+                        self.app.worker_task.emit({'fcn': self.app.f_handlers.open_excellon,
                                                    'params': [self.filename]})
                     else:
                         event.ignore()
 
                     if extension in self.app.gcode_list:
-                        self.app.worker_task.emit({'fcn': self.app.open_gcode,
+                        self.app.worker_task.emit({'fcn': self.app.f_handlers.open_gcode,
                                                    'params': [self.filename]})
                     else:
                         event.ignore()
 
                     if extension in self.app.svg_list:
                         object_type = 'geometry'
-                        self.app.worker_task.emit({'fcn': self.app.import_svg,
+                        self.app.worker_task.emit({'fcn': self.app.f_handlers.import_svg,
                                                    'params': [self.filename, object_type, None]})
 
                     if extension in self.app.dxf_list:
                         object_type = 'geometry'
-                        self.app.worker_task.emit({'fcn': self.app.import_dxf,
+                        self.app.worker_task.emit({'fcn': self.app.f_handlers.import_dxf,
                                                    'params': [self.filename, object_type, None]})
 
                     if extension in self.app.pdf_list:
@@ -3711,10 +3723,10 @@ class MainGUI(QtWidgets.QMainWindow):
 
                     if extension in self.app.prj_list:
                         # self.app.open_project() is not Thread Safe
-                        self.app.open_project(self.filename)
+                        self.app.f_handlers.open_project(self.filename)
 
                     if extension in self.app.conf_list:
-                        self.app.open_config_file(self.filename)
+                        self.app.f_handlers.open_config_file(self.filename)
                     else:
                         event.ignore()
         else:
@@ -3748,13 +3760,14 @@ class MainGUI(QtWidgets.QMainWindow):
             self.y_pos = a.y()
             self.width = a.width()
             self.height = a.height()
+            self.titlebar_height = self.app.qapp.style().pixelMetric(QtWidgets.QStyle.PM_TitleBarHeight)
 
             # set new geometry to full desktop rect
             # Subtracting and adding the pixels below it's hack to bypass a bug in Qt5 and OpenGL that made that a
             # window drawn with OpenGL in fullscreen will not show any other windows on top which means that menus and
             # everything else will not work without this hack. This happen in Windows.
             # https://bugreports.qt.io/browse/QTBUG-41309
-            desktop = QtWidgets.QApplication.desktop()
+            desktop = self.app.qapp.desktop()
             screen = desktop.screenNumber(QtGui.QCursor.pos())
 
             rec = desktop.screenGeometry(screen)
@@ -3762,6 +3775,7 @@ class MainGUI(QtWidgets.QMainWindow):
             y = rec.y() - 1
             h = rec.height() + 2
             w = rec.width() + 2
+
             self.setGeometry(x, y, w, h)
             self.show()
 
@@ -3769,13 +3783,17 @@ class MainGUI(QtWidgets.QMainWindow):
             for tb in self.findChildren(QtWidgets.QToolBar):
                 tb.setVisible(False)
 
-            self.grid_toolbar.setVisible(self.app.defaults["global_grid_show"])
+            self.coords_toolbar.setVisible(self.app.defaults["global_coordsbar_show"])
+            self.delta_coords_toolbar.setVisible(self.app.defaults["global_delta_coordsbar_show"])
+            self.grid_toolbar.setVisible(self.app.defaults["global_gridbar_show"])
+            self.status_toolbar.setVisible(self.app.defaults["global_statusbar_show"])
 
             self.splitter.setSizes([0, 1])
             self.toggle_fscreen = True
         elif self.toggle_fscreen is True or disable is True:
             self.setWindowFlags(flags & ~Qt.FramelessWindowHint)
-            self.setGeometry(self.x_pos, self.y_pos, self.width, self.height)
+            # the additions are made to account for the pixels we subtracted/added above in the (x, y, h, w)
+            self.setGeometry(self.x_pos+1, self.y_pos+self.titlebar_height+4, self.width, self.height)
             self.showNormal()
             self.restore_toolbar_view()
             self.toggle_fscreen = False
@@ -3788,13 +3806,13 @@ class MainGUI(QtWidgets.QMainWindow):
         try:
             name = self.plot_tab_area.widget(0).objectName()
         except AttributeError:
-            self.plot_tab_area.addTab(self.plot_tab, "Plot Area")
+            self.plot_tab_area.addTab(self.plot_tab, _("Plot Area"))
             # remove the close button from the Plot Area tab (first tab index = 0) as this one will always be ON
             self.plot_tab_area.protectTab(0)
             return
 
         if name != 'plotarea_tab':
-            self.plot_tab_area.insertTab(0, self.plot_tab, "Plot Area")
+            self.plot_tab_area.insertTab(0, self.plot_tab, _("Plot Area"))
             # remove the close button from the Plot Area tab (first tab index = 0) as this one will always be ON
             self.plot_tab_area.protectTab(0)
         else:
@@ -4040,6 +4058,10 @@ class ShortcutsTab(QtWidgets.QWidget):
                         <td height="20">&nbsp;</td>
                         <td>&nbsp;</td>
                     </tr>
+                    <tr height="20">
+                        <td height="20"><strong>Shift+A</strong></td>
+                        <td>&nbsp;%s</td>
+                    </tr>
                     <tr height="20">
                         <td height="20"><strong>Shift+C</strong></td>
                         <td>&nbsp;%s</td>
@@ -4052,6 +4074,10 @@ class ShortcutsTab(QtWidgets.QWidget):
                         <td height="20"><strong>Shift+G</strong></td>
                         <td>&nbsp;%s</td>
                     </tr>
+                    <tr height="20">
+                        <td height="20"><strong>Shift+H</strong></td>
+                        <td>&nbsp;%s</td>
+                    </tr>
                     <tr height="20">
                         <td height="20"><strong>Shift+J</strong></td>
                         <td>&nbsp;%s</td>
@@ -4190,6 +4216,10 @@ class ShortcutsTab(QtWidgets.QWidget):
                         <td height="20"><strong>Alt+3</strong></td>
                         <td>&nbsp;%s</td>
                     </tr>
+                    <tr height="20">
+                        <td height="20"><strong>Alt+4</strong></td>
+                        <td>&nbsp;%s</td>
+                    </tr>
                     <tr height="20">
                         <td height="20"><strong>Alt+F10</strong></td>
                         <td>&nbsp;%s</td>
@@ -4270,22 +4300,24 @@ class ShortcutsTab(QtWidgets.QWidget):
                     _("Open Project"), _("Print (PDF)"), _("PDF Import Tool"), _("Save Project"), _("Toggle Plot Area"),
 
                     # SHIFT section
-                    _("Copy Obj_Name"),
-                    _("Toggle Code Editor"), _("Toggle the axis"), _("Locate in Object"), _("Distance Minimum Tool"),
+                    _("Toggle the axis"), _("Copy Obj_Name"),
+                    _("Toggle Code Editor"), _("Toggle Grid Lines"), _("Toggle HUD"), _("Locate in Object"),
+                    _("Distance Minimum Tool"),
                     _("Open Preferences Window"),
                     _("Rotate by 90 degree CCW"), _("Run a Script"), _("Toggle the workspace"), _("Skew on X axis"),
                     _("Skew on Y axis"),
 
                     # ALT section
                     _("Align Objects Tool"), _("Calculators Tool"), _("2-Sided PCB Tool"), _("Extract Drills Tool"),
-                    _("Fiducials Tool"), _("Toggle Grid Lines"),
+                    _("Fiducials Tool"), _("Invert Gerber Tool"),
                     _("Punch Gerber Tool"), _("Isolation Tool"), _("Copper Thieving Tool"),
                     _("Solder Paste Dispensing Tool"),
                     _("Film PCB Tool"), _("Corner Markers Tool"), _("Non-Copper Clearing Tool"), _("Optimal Tool"),
                     _("Paint Area Tool"), _("QRCode Tool"), _("Rules Check Tool"),
                     _("View File Source"), _("Transformations Tool"),
                     _("Subtract Tool"), _("Cutout PCB Tool"), _("Panelize PCB"),
-                    _("Enable all Plots"), _("Disable all Plots"), _("Disable Non-selected Plots"),
+                    _("Enable all Plots"), _("Disable all Plots"),
+                    _("Enable Non-selected Objects"), _("Disable Non-selected Objects"),
                     _("Toggle Full Screen"),
 
                     # CTRL + ALT section

+ 21 - 12
appGUI/ObjectUI.py

@@ -1737,8 +1737,8 @@ class GeometryObjectUI(ObjectUI):
         # Button
         self.generate_cnc_button = QtWidgets.QPushButton(_('Generate CNCJob object'))
         self.generate_cnc_button.setIcon(QtGui.QIcon(self.app.resource_location + '/cnc16.png'))
-        self.generate_cnc_button.setToolTip('%s\n%s' % (
-            _("Generate CNCJob object."),
+        self.generate_cnc_button.setToolTip('%s.\n%s' % (
+            _("Generate CNCJob object"),
             _(
                 "Add / Select at least one tool in the tool-table.\n"
                 "Click the # header to select all, or Ctrl + LMB\n"
@@ -1783,13 +1783,10 @@ class GeometryObjectUI(ObjectUI):
         self.paint_tool_button = QtWidgets.QPushButton(_('Paint Tool'))
         self.paint_tool_button.setIcon(QtGui.QIcon(self.app.resource_location + '/paint20_1.png'))
         self.paint_tool_button.setToolTip(
-            _(
-                "Creates tool paths to cover the\n"
-                "whole area of a polygon (remove\n"
-                "all copper). You will be asked\n"
-                "to click on the desired polygon."
-            )
+            _("Creates tool paths to cover the\n"
+              "whole area of a polygon.")
         )
+
         # self.paint_tool_button.setStyleSheet("""
         #                 QPushButton
         #                 {
@@ -2050,11 +2047,23 @@ class CNCObjectUI(ObjectUI):
         self.custom_box.addWidget(self.snippets_cb)
 
         # Autolevelling
-        self.sal_cb = FCCheckBox(_("Autolevelling"))
-        self.sal_cb.setToolTip(
+        self.sal_btn = FCButton('%s' % _("Autolevelling"), checkable=True)
+        # self.sal_btn.setIcon(QtGui.QIcon(self.app.resource_location + '/properties32.png'))
+        self.sal_btn.setToolTip(
             _("Enable the autolevelling feature.")
         )
-        self.custom_box.addWidget(self.sal_cb)
+        self.sal_btn.setStyleSheet("""
+                                  QPushButton
+                                  {
+                                      font-weight: bold;
+                                  }
+                                  """)
+        self.custom_box.addWidget(self.sal_btn)
+
+        separator_line = QtWidgets.QFrame()
+        separator_line.setFrameShape(QtWidgets.QFrame.HLine)
+        separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
+        self.custom_box.addWidget(separator_line)
 
         self.al_frame = QtWidgets.QFrame()
         self.al_frame.setContentsMargins(0, 0, 0, 0)
@@ -2206,7 +2215,7 @@ class CNCObjectUI(ObjectUI):
 
         self.al_rows_label = QtWidgets.QLabel('%s:' % _("Rows"))
         self.al_rows_label.setToolTip(
-            _("The number of gird rows.")
+            _("The number of grid rows.")
         )
         grid0.addWidget(self.al_rows_label, 21, 0)
         grid0.addWidget(self.al_rows_entry, 21, 1)

+ 4 - 0
appGUI/PlotCanvas.py

@@ -224,6 +224,7 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas):
 
         if state:
             self.axis_enabled = True
+            self.fcapp.defaults['global_axis'] = True
             self.v_line.parent = self.view.scene
             self.h_line.parent = self.view.scene
             self.fcapp.ui.axis_status_label.setStyleSheet("""
@@ -236,6 +237,7 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas):
             self.fcapp.inform[str, bool].emit(_("Axis enabled."), False)
         else:
             self.axis_enabled = False
+            self.fcapp.defaults['global_axis'] = False
             self.v_line.parent = None
             self.h_line.parent = None
             self.fcapp.ui.axis_status_label.setStyleSheet("")
@@ -271,10 +273,12 @@ class PlotCanvas(QtCore.QObject, VisPyCanvas):
         state = not self.grid_lines_enabled
 
         if state:
+            self.fcapp.defaults['global_grid_lines'] = True
             self.grid_lines_enabled = True
             self.grid.parent = self.view.scene
             self.fcapp.inform[str, bool].emit(_("Grid enabled."), False)
         else:
+            self.fcapp.defaults['global_grid_lines'] = False
             self.grid_lines_enabled = False
             self.grid.parent = None
             self.fcapp.inform[str, bool].emit(_("Grid disabled."), False)

+ 4 - 0
appGUI/PlotCanvasLegacy.py

@@ -332,6 +332,7 @@ class PlotCanvasLegacy(QtCore.QObject):
 
         if state:
             self.axis_enabled = True
+            self.app.defaults['global_axis'] = True
             if self.h_line not in self.axes.lines and self.v_line not in self.axes.lines:
                 self.h_line = self.axes.axhline(color=(0.70, 0.3, 0.3), linewidth=2)
                 self.v_line = self.axes.axvline(color=(0.70, 0.3, 0.3), linewidth=2)
@@ -345,6 +346,7 @@ class PlotCanvasLegacy(QtCore.QObject):
                 self.app.inform[str, bool].emit(_("Axis enabled."), False)
         else:
             self.axis_enabled = False
+            self.app.defaults['global_axis'] = False
             if self.h_line in self.axes.lines and self.v_line in self.axes.lines:
                 self.axes.lines.remove(self.h_line)
                 self.axes.lines.remove(self.v_line)
@@ -442,6 +444,7 @@ class PlotCanvasLegacy(QtCore.QObject):
         state = not self.grid_lines_enabled
 
         if state:
+            self.app.defaults['global_grid_lines'] = True
             self.grid_lines_enabled = True
             self.axes.grid(True)
             try:
@@ -450,6 +453,7 @@ class PlotCanvasLegacy(QtCore.QObject):
                 pass
             self.app.inform[str, bool].emit(_("Grid enabled."), False)
         else:
+            self.app.defaults['global_grid_lines'] = False
             self.grid_lines_enabled = False
             self.axes.grid(False)
             try:

+ 30 - 29
appGUI/preferences/PreferencesUIManager.py

@@ -389,25 +389,26 @@ class PreferencesUIManager:
             "tools_drill_area_overz":       self.ui.tools_defaults_form.tools_drill_group.over_z_entry,
 
             # NCC Tool
-            "tools_ncctools":           self.ui.tools_defaults_form.tools_ncc_group.ncc_tool_dia_entry,
-            "tools_nccorder":           self.ui.tools_defaults_form.tools_ncc_group.ncc_order_radio,
-            "tools_nccoverlap":         self.ui.tools_defaults_form.tools_ncc_group.ncc_overlap_entry,
-            "tools_nccmargin":          self.ui.tools_defaults_form.tools_ncc_group.ncc_margin_entry,
-            "tools_nccmethod":          self.ui.tools_defaults_form.tools_ncc_group.ncc_method_combo,
-            "tools_nccconnect":         self.ui.tools_defaults_form.tools_ncc_group.ncc_connect_cb,
-            "tools_ncccontour":         self.ui.tools_defaults_form.tools_ncc_group.ncc_contour_cb,
-            "tools_nccrest":            self.ui.tools_defaults_form.tools_ncc_group.ncc_rest_cb,
+            "tools_ncc_tools":           self.ui.tools_defaults_form.tools_ncc_group.ncc_tool_dia_entry,
+            "tools_ncc_order":           self.ui.tools_defaults_form.tools_ncc_group.ncc_order_radio,
+            "tools_ncc_overlap":         self.ui.tools_defaults_form.tools_ncc_group.ncc_overlap_entry,
+            "tools_ncc_margin":          self.ui.tools_defaults_form.tools_ncc_group.ncc_margin_entry,
+            "tools_ncc_method":          self.ui.tools_defaults_form.tools_ncc_group.ncc_method_combo,
+            "tools_ncc_connect":         self.ui.tools_defaults_form.tools_ncc_group.ncc_connect_cb,
+            "tools_ncc_contour":         self.ui.tools_defaults_form.tools_ncc_group.ncc_contour_cb,
+            "tools_ncc_rest":            self.ui.tools_defaults_form.tools_ncc_group.ncc_rest_cb,
             "tools_ncc_offset_choice":  self.ui.tools_defaults_form.tools_ncc_group.ncc_choice_offset_cb,
             "tools_ncc_offset_value":   self.ui.tools_defaults_form.tools_ncc_group.ncc_offset_spinner,
-            "tools_nccref":             self.ui.tools_defaults_form.tools_ncc_group.select_combo,
+            "tools_ncc_ref":             self.ui.tools_defaults_form.tools_ncc_group.select_combo,
             "tools_ncc_area_shape":     self.ui.tools_defaults_form.tools_ncc_group.area_shape_radio,
-            "tools_nccmilling_type":    self.ui.tools_defaults_form.tools_ncc_group.milling_type_radio,
-            "tools_ncctool_type":       self.ui.tools_defaults_form.tools_ncc_group.tool_type_radio,
-            "tools_ncccutz":            self.ui.tools_defaults_form.tools_ncc_group.cutz_entry,
-            "tools_ncctipdia":          self.ui.tools_defaults_form.tools_ncc_group.tipdia_entry,
-            "tools_ncctipangle":        self.ui.tools_defaults_form.tools_ncc_group.tipangle_entry,
-            "tools_nccnewdia":          self.ui.tools_defaults_form.tools_ncc_group.newdia_entry,
+            "tools_ncc_milling_type":    self.ui.tools_defaults_form.tools_ncc_group.milling_type_radio,
+            "tools_ncc_tool_type":       self.ui.tools_defaults_form.tools_ncc_group.tool_type_radio,
+            "tools_ncc_cutz":            self.ui.tools_defaults_form.tools_ncc_group.cutz_entry,
+            "tools_ncc_tipdia":          self.ui.tools_defaults_form.tools_ncc_group.tipdia_entry,
+            "tools_ncc_tipangle":        self.ui.tools_defaults_form.tools_ncc_group.tipangle_entry,
+            "tools_ncc_newdia":          self.ui.tools_defaults_form.tools_ncc_group.newdia_entry,
             "tools_ncc_plotting":       self.ui.tools_defaults_form.tools_ncc_group.plotting_radio,
+            "tools_ncc_check_valid":    self.ui.tools_defaults_form.tools_ncc_group.valid_cb,
 
             # CutOut Tool
             "tools_cutout_tooldia":          self.ui.tools_defaults_form.tools_cutout_group.cutout_tooldia_entry,
@@ -427,23 +428,23 @@ class PreferencesUIManager:
             "tools_cutout_mb_spacing":      self.ui.tools_defaults_form.tools_cutout_group.mb_spacing_entry,
 
             # Paint Area Tool
-            "tools_painttooldia":       self.ui.tools_defaults_form.tools_paint_group.painttooldia_entry,
-            "tools_paintorder":         self.ui.tools_defaults_form.tools_paint_group.paint_order_radio,
-            "tools_paintoverlap":       self.ui.tools_defaults_form.tools_paint_group.paintoverlap_entry,
-            "tools_paintoffset":        self.ui.tools_defaults_form.tools_paint_group.paintmargin_entry,
-            "tools_paintmethod":        self.ui.tools_defaults_form.tools_paint_group.paintmethod_combo,
-            "tools_selectmethod":       self.ui.tools_defaults_form.tools_paint_group.selectmethod_combo,
+            "tools_paint_tooldia":       self.ui.tools_defaults_form.tools_paint_group.painttooldia_entry,
+            "tools_paint_order":         self.ui.tools_defaults_form.tools_paint_group.paint_order_radio,
+            "tools_paint_overlap":       self.ui.tools_defaults_form.tools_paint_group.paintoverlap_entry,
+            "tools_paint_offset":        self.ui.tools_defaults_form.tools_paint_group.paintmargin_entry,
+            "tools_paint_method":        self.ui.tools_defaults_form.tools_paint_group.paintmethod_combo,
+            "tools_paint_selectmethod":       self.ui.tools_defaults_form.tools_paint_group.selectmethod_combo,
             "tools_paint_area_shape":   self.ui.tools_defaults_form.tools_paint_group.area_shape_radio,
-            "tools_pathconnect":        self.ui.tools_defaults_form.tools_paint_group.pathconnect_cb,
-            "tools_paintcontour":       self.ui.tools_defaults_form.tools_paint_group.contour_cb,
+            "tools_paint_connect":        self.ui.tools_defaults_form.tools_paint_group.pathconnect_cb,
+            "tools_paint_contour":       self.ui.tools_defaults_form.tools_paint_group.contour_cb,
             "tools_paint_plotting":     self.ui.tools_defaults_form.tools_paint_group.paint_plotting_radio,
 
-            "tools_paintrest":          self.ui.tools_defaults_form.tools_paint_group.rest_cb,
-            "tools_painttool_type":     self.ui.tools_defaults_form.tools_paint_group.tool_type_radio,
-            "tools_paintcutz":          self.ui.tools_defaults_form.tools_paint_group.cutz_entry,
-            "tools_painttipdia":        self.ui.tools_defaults_form.tools_paint_group.tipdia_entry,
-            "tools_painttipangle":      self.ui.tools_defaults_form.tools_paint_group.tipangle_entry,
-            "tools_paintnewdia":        self.ui.tools_defaults_form.tools_paint_group.newdia_entry,
+            "tools_paint_rest":          self.ui.tools_defaults_form.tools_paint_group.rest_cb,
+            "tools_paint_tool_type":     self.ui.tools_defaults_form.tools_paint_group.tool_type_radio,
+            "tools_paint_cutz":          self.ui.tools_defaults_form.tools_paint_group.cutz_entry,
+            "tools_paint_tipdia":        self.ui.tools_defaults_form.tools_paint_group.tipdia_entry,
+            "tools_paint_tipangle":      self.ui.tools_defaults_form.tools_paint_group.tipangle_entry,
+            "tools_paint_newdia":        self.ui.tools_defaults_form.tools_paint_group.newdia_entry,
 
             # 2-sided Tool
             "tools_2sided_mirror_axis": self.ui.tools_defaults_form.tools_2sided_group.mirror_axis_radio,

+ 1 - 1
appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py

@@ -110,7 +110,7 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI):
 
         self.al_rows_label = QtWidgets.QLabel('%s:' % _("Rows"))
         self.al_rows_label.setToolTip(
-            _("The number of gird rows.")
+            _("The number of grid rows.")
         )
         grid0.addWidget(self.al_rows_label, 12, 0)
         grid0.addWidget(self.al_rows_entry, 12, 1)

+ 3 - 3
appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py

@@ -219,7 +219,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI):
               "If <<TSA>> is checked then Travelling Salesman algorithm is used for\n"
               "drill path optimization.\n"
               "\n"
-              "Some options are disabled when FlatCAM works in 32bit mode.")
+              "Some options are disabled when the application works in 32bit mode.")
         )
 
         self.excellon_optimization_radio = RadioSet([{'label': _('MetaHeuristic'), 'value': 'M'},
@@ -257,8 +257,8 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI):
 
         self.fuse_tools_cb = FCCheckBox(_("Fuse Tools"))
         self.fuse_tools_cb.setToolTip(
-            _("When checked the joined (merged) object tools\n"
-              "will be merged also but only if they share some of their attributes.")
+            _("When checked, the tools will be merged\n"
+              "but only if they share some of their attributes.")
         )
         grid2.addWidget(self.fuse_tools_cb, 13, 0, 1, 2)
 

+ 2 - 3
appGUI/preferences/general/GeneralAPPSetGroupUI.py

@@ -386,9 +386,8 @@ class GeneralAPPSetGroupUI(OptionsGroupUI):
 
         self.allow_edit_cb = FCCheckBox(_("Allow Edit"))
         self.allow_edit_cb.setToolTip(
-            _("When cheched, the user can edit the objects in the Project Tab\n"
-              "by using the left mouse button click on the object name.\n"
-              "Active after restart.")
+            _("When checked, the user can edit the object names in the Project Tab\n"
+              "by clicking on the object name. Active after restart.")
         )
         grid0.addWidget(self.allow_edit_cb, 31, 0, 1, 2)
 

+ 3 - 3
appGUI/preferences/geometry/GeometryGenPrefGroupUI.py

@@ -100,7 +100,7 @@ class GeometryGenPrefGroupUI(OptionsGroupUI):
               "- Basic -> Using Google OR-Tools Basic algorithm\n"
               "- TSA -> Using Travelling Salesman algorithm\n"
               "\n"
-              "Some options are disabled when FlatCAM works in 32bit mode.")
+              "Some options are disabled when the application works in 32bit mode.")
         )
 
         self.opt_algorithm_radio = RadioSet(
@@ -140,8 +140,8 @@ class GeometryGenPrefGroupUI(OptionsGroupUI):
 
         self.fuse_tools_cb = FCCheckBox(_("Fuse Tools"))
         self.fuse_tools_cb.setToolTip(
-            _("When checked the joined (merged) object tools\n"
-              "will be merged also but only if they share some of their attributes.")
+            _("When checked, the tools will be merged\n"
+              "but only if they share some of their attributes.")
         )
         grid0.addWidget(self.fuse_tools_cb, 20, 0, 1, 2)
 

+ 1 - 1
appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py

@@ -185,7 +185,7 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI):
         # Mouse Bites Tool Diameter
         self.mb_dia_label = FCLabel('%s:' % _("Tool Diameter"))
         self.mb_dia_label.setToolTip(
-            _("The drill hole diameter when doing mpuse bites.")
+            _("The drill hole diameter when doing mouse bites.")
         )
         self.mb_dia_entry = FCDoubleSpinner()
         self.mb_dia_entry.set_precision(self.decimals)

+ 10 - 0
appGUI/preferences/tools/ToolsNCCPrefGroupUI.py

@@ -346,4 +346,14 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI):
         grid0.addWidget(plotting_label, 21, 0)
         grid0.addWidget(self.plotting_radio, 21, 1)
 
+        # Check Tool validity
+        self.valid_cb = FCCheckBox(label=_('Check validity'))
+        self.valid_cb.setToolTip(
+            _("If checked then the tools diameters are verified\n"
+              "if they will provide a complete isolation.")
+        )
+        self.valid_cb.setObjectName("n_check")
+
+        grid0.addWidget(self.valid_cb, 23, 0, 1, 2)
+
         self.layout.addStretch()

+ 1 - 3
appGUI/preferences/tools/ToolsPaintPrefGroupUI.py

@@ -33,9 +33,7 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI):
         self.paint_label = QtWidgets.QLabel(_('<b>Parameters:</b>'))
         self.paint_label.setToolTip(
             _("Creates tool paths to cover the\n"
-              "whole area of a polygon (remove\n"
-              "all copper). You will be asked\n"
-              "to click on the desired polygon.")
+              "whole area of a polygon.")
         )
         self.layout.addWidget(self.paint_label)
 

+ 1 - 1
appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py

@@ -112,7 +112,7 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI):
             _("Active only for Geometry panel type.\n"
               "When checked the application will find\n"
               "any two overlapping Line elements in the panel\n"
-              "and remove the overlapping parts, keeping only one of them.")
+              "and will remove the overlapping parts, keeping only one of them.")
         )
         grid0.addWidget(self.poptimization_cb, 5, 0, 1, 2)
 

+ 28 - 10
appObjects/AppObject.py

@@ -34,7 +34,7 @@ class AppObject(QtCore.QObject):
     # Emitted by app_obj.new_object() and passes the new object as argument, plot flag.
     # on_object_created() adds the object to the collection, plots on appropriate flag
     # and emits app_obj.new_object_available.
-    object_created = QtCore.pyqtSignal(object, bool, bool)
+    object_created = QtCore.pyqtSignal(object, bool, bool, object, list)
 
     # Emitted when a object has been changed (like scaled, mirrored)
     object_changed = QtCore.pyqtSignal(object)
@@ -56,7 +56,7 @@ class AppObject(QtCore.QObject):
         self.object_plotted.connect(self.on_object_plotted)
         self.plots_updated.connect(self.app.on_plots_updated)
 
-    def new_object(self, kind, name, initialize, plot=True, autoselected=True):
+    def new_object(self, kind, name, initialize, plot=True, autoselected=True, callback=None, callback_params=None):
         """
         Creates a new specialized FlatCAMObj and attaches it to the application,
         this is, updates the GUI accordingly, any other records and plots it.
@@ -78,10 +78,18 @@ class AppObject(QtCore.QObject):
         :param plot:            If to plot the resulting object
         :param autoselected:    if the resulting object is autoselected in the Project tab and therefore in the
                                 self.collection
+        :param callback:        a method that is launched after the object is created
+        :type callback:         function
+
+        :param callback_params: a list of parameters for the parameter: callback
+        :type callback_params:  list
+
         :return:                Either the object or the string 'fail'
         :rtype:                 object
         """
 
+        if callback_params is None:
+            callback_params = [None]
         log.debug("AppObject.new_object()")
         obj_plot = plot
         obj_autoselected = autoselected
@@ -204,7 +212,10 @@ class AppObject(QtCore.QObject):
         # Move the object to the main thread and let the app know that it is available.
         # ############################################################################################################
         obj.moveToThread(self.app.main_thread)
-        self.object_created.emit(obj, obj_plot, obj_autoselected)
+
+        if callback_params is None:
+            callback_params = []
+        self.object_created.emit(obj, obj_plot, obj_autoselected, callback, callback_params)
 
         return obj
 
@@ -324,15 +335,18 @@ class AppObject(QtCore.QObject):
 
         self.new_object('document', 'new_document', initialize, plot=False)
 
-    def on_object_created(self, obj, plot, auto_select):
+    def on_object_created(self, obj, plot, auto_select, callback, callback_params):
         """
         Event callback for object creation.
         It will add the new object to the collection. After that it will plot the object in a threaded way
 
-        :param obj: The newly created FlatCAM object.
-        :param plot: if the newly create object t obe plotted
-        :param auto_select: if the newly created object to be autoselected after creation
-        :return: None
+        :param obj:             The newly created FlatCAM object.
+        :param plot:            if the newly create object to be plotted
+        :param auto_select:     if the newly created object to be autoselected after creation
+        :param callback:        a method that is launched after the object is created
+        :param callback_params: a list of parameters for the parameter: callback
+        :type callback_params:  list
+        :return:                None
         """
 
         t0 = time.time()  # DEBUG
@@ -435,7 +449,7 @@ class AppObject(QtCore.QObject):
             self.app.collection.set_all_inactive()
 
         # here it is done the object plotting
-        def task(t_obj):
+        def plotting_task(t_obj):
             with self.app.proc_container.new(_("Plotting")):
                 if t_obj.kind == 'cncjob':
                     t_obj.plot(kind=self.app.defaults["cncjob_plot_kind"])
@@ -456,7 +470,11 @@ class AppObject(QtCore.QObject):
         # Send to worker
         # self.worker.add_task(worker_task, [self])
         if plot is True:
-            self.app.worker_task.emit({'fcn': task, 'params': [obj]})
+            self.app.worker_task.emit({'fcn': plotting_task, 'params': [obj]})
+
+        if callback is not None:
+            # callback(*callback_params)
+            self.app.worker_task.emit({'fcn': callback, 'params': callback_params})
 
     def on_object_changed(self, obj):
         """

+ 37 - 23
appObjects/FlatCAMCNCJob.py

@@ -26,9 +26,10 @@ from shapely.geometry import Point, MultiPoint, Polygon, LineString, box
 import shapely.affinity as affinity
 try:
     from shapely.ops import voronoi_diagram
+    VORONOI_ENABLED = True
     # from appCommon.Common import voronoi_diagram
 except Exception:
-    pass
+    VORONOI_ENABLED = False
 
 import os
 import sys
@@ -234,6 +235,11 @@ class CNCJobObject(FlatCAMObj, CNCjob):
     def build_ui(self):
         self.ui_disconnect()
 
+        # FIXME: until Shapely 1.8 comes this is disabled
+        self.ui.sal_btn.setChecked(False)
+        self.ui.sal_btn.setDisabled(True)
+        self.ui.sal_btn.setToolTip("DISABLED. Work in progress!")
+
         FlatCAMObj.build_ui(self)
         self.units = self.app.defaults['units'].upper()
 
@@ -248,7 +254,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
             self.ui.exc_cnc_tools_table.show()
             self.build_excellon_cnc_tools()
 
-        if self.ui.sal_cb.get_value():
+        if self.ui.sal_btn.isChecked():
             self.build_al_table()
 
         self.ui_connect()
@@ -573,7 +579,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
 
         self.ui.updateplot_button.clicked.connect(self.on_updateplot_button_click)
         self.ui.export_gcode_button.clicked.connect(self.on_exportgcode_button_click)
-        self.ui.review_gcode_button.clicked.connect(self.on_edit_code_click)
+        self.ui.review_gcode_button.clicked.connect(self.on_review_code_click)
 
         # Editor Signal
         self.ui.editor_button.clicked.connect(lambda: self.app.object2editor())
@@ -583,7 +589,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
         self.calculations_finished.connect(self.update_area_chull)
 
         # autolevelling signals
-        self.ui.sal_cb.stateChanged.connect(self.on_toggle_autolevelling)
+        self.ui.sal_btn.toggled.connect(self.on_toggle_autolevelling)
         self.ui.al_mode_radio.activated_custom.connect(self.on_mode_radio)
         self.ui.al_method_radio.activated_custom.connect(self.on_method_radio)
         self.ui.al_controller_combo.currentIndexChanged.connect(self.on_controller_change)
@@ -636,19 +642,19 @@ class CNCJobObject(FlatCAMObj, CNCjob):
                 '<span style="color:green;"><b>Basic</b></span>'
             ))
 
-            self.ui.sal_cb.hide()
-            self.ui.sal_cb.set_value(False)
+            self.ui.sal_btn.hide()
+            self.ui.sal_btn.setChecked(False)
         else:
             self.ui.level.setText(_(
                 '<span style="color:red;"><b>Advanced</b></span>'
             ))
             if 'Roland' in self.pp_excellon_name or 'Roland' in self.pp_geometry_name or 'hpgl' in \
                     self.pp_geometry_name:
-                self.ui.sal_cb.hide()
-                self.ui.sal_cb.set_value(False)
+                self.ui.sal_btn.hide()
+                self.ui.sal_btn.setChecked(False)
             else:
-                self.ui.sal_cb.show()
-                self.ui.sal_cb.set_value(self.app.defaults["cncjob_al_status"])
+                self.ui.sal_btn.show()
+                self.ui.sal_btn.setChecked(self.app.defaults["cncjob_al_status"])
 
         preamble = self.append_snippet
         postamble = self.prepend_snippet
@@ -771,9 +777,13 @@ class CNCJobObject(FlatCAMObj, CNCjob):
 
             al_method = self.ui.al_method_radio.get_value()
             if al_method == 'v':
-                self.generate_voronoi_geometry(pts=vor_pts_list)
-                # generate Probing GCode
-                self.probing_gcode_text = self.probing_gcode(storage=self.al_voronoi_geo_storage)
+                if VORONOI_ENABLED is True:
+                    self.generate_voronoi_geometry(pts=vor_pts_list)
+                    # generate Probing GCode
+                    self.probing_gcode_text = self.probing_gcode(storage=self.al_voronoi_geo_storage)
+                else:
+                    self.app.inform.emit('[ERROR_NOTCL] %s' % _("Voronoi function can not be loaded.\n"
+                                                                "Shapely >= 1.8 is required"))
             else:
                 self.generate_bilinear_geometry(pts=bl_pts_list)
                 # generate Probing GCode
@@ -1042,12 +1052,16 @@ class CNCJobObject(FlatCAMObj, CNCjob):
 
             al_method = self.ui.al_method_radio.get_value()
             if al_method == 'v':
-                pts_list = []
-                for k in self.al_voronoi_geo_storage:
-                    pts_list.append(self.al_voronoi_geo_storage[k]['point'])
-                self.generate_voronoi_geometry(pts=pts_list)
+                if VORONOI_ENABLED is True:
+                    pts_list = []
+                    for k in self.al_voronoi_geo_storage:
+                        pts_list.append(self.al_voronoi_geo_storage[k]['point'])
+                    self.generate_voronoi_geometry(pts=pts_list)
 
-                self.probing_gcode_text = self.probing_gcode(self.al_voronoi_geo_storage)
+                    self.probing_gcode_text = self.probing_gcode(self.al_voronoi_geo_storage)
+                else:
+                    self.app.inform.emit('[ERROR_NOTCL] %s' % _("Voronoi function can not be loaded.\n"
+                                                                "Shapely >= 1.8 is required"))
 
             # rebuild the al table
             self.build_al_table_sig.emit()
@@ -1689,7 +1703,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
         try:
             self.gcode_viewer_tab.load_text(gco, move_to_start=True, clear_text=True)
         except Exception as e:
-            log.debug('FlatCAMCNCJob.on_edit_code_click() -->%s' % str(e))
+            log.debug('FlatCAMCNCJob.on_edit_probing_gcode() -->%s' % str(e))
             return
 
         self.gcode_viewer_tab.t_frame.show()
@@ -1940,7 +1954,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
         self.app.file_saved.emit("gcode", filename)
         self.app.inform.emit('[success] %s: %s' % (_("File saved to"), filename))
 
-    def on_edit_code_click(self, *args):
+    def on_review_code_click(self, *args):
         """
         Handler activated by a button clicked when reviewing GCode.
 
@@ -1980,7 +1994,7 @@ class CNCJobObject(FlatCAMObj, CNCjob):
         try:
             self.gcode_editor_tab.load_text(self.app.gcode_edited.getvalue(), move_to_start=True, clear_text=True)
         except Exception as e:
-            log.debug('FlatCAMCNCJob.on_edit_code_click() -->%s' % str(e))
+            log.debug('FlatCAMCNCJob.on_review_code_click() -->%s' % str(e))
             return
 
         self.gcode_editor_tab.t_frame.show()
@@ -1988,8 +2002,8 @@ class CNCJobObject(FlatCAMObj, CNCjob):
 
         self.gcode_editor_tab.buttonSave.hide()
         self.gcode_editor_tab.buttonOpen.hide()
-        self.gcode_editor_tab.buttonPrint.hide()
-        self.gcode_editor_tab.buttonPreview.hide()
+        # self.gcode_editor_tab.buttonPrint.hide()
+        # self.gcode_editor_tab.buttonPreview.hide()
         self.gcode_editor_tab.buttonReplace.hide()
         self.gcode_editor_tab.sel_all_cb.hide()
         self.gcode_editor_tab.entryReplace.hide()

+ 9 - 3
appObjects/FlatCAMExcellon.py

@@ -172,6 +172,8 @@ class ExcellonObject(FlatCAMObj, Excellon):
         self.ui.plot_cb.stateChanged.connect(self.on_plot_cb_click)
         self.ui.solid_cb.stateChanged.connect(self.on_solid_cb_click)
         self.ui.multicolored_cb.stateChanged.connect(self.on_multicolored_cb_click)
+        self.multicolored_build_sig.connect(self.on_multicolored_build)
+
         self.ui.autoload_db_cb.stateChanged.connect(self.on_autoload_db_toggled)
 
         # Editor
@@ -182,6 +184,7 @@ class ExcellonObject(FlatCAMObj, Excellon):
         self.calculations_finished.connect(self.update_area_chull)
 
         self.ui.drill_button.clicked.connect(lambda: self.app.drilling_tool.run(toggle=True))
+        # FIXME will uncomment when Milling Tool is ready
         # self.ui.milling_button.clicked.connect(lambda: self.app.milling_tool.run(toggle=True))
 
         # UTILITIES
@@ -189,10 +192,10 @@ class ExcellonObject(FlatCAMObj, Excellon):
         self.ui.generate_milling_button.clicked.connect(self.on_generate_milling_button_click)
         self.ui.generate_milling_slots_button.clicked.connect(self.on_generate_milling_slots_button_click)
 
+        # Toggle all Table rows
         self.ui.tools_table.horizontalHeader().sectionClicked.connect(self.on_toggle_rows)
-        self.ui.table_visibility_cb.stateChanged.connect(self.on_table_visibility_toggle)
 
-        self.multicolored_build_sig.connect(self.on_multicolored_build)
+        self.ui.table_visibility_cb.stateChanged.connect(self.on_table_visibility_toggle)
 
         self.units_found = self.app.defaults['units']
 
@@ -560,11 +563,14 @@ class ExcellonObject(FlatCAMObj, Excellon):
         for idx in sel_indexes:
             sel_rows.add(idx.row())
 
-        if len(sel_rows) == self.ui.tools_table.rowCount():
+        # subtract the last 2 rows that show the total and are always displayed but not selected
+        if len(sel_rows) == self.ui.tools_table.rowCount() - 2:
             self.ui.tools_table.clearSelection()
         else:
             self.ui.tools_table.selectAll()
 
+        self.on_row_selection_change()
+
     def get_selected_tools_list(self):
         """
         Returns the keys to the self.tools dictionary corresponding

+ 2 - 1
appObjects/FlatCAMGeometry.py

@@ -269,6 +269,7 @@ class GeometryObject(FlatCAMObj, Geometry):
         horizontal_header.resizeSection(0, 20)
         horizontal_header.setSectionResizeMode(1, QtWidgets.QHeaderView.Stretch)
         # horizontal_header.setColumnWidth(2, QtWidgets.QHeaderView.ResizeToContents)
+        horizontal_header.setSectionResizeMode(2, QtWidgets.QHeaderView.ResizeToContents)
         horizontal_header.setSectionResizeMode(3, QtWidgets.QHeaderView.ResizeToContents)
         horizontal_header.setSectionResizeMode(4, QtWidgets.QHeaderView.Fixed)
         horizontal_header.resizeSection(4, 40)
@@ -1914,7 +1915,7 @@ class GeometryObject(FlatCAMObj, Geometry):
             log.debug("FlatCAMObj.GeometryObject.mtool_gen_cncjob() --> %s\n" % str(e))
 
             msg = '[ERROR] %s' % _("An internal error has occurred. See shell.\n")
-            msg += '%s %s' % ('FlatCAMObj.GeometryObject.mtool_gen_cncjob() -->', str(e))
+            msg += '%s' % str(e)
             msg += traceback.format_exc()
             self.app.inform.emit(msg)
             return

+ 2 - 2
appObjects/FlatCAMObj.py

@@ -219,12 +219,12 @@ class FlatCAMObj(QtCore.QObject):
             # it seems that the takewidget() does generate a focus out event for the QDoubleSpinbox ...
             # and reconnect after the takeWidget() is done
             # self.ui.scale_entry.returnPressed.disconnect(self.on_scale_button_click)
-            self.app.ui.selected_scroll_area.takeWidget()
+            self.app.ui.properties_scroll_area.takeWidget()
             # self.ui.scale_entry.returnPressed.connect(self.on_scale_button_click)
         except Exception as e:
             self.app.log.debug("FlatCAMObj.build_ui() --> Nothing to remove: %s" % str(e))
 
-        self.app.ui.selected_scroll_area.setWidget(self.ui)
+        self.app.ui.properties_scroll_area.setWidget(self.ui)
         # self.ui.setMinimumWidth(100)
         # self.ui.setMaximumWidth(self.app.ui.properties_tab.sizeHint().width())
 

+ 7 - 7
appObjects/ObjectCollection.py

@@ -126,36 +126,36 @@ class KeySensitiveListView(QtWidgets.QTreeView):
                         self.app.inform.emit(_("Cancelled."))
                     else:
                         if self.filename.lower().rpartition('.')[-1] in self.app.grb_list:
-                            self.app.worker_task.emit({'fcn': self.app.open_gerber,
+                            self.app.worker_task.emit({'fcn': self.app.f_handlers.open_gerber,
                                                        'params': [self.filename]})
                         else:
                             event.ignore()
 
                         if self.filename.lower().rpartition('.')[-1] in self.app.exc_list:
-                            self.app.worker_task.emit({'fcn': self.app.open_excellon,
+                            self.app.worker_task.emit({'fcn': self.app.f_handlers.open_excellon,
                                                        'params': [self.filename]})
                         else:
                             event.ignore()
 
                         if self.filename.lower().rpartition('.')[-1] in self.app.gcode_list:
-                            self.app.worker_task.emit({'fcn': self.app.open_gcode,
+                            self.app.worker_task.emit({'fcn': self.app.f_handlers.open_gcode,
                                                        'params': [self.filename]})
                         else:
                             event.ignore()
 
                         if self.filename.lower().rpartition('.')[-1] in self.app.svg_list:
                             object_type = 'geometry'
-                            self.app.worker_task.emit({'fcn': self.app.import_svg,
+                            self.app.worker_task.emit({'fcn': self.app.f_handlers.import_svg,
                                                        'params': [self.filename, object_type, None]})
 
                         if self.filename.lower().rpartition('.')[-1] in self.app.dxf_list:
                             object_type = 'geometry'
-                            self.app.worker_task.emit({'fcn': self.app.import_dxf,
+                            self.app.worker_task.emit({'fcn': self.app.f_handlers.import_dxf,
                                                        'params': [self.filename, object_type, None]})
 
                         if self.filename.lower().rpartition('.')[-1] in self.app.prj_list:
                             # self.app.open_project() is not Thread Safe
-                            self.app.open_project(self.filename)
+                            self.app.f_handlers.open_project(self.filename)
                         else:
                             event.ignore()
                 else:
@@ -967,7 +967,7 @@ class ObjectCollection(QtCore.QAbstractItemModel):
             # log.debug("on_list_selection_change(): Index Error (Nothing selected?)")
             self.app.inform.emit('')
             try:
-                self.app.ui.selected_scroll_area.takeWidget()
+                self.app.ui.properties_scroll_area.takeWidget()
             except Exception as e:
                 log.debug("Nothing to remove. %s" % str(e))
 

+ 18 - 18
appParsers/ParseHPGL2.py

@@ -81,26 +81,26 @@ class HPGL2:
             "toolchangexy":             self.app.defaults["geometry_toolchangexy"],
             "startz":                   self.app.defaults["geometry_startz"],
 
-            "tooldia":                  self.app.defaults["tools_painttooldia"],
-            "tools_paintoffset":        self.app.defaults["tools_paintoffset"],
-            "tools_paintmethod":        self.app.defaults["tools_paintmethod"],
-            "tools_selectmethod":       self.app.defaults["tools_selectmethod"],
-            "tools_pathconnect":        self.app.defaults["tools_pathconnect"],
-            "tools_paintcontour":       self.app.defaults["tools_paintcontour"],
-            "tools_paintoverlap":       self.app.defaults["tools_paintoverlap"],
-            "tools_paintrest":          self.app.defaults["tools_paintrest"],
-
-            "tools_nccoperation":       self.app.defaults["tools_nccoperation"],
-            "tools_nccmargin":          self.app.defaults["tools_nccmargin"],
-            "tools_nccmethod":          self.app.defaults["tools_nccmethod"],
-            "tools_nccconnect":         self.app.defaults["tools_nccconnect"],
-            "tools_ncccontour":         self.app.defaults["tools_ncccontour"],
-            "tools_nccoverlap":         self.app.defaults["tools_nccoverlap"],
-            "tools_nccrest":            self.app.defaults["tools_nccrest"],
-            "tools_nccref":             self.app.defaults["tools_nccref"],
+            "tooldia":                  self.app.defaults["tools_paint_tooldia"],
+            "tools_paint_offset":       self.app.defaults["tools_paint_offset"],
+            "tools_paint_method":       self.app.defaults["tools_paint_method"],
+            "tools_paint_selectmethod": self.app.defaults["tools_paint_selectmethod"],
+            "tools_paint_connect":      self.app.defaults["tools_paint_connect"],
+            "tools_paint_contour":      self.app.defaults["tools_paint_contour"],
+            "tools_paint_overlap":      self.app.defaults["tools_paint_overlap"],
+            "tools_paint_rest":         self.app.defaults["tools_paint_rest"],
+
+            "tools_ncc_operation":      self.app.defaults["tools_ncc_operation"],
+            "tools_ncc_margin":         self.app.defaults["tools_ncc_margin"],
+            "tools_ncc_method":         self.app.defaults["tools_ncc_method"],
+            "tools_ncc_connect":        self.app.defaults["tools_ncc_connect"],
+            "tools_ncc_contour":        self.app.defaults["tools_ncc_contour"],
+            "tools_ncc_overlap":        self.app.defaults["tools_ncc_overlap"],
+            "tools_ncc_rest":           self.app.defaults["tools_ncc_rest"],
+            "tools_ncc_ref":            self.app.defaults["tools_ncc_ref"],
             "tools_ncc_offset_choice":  self.app.defaults["tools_ncc_offset_choice"],
             "tools_ncc_offset_value":   self.app.defaults["tools_ncc_offset_value"],
-            "tools_nccmilling_type":    self.app.defaults["tools_nccmilling_type"],
+            "tools_ncc_milling_type":   self.app.defaults["tools_ncc_milling_type"],
 
             "tools_iso_passes":         self.app.defaults["tools_iso_passes"],
             "tools_iso_overlap":        self.app.defaults["tools_iso_overlap"],

+ 1 - 1
appTool.py

@@ -90,7 +90,7 @@ class AppTool(QtWidgets.QWidget):
         # Remove anything else in the appGUI
         self.app.ui.tool_scroll_area.takeWidget()
 
-        # Put ourself in the appGUI
+        # Put ourselves in the appGUI
         self.app.ui.tool_scroll_area.setWidget(self)
 
         # Switch notebook to tool page

+ 4 - 4
appTools/ToolCalibration.py

@@ -671,8 +671,8 @@ class ToolCalibration(AppTool):
             obj_init.skew(angle_x=skewx, angle_y=skewy, point=(origin_x, origin_y))
 
             try:
-                obj_init.source_file = self.export_gerber(obj_name=obj_name, filename=None, local_use=obj_init,
-                                                          use_thread=False)
+                obj_init.source_file = self.app.f_handlers.export_gerber(obj_name=obj_name, filename=None,
+                                                                         local_use=obj_init, use_thread=False)
             except (AttributeError, TypeError):
                 pass
 
@@ -689,8 +689,8 @@ class ToolCalibration(AppTool):
 
             obj_init.create_geometry()
 
-            obj_init.source_file = self.app.export_excellon(obj_name=obj_name, local_use=obj, filename=None,
-                                                            use_thread=False)
+            obj_init.source_file = self.app.export.export_excellon(obj_name=obj_name, local_use=obj, filename=None,
+                                                                   use_thread=False)
 
         obj = self.cal_object
         obj_name = obj_name

+ 26 - 24
appTools/ToolCopperThieving.py

@@ -282,10 +282,9 @@ class ToolCopperThieving(AppTool):
 
         self.app.proc_container.update_view_text(' %s' % _("Append source file"))
         # update the source file with the new geometry:
-        self.grb_object.source_file = self.app.export_gerber(obj_name=self.grb_object.options['name'],
-                                                             filename=None,
-                                                             local_use=self.grb_object,
-                                                             use_thread=False)
+        self.grb_object.source_file = self.app.f_handlers.export_gerber(obj_name=self.grb_object.options['name'],
+                                                                        filename=None, local_use=self.grb_object,
+                                                                        use_thread=False)
         self.app.proc_container.update_view_text(' %s' % '')
         self.on_exit()
         self.app.inform.emit('[success] %s' % _("Copper Thieving Tool done."))
@@ -519,9 +518,9 @@ class ToolCopperThieving(AppTool):
 
         ref_selected = self.ui.reference_radio.get_value()
         if c_val is None:
-            c_val = float(self.app.defaults["tools_copperfill_clearance"])
+            c_val = float(self.app.defaults["tools_copper_thieving_clearance"])
         if margin is None:
-            margin = float(self.app.defaults["tools_copperfill_margin"])
+            margin = float(self.app.defaults["tools_copper_thieving_margin"])
 
         fill_type = self.ui.fill_type_radio.get_value()
         dot_dia = self.ui.dot_dia_entry.get_value()
@@ -543,10 +542,8 @@ class ToolCopperThieving(AppTool):
             app_obj.app.inform.emit(_("Copper Thieving Tool. Preparing isolation polygons."))
 
             # variables to display the percentage of work done
-            geo_len = 0
             try:
-                for pol in app_obj.grb_object.solid_geometry:
-                    geo_len += 1
+                geo_len = len(app_obj.grb_object.solid_geometry)
             except TypeError:
                 geo_len = 1
 
@@ -613,10 +610,12 @@ class ToolCopperThieving(AppTool):
                         bounding_box = env_obj.buffer(distance=margin, join_style=base.JOIN_STYLE.mitre)
                     else:
                         if isinstance(geo_n, Polygon):
-                            bounding_box = geo_n.buffer(distance=margin, join_style=base.JOIN_STYLE.mitre).exterior
+                            bounding_box = geo_n.buffer(distance=margin, join_style=base.JOIN_STYLE.mitre)
                         elif isinstance(geo_n, list):
-                            geo_n = unary_union(geo_n)
-                            bounding_box = geo_n.buffer(distance=margin, join_style=base.JOIN_STYLE.mitre).exterior
+                            geo_n = MultiPolygon(geo_n)
+                            x0, y0, x1, y1 = geo_n.bounds
+                            geo = box(x0, y0, x1, y1)
+                            bounding_box = geo.buffer(distance=margin, join_style=base.JOIN_STYLE.mitre)
                         elif isinstance(geo_n, MultiPolygon):
                             x0, y0, x1, y1 = geo_n.bounds
                             geo = box(x0, y0, x1, y1)
@@ -689,10 +688,16 @@ class ToolCopperThieving(AppTool):
             # bounding_box = box(x0, y0, x1, y1)
             app_obj.app.proc_container.update_view_text(' %s' % _("Create geometry"))
 
-            bounding_box = thieving_obj.solid_geometry.envelope.buffer(
-                distance=margin,
-                join_style=base.JOIN_STYLE.mitre
-            )
+            try:
+                bounding_box = thieving_obj.solid_geometry.envelope.buffer(
+                    distance=margin,
+                    join_style=base.JOIN_STYLE.mitre
+                )
+            except AttributeError:
+                bounding_box = MultiPolygon(thieving_obj.solid_geometry).envelope.buffer(
+                    distance=margin,
+                    join_style=base.JOIN_STYLE.mitre
+                )
             x0, y0, x1, y1 = bounding_box.bounds
 
             if fill_type == 'dot' or fill_type == 'square':
@@ -870,10 +875,9 @@ class ToolCopperThieving(AppTool):
 
             app_obj.app.proc_container.update_view_text(' %s' % _("Append source file"))
             # update the source file with the new geometry:
-            app_obj.grb_object.source_file = app_obj.app.export_gerber(obj_name=app_obj.grb_object.options['name'],
-                                                                       filename=None,
-                                                                       local_use=app_obj.grb_object,
-                                                                       use_thread=False)
+            app_obj.grb_object.source_file = app_obj.f_handlers.export_gerber(
+                obj_name=app_obj.grb_object.options['name'], filename=None, local_use=app_obj.grb_object,
+                use_thread=False)
             app_obj.app.proc_container.update_view_text(' %s' % '')
             app_obj.on_exit()
             app_obj.app.inform.emit('[success] %s' % _("Copper Thieving Tool done."))
@@ -1015,10 +1019,8 @@ class ToolCopperThieving(AppTool):
 
             app_obj.proc_container.update_view_text(' %s' % _("Append source file"))
             # update the source file with the new geometry:
-            grb_obj.source_file = app_obj.export_gerber(obj_name=name,
-                                                        filename=None,
-                                                        local_use=grb_obj,
-                                                        use_thread=False)
+            grb_obj.source_file = app_obj.f_handlers.export_gerber(obj_name=name, filename=None, local_use=grb_obj,
+                                                                   use_thread=False)
             app_obj.proc_container.update_view_text(' %s' % '')
 
         # Object name

+ 4 - 3
appTools/ToolCorners.py

@@ -133,9 +133,10 @@ class ToolCorners(AppTool):
 
         self.add_corners_geo(points, g_obj=self.grb_object)
 
-        self.grb_object.source_file = self.app.export_gerber(obj_name=self.grb_object.options['name'],
-                                                             filename=None,
-                                                             local_use=self.grb_object, use_thread=False)
+        self.grb_object.source_file = self.app.f_handlers.export_gerber(obj_name=self.grb_object.options['name'],
+                                                                        filename=None,
+                                                                        local_use=self.grb_object,
+                                                                        use_thread=False)
         self.on_exit()
 
     def add_corners_geo(self, points_storage, g_obj):

+ 12 - 8
appTools/ToolCutOut.py

@@ -875,8 +875,9 @@ class CutOut(AppTool):
 
                     exc_obj.tools = tools
                     exc_obj.create_geometry()
-                    exc_obj.source_file = app_o.export_excellon(obj_name=exc_obj.options['name'], local_use=exc_obj,
-                                                                filename=None, use_thread=False)
+                    exc_obj.source_file = app_o.f_handlers.export_excellon(obj_name=exc_obj.options['name'],
+                                                                           local_use=exc_obj,filename=None,
+                                                                           use_thread=False)
                     # calculate the bounds
                     xmin, ymin, xmax, ymax = CutOut.recursive_bounds(exc_obj.solid_geometry)
                     exc_obj.options['xmin'] = xmin
@@ -1244,8 +1245,10 @@ class CutOut(AppTool):
 
                     exc_obj.tools = tools
                     exc_obj.create_geometry()
-                    exc_obj.source_file = app_o.export_excellon(obj_name=exc_obj.options['name'], local_use=exc_obj,
-                                                                filename=None, use_thread=False)
+                    exc_obj.source_file = app_o.f_handlers.export_excellon(obj_name=exc_obj.options['name'],
+                                                                           local_use=exc_obj,
+                                                                           filename=None,
+                                                                           use_thread=False)
                     # calculate the bounds
                     e_xmin, e_ymin, e_xmax, e_ymax = CutOut.recursive_bounds(exc_obj.solid_geometry)
                     exc_obj.options['xmin'] = e_xmin
@@ -1600,9 +1603,10 @@ class CutOut(AppTool):
 
                             exc_obj.tools = tools
                             exc_obj.create_geometry()
-                            exc_obj.source_file = app_o.export_excellon(obj_name=exc_obj.options['name'],
-                                                                        local_use=exc_obj,
-                                                                        filename=None, use_thread=False)
+                            exc_obj.source_file = app_o.f_handlers.export_excellon(obj_name=exc_obj.options['name'],
+                                                                                   local_use=exc_obj,
+                                                                                   filename=None,
+                                                                                   use_thread=False)
                             # calculate the bounds
                             xmin, ymin, xmax, ymax = CutOut.recursive_bounds(exc_obj.solid_geometry)
                             exc_obj.options['xmin'] = xmin
@@ -2219,7 +2223,7 @@ class CutoutUI:
         # Mouse Bites Tool Diameter
         self.mb_dia_label = FCLabel('%s:' % _("Tool Diameter"))
         self.mb_dia_label.setToolTip(
-            _("The drill hole diameter when doing mpuse bites.")
+            _("The drill hole diameter when doing mouse bites.")
         )
         self.mb_dia_entry = FCDoubleSpinner(callback=self.confirmation_message)
         self.mb_dia_entry.set_precision(self.decimals)

+ 7 - 8
appTools/ToolDblSided.py

@@ -205,8 +205,10 @@ class DblSidedTool(AppTool):
         def obj_init(obj_inst, app_inst):
             obj_inst.tools = tools
             obj_inst.create_geometry()
-            obj_inst.source_file = app_inst.export_excellon(obj_name=obj_inst.options['name'], local_use=obj_inst,
-                                                            filename=None, use_thread=False)
+            obj_inst.source_file = app_inst.f_handlers.export_excellon(obj_name=obj_inst.options['name'],
+                                                                       local_use=obj_inst,
+                                                                       filename=None,
+                                                                       use_thread=False)
 
         self.app.app_obj.new_object("excellon", "Alignment Drills", obj_init)
         self.drill_values = ''
@@ -518,10 +520,7 @@ class DsidedUI:
         # Type of object to be cutout
         self.type_obj_combo_label = QtWidgets.QLabel('%s:' % _("Type"))
         self.type_obj_combo_label.setToolTip(
-            _("Specify the type of object to be cutout.\n"
-              "It can be of type: Gerber or Geometry.\n"
-              "What is selected here will dictate the kind\n"
-              "of objects that will populate the 'Object' combobox.")
+            _("Select the type of application object to be processed in this tool.")
         )
 
         self.object_type_radio = RadioSet([
@@ -688,7 +687,7 @@ class DsidedUI:
               "- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
               "- Box -> a set of coordinates (x, y) obtained from the center of the\n"
               "bounding box of another object selected below\n"
-              "- Hole Snap -> a point defined by the center of a drill hone in a Excellon object")
+              "- Hole Snap -> a point defined by the center of a drill hole in a Excellon object")
         )
         self.axis_location = RadioSet(
             [
@@ -726,7 +725,7 @@ class DsidedUI:
 
         self.exc_hole_lbl = QtWidgets.QLabel('%s:' % _("Excellon"))
         self.exc_hole_lbl.setToolTip(
-            _("Object that holds holes that can be picked as reference for mirroing.")
+            _("Object that holds holes that can be picked as reference for mirroring.")
         )
 
         # Excellon Object that holds the holes

+ 2 - 2
appTools/ToolEtchCompensation.py

@@ -233,8 +233,8 @@ class ToolEtchCompensation(AppTool):
             new_obj.apertures = deepcopy(new_apertures)
 
             new_obj.solid_geometry = deepcopy(new_solid_geometry)
-            new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
-                                                         local_use=new_obj, use_thread=False)
+            new_obj.source_file = self.app.f_handlers.export_gerber(obj_name=outname, filename=None, local_use=new_obj,
+                                                                    use_thread=False)
 
         self.app.app_obj.new_object('gerber', outname, init_func)
 

+ 3 - 2
appTools/ToolExtractDrills.py

@@ -373,8 +373,9 @@ class ToolExtractDrills(AppTool):
             obj_inst.tools = tools
             obj_inst.drills = drills
             obj_inst.create_geometry()
-            obj_inst.source_file = self.app.export_excellon(obj_name=outname, local_use=obj_inst, filename=None,
-                                                            use_thread=False)
+            obj_inst.source_file = app_inst.f_handlers.export_excellon(obj_name=outname, local_use=obj_inst,
+                                                                       filename=None,
+                                                                       use_thread=False)
 
         self.app.app_obj.new_object("excellon", outname, obj_init)
 

+ 13 - 11
appTools/ToolFiducials.py

@@ -229,9 +229,9 @@ class ToolFiducials(AppTool):
                 self.ui.sec_points_coords_entry.set_value('(%.*f, %.*f)' % (self.decimals, x1, self.decimals, y0))
 
             self.add_fiducials_geo(self.click_points, g_obj=self.grb_object, fid_type=fid_type)
-            self.grb_object.source_file = self.app.export_gerber(obj_name=self.grb_object.options['name'],
-                                                                 filename=None,
-                                                                 local_use=self.grb_object, use_thread=False)
+            self.grb_object.source_file = self.app.f_handlers.export_gerber(obj_name=self.grb_object.options['name'],
+                                                                            filename=None,
+                                                                            local_use=self.grb_object, use_thread=False)
             self.on_exit()
         else:
             self.app.inform.emit(_("Click to add first Fiducial. Bottom Left..."))
@@ -467,8 +467,10 @@ class ToolFiducials(AppTool):
         self.sm_obj_set.add(self.sm_object.options['name'])
         self.add_fiducials_geo(self.click_points, g_obj=self.sm_object, fid_size=sm_opening_dia, fid_type='circular')
 
-        self.sm_object.source_file = self.app.export_gerber(obj_name=self.sm_object.options['name'], filename=None,
-                                                            local_use=self.sm_object, use_thread=False)
+        self.sm_object.source_file = self.app.f_handlers.export_gerber(obj_name=self.sm_object.options['name'],
+                                                                       filename=None,
+                                                                       local_use=self.sm_object,
+                                                                       use_thread=False)
         self.on_exit()
 
     def on_mouse_release(self, event):
@@ -508,18 +510,18 @@ class ToolFiducials(AppTool):
                 self.ui.sec_points_coords_entry.set_value(self.click_points[2])
                 self.app.inform.emit('[success] %s' % _("Done. All fiducials have been added."))
                 self.add_fiducials_geo(self.click_points, g_obj=self.grb_object, fid_type=fid_type)
-                self.grb_object.source_file = self.app.export_gerber(obj_name=self.grb_object.options['name'],
-                                                                     filename=None,
-                                                                     local_use=self.grb_object, use_thread=False)
+                self.grb_object.source_file = self.app.f_handlers.export_gerber(
+                    obj_name=self.grb_object.options['name'], filename=None, local_use=self.grb_object,
+                    use_thread=False)
                 self.on_exit()
         else:
             if len(self.click_points) == 2:
                 self.ui.top_right_coords_entry.set_value(self.click_points[1])
                 self.app.inform.emit('[success] %s' % _("Done. All fiducials have been added."))
                 self.add_fiducials_geo(self.click_points, g_obj=self.grb_object, fid_type=fid_type)
-                self.grb_object.source_file = self.app.export_gerber(obj_name=self.grb_object.options['name'],
-                                                                     filename=None,
-                                                                     local_use=self.grb_object, use_thread=False)
+                self.grb_object.source_file = self.app.f_handlers.export_gerber(
+                    obj_name=self.grb_object.options['name'], filename=None,
+                    local_use=self.grb_object, use_thread=False)
                 self.on_exit()
 
     def on_mouse_move(self, event):

+ 8 - 9
appTools/ToolFilm.py

@@ -63,6 +63,8 @@ class Film(AppTool):
         self.ui.file_type_radio.activated_custom.connect(self.ui.on_file_type)
         self.ui.reset_button.clicked.connect(self.set_tool_ui)
 
+        self.screen_dpi = 96
+
     def on_type_obj_index_changed(self, val):
         obj_type = 2 if val == 'geo' else 0
         self.ui.tf_object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
@@ -446,9 +448,10 @@ class Film(AppTool):
 
             scale_reference = 'center'
 
-            default_dpi = 96
+            self.screen_dpi = self.app.qapp.screens()[0].logicalDotsPerInch()
+
             new_png_dpi = self.ui.png_dpi_spinner.get_value()
-            dpi_rate = new_png_dpi / default_dpi
+            dpi_rate = new_png_dpi / self.screen_dpi
             # Determine bounding area for svg export
             bounds = box.bounds()
             tr_scale_reference = (bounds[0], bounds[1])
@@ -703,9 +706,10 @@ class Film(AppTool):
 
             scale_reference = 'center'
 
-            default_dpi = 96
+            self.screen_dpi = self.app.qapp.screens()[0].logicalDotsPerInch()
+
             new_png_dpi = self.ui.png_dpi_spinner.get_value()
-            dpi_rate = new_png_dpi / default_dpi
+            dpi_rate = new_png_dpi / self.screen_dpi
             # Determine bounding area for svg export
             bounds = box.bounds()
             tr_scale_reference = (bounds[0], bounds[1])
@@ -835,11 +839,6 @@ class Film(AppTool):
                     doc_final = StringIO(doc_final)
                     drawing = svg2rlg(doc_final)
                     renderPM.drawToFile(drawing, filename, 'PNG')
-
-                    # if new_png_dpi == default_dpi:
-                    #     renderPM.drawToFile(drawing, filename, 'PNG')
-                    # else:
-                    #     renderPM.drawToFile(drawing, filename, 'PNG', dpi=new_png_dpi)
                 except Exception as e:
                     log.debug("FilmTool.export_positive() --> PNG output --> %s" % str(e))
                     return 'fail'

+ 6 - 6
appTools/ToolInvertGerber.py

@@ -44,7 +44,7 @@ class ToolInvertGerber(AppTool):
         self.ui.reset_button.clicked.connect(self.set_tool_ui)
 
     def install(self, icon=None, separator=None, **kwargs):
-        AppTool.install(self, icon, separator, shortcut='', **kwargs)
+        AppTool.install(self, icon, separator, shortcut='ALT+G', **kwargs)
 
     def run(self, toggle=True):
         self.app.defaults.report_usage("ToolInvertGerber()")
@@ -157,8 +157,8 @@ class ToolInvertGerber(AppTool):
             new_obj.apertures = deepcopy(new_apertures)
 
             new_obj.solid_geometry = deepcopy(new_solid_geometry)
-            new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
-                                                         local_use=new_obj, use_thread=False)
+            new_obj.source_file = self.app.f_handlers.export_gerber(obj_name=outname, filename=None,
+                                                                    local_use=new_obj, use_thread=False)
 
         self.app.app_obj.new_object('gerber', outname, init_func)
 
@@ -253,9 +253,9 @@ class InvertUI:
               "- bevel -> the lines are joined by a third line")
         )
         self.join_radio = RadioSet([
-            {'label': 'Rounded', 'value': 'r'},
-            {'label': 'Square', 'value': 's'},
-            {'label': 'Bevel', 'value': 'b'}
+            {'label': _('Rounded'), 'value': 'r'},
+            {'label': _('Square'), 'value': 's'},
+            {'label': _('Bevel'), 'value': 'b'}
         ], orientation='vertical', stretch=False)
 
         grid0.addWidget(self.join_label, 7, 0, 1, 2)

+ 1 - 1
appTools/ToolMilling.py

@@ -52,7 +52,7 @@ class ToolMilling(AppTool, Excellon):
         # #############################################################################
         # ######################### Tool GUI ##########################################
         # #############################################################################
-        self.ui = DrillingUI(layout=self.layout, app=self.app)
+        self.ui = MillingUI(layout=self.layout, app=self.app)
         self.toolName = self.ui.toolName
 
         # #############################################################################

+ 2 - 2
appTools/ToolMove.py

@@ -192,10 +192,10 @@ class ToolMove(AppTool):
                                 for sel_obj in obj_list:
                                     out_name = sel_obj.options["name"]
                                     if sel_obj.kind == 'gerber':
-                                        sel_obj.source_file = self.app.export_gerber(
+                                        sel_obj.source_file = self.app.f_handlers.export_gerber(
                                             obj_name=out_name, filename=None, local_use=sel_obj, use_thread=False)
                                     elif sel_obj.kind == 'excellon':
-                                        sel_obj.source_file = self.app.export_excellon(
+                                        sel_obj.source_file = self.app.f_handlers.export_excellon(
                                             obj_name=out_name, filename=None, local_use=sel_obj, use_thread=False)
                             except Exception as err:
                                 log.debug('[ERROR_NOTCL] %s --> %s' % ('ToolMove.on_left_click()', str(err)))

+ 242 - 125
appTools/ToolNCC.py

@@ -98,6 +98,9 @@ class NonCopperClear(AppTool, Gerber):
         self.contour = None
         self.rest = None
 
+        # store here the tool diameter that is guaranteed to isolate the object
+        self.safe_tooldia = None
+
         self.first_click = False
         self.cursor_pos = None
         self.mouse_is_dragging = False
@@ -126,27 +129,29 @@ class NonCopperClear(AppTool, Gerber):
         self.tooldia = None
 
         self.form_fields = {
-            "tools_nccoperation": self.ui.op_radio,
-            "tools_nccoverlap": self.ui.ncc_overlap_entry,
-            "tools_nccmargin": self.ui.ncc_margin_entry,
-            "tools_nccmethod": self.ui.ncc_method_combo,
-            "tools_nccconnect": self.ui.ncc_connect_cb,
-            "tools_ncccontour": self.ui.ncc_contour_cb,
-            "tools_ncc_offset_choice": self.ui.ncc_choice_offset_cb,
-            "tools_ncc_offset_value": self.ui.ncc_offset_spinner,
-            "tools_nccmilling_type": self.ui.milling_type_radio
+            "tools_ncc_operation":      self.ui.op_radio,
+            "tools_ncc_overlap":        self.ui.ncc_overlap_entry,
+            "tools_ncc_margin":         self.ui.ncc_margin_entry,
+            "tools_ncc_method":         self.ui.ncc_method_combo,
+            "tools_ncc_connect":        self.ui.ncc_connect_cb,
+            "tools_ncc_contour":        self.ui.ncc_contour_cb,
+            "tools_ncc_offset_choice":  self.ui.ncc_choice_offset_cb,
+            "tools_ncc_offset_value":   self.ui.ncc_offset_spinner,
+            "tools_ncc_milling_type":   self.ui.milling_type_radio,
+            "tools_ncc_check_valid":    self.ui.valid_cb
         }
 
         self.name2option = {
-            "n_operation": "tools_nccoperation",
-            "n_overlap": "tools_nccoverlap",
-            "n_margin": "tools_nccmargin",
-            "n_method": "tools_nccmethod",
-            "n_connect": "tools_nccconnect",
-            "n_contour": "tools_ncccontour",
-            "n_offset": "tools_ncc_offset_choice",
-            "n_offset_value": "tools_ncc_offset_value",
-            "n_milling_type": "tools_nccmilling_type",
+            "n_operation":      "tools_ncc_operation",
+            "n_overlap":        "tools_ncc_overlap",
+            "n_margin":         "tools_ncc_margin",
+            "n_method":         "tools_ncc_method",
+            "n_connect":        "tools_ncc_connect",
+            "n_contour":        "tools_ncc_contour",
+            "n_offset":         "tools_ncc_offset_choice",
+            "n_offset_value":   "tools_ncc_offset_value",
+            "n_milling_type":   "tools_ncc_milling_type",
+            "n_check":          "tools_ncc_check_valid",
         }
 
         self.old_tool_dia = None
@@ -241,7 +246,7 @@ class NonCopperClear(AppTool, Gerber):
         current_row = self.ui.tools_table.currentRow()
         try:
             current_uid = int(self.ui.tools_table.item(current_row, 3).text())
-            self.ncc_tools[current_uid]['data']['tools_nccoperation'] = val
+            self.ncc_tools[current_uid]['data']['tools_ncc_operation'] = val
             # TODO got a crash here, a KeyError exception; need to see it again and find out the why
         except AttributeError:
             return
@@ -463,7 +468,10 @@ class NonCopperClear(AppTool, Gerber):
 
     def set_tool_ui(self):
         self.units = self.app.defaults['units'].upper()
-        self.old_tool_dia = self.app.defaults["tools_nccnewdia"]
+        self.old_tool_dia = self.app.defaults["tools_ncc_newdia"]
+
+        # reset the value to prepare for another isolation
+        self.safe_tooldia = None
 
         self.ui.tools_frame.show()
 
@@ -492,29 +500,32 @@ class NonCopperClear(AppTool, Gerber):
             self.on_type_obj_index_changed(val=kind)
             self.on_reference_combo_changed()
 
-        self.ui.op_radio.set_value(self.app.defaults["tools_nccoperation"])
-        self.ui.ncc_order_radio.set_value(self.app.defaults["tools_nccorder"])
-        self.ui.ncc_overlap_entry.set_value(self.app.defaults["tools_nccoverlap"])
-        self.ui.ncc_margin_entry.set_value(self.app.defaults["tools_nccmargin"])
-        self.ui.ncc_method_combo.set_value(self.app.defaults["tools_nccmethod"])
-        self.ui.ncc_connect_cb.set_value(self.app.defaults["tools_nccconnect"])
-        self.ui.ncc_contour_cb.set_value(self.app.defaults["tools_ncccontour"])
+        self.ui.op_radio.set_value(self.app.defaults["tools_ncc_operation"])
+        self.ui.ncc_order_radio.set_value(self.app.defaults["tools_ncc_order"])
+        self.ui.ncc_overlap_entry.set_value(self.app.defaults["tools_ncc_overlap"])
+        self.ui.ncc_margin_entry.set_value(self.app.defaults["tools_ncc_margin"])
+        self.ui.ncc_method_combo.set_value(self.app.defaults["tools_ncc_method"])
+        self.ui.ncc_connect_cb.set_value(self.app.defaults["tools_ncc_connect"])
+        self.ui.ncc_contour_cb.set_value(self.app.defaults["tools_ncc_contour"])
         self.ui.ncc_choice_offset_cb.set_value(self.app.defaults["tools_ncc_offset_choice"])
         self.ui.ncc_offset_spinner.set_value(self.app.defaults["tools_ncc_offset_value"])
 
-        self.ui.ncc_rest_cb.set_value(self.app.defaults["tools_nccrest"])
-        self.ui.rest_ncc_margin_entry.set_value(self.app.defaults["tools_nccmargin"])
-        self.ui.rest_ncc_connect_cb.set_value(self.app.defaults["tools_nccconnect"])
-        self.ui.rest_ncc_contour_cb.set_value(self.app.defaults["tools_ncccontour"])
+        self.ui.ncc_rest_cb.set_value(self.app.defaults["tools_ncc_rest"])
+        self.ui.on_rest_machining_check(state=self.app.defaults["tools_ncc_rest"])
+
+        self.ui.rest_ncc_margin_entry.set_value(self.app.defaults["tools_ncc_margin"])
+        self.ui.rest_ncc_connect_cb.set_value(self.app.defaults["tools_ncc_connect"])
+        self.ui.rest_ncc_contour_cb.set_value(self.app.defaults["tools_ncc_contour"])
         self.ui.rest_ncc_choice_offset_cb.set_value(self.app.defaults["tools_ncc_offset_choice"])
         self.ui.rest_ncc_offset_spinner.set_value(self.app.defaults["tools_ncc_offset_value"])
 
-        self.ui.select_combo.set_value(self.app.defaults["tools_nccref"])
+        self.ui.select_combo.set_value(self.app.defaults["tools_ncc_ref"])
         self.ui.area_shape_radio.set_value(self.app.defaults["tools_ncc_area_shape"])
+        self.ui.valid_cb.set_value(self.app.defaults["tools_ncc_check_valid"])
 
-        self.ui.milling_type_radio.set_value(self.app.defaults["tools_nccmilling_type"])
+        self.ui.milling_type_radio.set_value(self.app.defaults["tools_ncc_milling_type"])
 
-        self.ui.new_tooldia_entry.set_value(self.app.defaults["tools_nccnewdia"])
+        self.ui.new_tooldia_entry.set_value(self.app.defaults["tools_ncc_newdia"])
 
         # init the working variables
         self.default_data.clear()
@@ -550,26 +561,27 @@ class NonCopperClear(AppTool, Gerber):
             "area_overz":               float(self.app.defaults["geometry_area_overz"]),
             "optimization_type":        self.app.defaults["geometry_optimization_type"],
 
-            "tools_nccoperation":       self.app.defaults["tools_nccoperation"],
-            "tools_nccmargin":          self.app.defaults["tools_nccmargin"],
-            "tools_nccmethod":          self.app.defaults["tools_nccmethod"],
-            "tools_nccconnect":         self.app.defaults["tools_nccconnect"],
-            "tools_ncccontour":         self.app.defaults["tools_ncccontour"],
-            "tools_nccoverlap":         self.app.defaults["tools_nccoverlap"],
-            "tools_nccrest":            self.app.defaults["tools_nccrest"],
-            "tools_nccref":             self.app.defaults["tools_nccref"],
+            "tools_ncc_operation":      self.app.defaults["tools_ncc_operation"],
+            "tools_ncc_margin":         self.app.defaults["tools_ncc_margin"],
+            "tools_ncc_method":         self.app.defaults["tools_ncc_method"],
+            "tools_ncc_connect":        self.app.defaults["tools_ncc_connect"],
+            "tools_ncc_contour":        self.app.defaults["tools_ncc_contour"],
+            "tools_ncc_overlap":        self.app.defaults["tools_ncc_overlap"],
+            "tools_ncc_rest":           self.app.defaults["tools_ncc_rest"],
+            "tools_ncc_ref":            self.app.defaults["tools_ncc_ref"],
             "tools_ncc_offset_choice":  self.app.defaults["tools_ncc_offset_choice"],
             "tools_ncc_offset_value":   self.app.defaults["tools_ncc_offset_value"],
-            "tools_nccmilling_type":    self.app.defaults["tools_nccmilling_type"]
+            "tools_ncc_milling_type":   self.app.defaults["tools_ncc_milling_type"],
+            "tools_ncc_check_valid":    self.app.defaults["tools_ncc_check_valid"],
         }
 
         try:
-            dias = [float(self.app.defaults["tools_ncctools"])]
+            dias = [float(self.app.defaults["tools_ncc_tools"])]
         except (ValueError, TypeError):
             try:
-                dias = [float(eval(dia)) for dia in self.app.defaults["tools_ncctools"].split(",") if dia != '']
+                dias = [float(eval(dia)) for dia in self.app.defaults["tools_ncc_tools"].split(",") if dia != '']
             except AttributeError:
-                dias = self.app.defaults["tools_ncctools"]
+                dias = self.app.defaults["tools_ncc_tools"]
         except Exception:
             dias = []
 
@@ -767,11 +779,11 @@ class NonCopperClear(AppTool, Gerber):
                     pass
 
         try:
-            self.ui.ncc_rest_cb.stateChanged.disconnect()
+            self.ui.ncc_rest_cb.stateChanged.disconnect(self.ui.on_rest_machining_check)
         except (TypeError, ValueError):
             pass
         try:
-            self.ui.ncc_order_radio.activated_custom[str].disconnect()
+            self.ui.ncc_order_radio.activated_custom[str].disconnect(self.on_order_changed)
         except (TypeError, ValueError):
             pass
 
@@ -819,6 +831,10 @@ class NonCopperClear(AppTool, Gerber):
             })
 
     def on_find_optimal_tooldia(self):
+        self.find_safe_tooldia_worker(is_displayed=True)
+
+    def find_safe_tooldia_worker(self, is_displayed):
+        self.app.inform.emit(_("NCC Tool. Checking tools for validity."))
         self.units = self.app.defaults['units'].upper()
 
         obj_name = self.ui.object_combo.currentText()
@@ -836,7 +852,7 @@ class NonCopperClear(AppTool, Gerber):
 
         proc = self.app.proc_container.new(_("Working..."))
 
-        def job_thread(app_obj):
+        def job_thread(app_obj, is_display):
             try:
                 old_disp_number = 0
                 pol_nr = 0
@@ -901,18 +917,48 @@ class NonCopperClear(AppTool, Gerber):
                 min_dist = min(min_list)
 
                 min_dist_truncated = self.app.dec_format(float(min_dist), self.decimals)
+                self.safe_tooldia = min_dist_truncated
+
+                if is_display:
+                    self.optimal_found_sig.emit(min_dist_truncated)
 
-                self.optimal_found_sig.emit(min_dist_truncated)
+                    app_obj.inform.emit('[success] %s: %s %s' %
+                                        (_("Optimal tool diameter found"), str(min_dist_truncated),
+                                         self.units.lower()))
+                else:
+                    # find the selected tool ID's
+                    sorted_tools = []
+                    table_items = self.ui.tools_table.selectedItems()
+                    sel_rows = {t.row() for t in table_items}
+                    for row in sel_rows:
+                        tid = int(self.ui.tools_table.item(row, 3).text())
+                        sorted_tools.append(tid)
+                    if not sorted_tools:
+                        msg = _("There are no tools selected in the Tool Table.")
+                        self.app.inform.emit('[ERROR_NOTCL] %s' % msg)
+                        return 'fail'
+
+                    # check if the tools diameters are less then the safe tool diameter
+                    suitable_tools = []
+                    for tool in sorted_tools:
+                        tool_dia = float(self.ncc_tools[tool]['tooldia'])
+                        if tool_dia <= self.safe_tooldia:
+                            suitable_tools.append(tool_dia)
+
+                    if not suitable_tools:
+                        msg = _("Incomplete isolation. None of the selected tools could do a complete isolation.")
+                        self.app.inform.emit('[WARNING] %s' % msg)
+                    else:
+                        msg = _("At least one of the selected tools can do a complete isolation.")
+                        self.app.inform.emit('[success] %s' % msg)
 
-                app_obj.inform.emit('[success] %s: %s %s' %
-                                    (_("Optimal tool diameter found"), str(min_dist_truncated), self.units.lower()))
+                    # reset the value to prepare for another isolation
+                    self.safe_tooldia = None
             except Exception as ee:
-                proc.done()
                 log.debug(str(ee))
                 return
-            proc.done()
 
-        self.app.worker_task.emit({'fcn': job_thread, 'params': [self.app]})
+        self.app.worker_task.emit({'fcn': job_thread, 'params': [self.app, is_displayed]})
 
     def on_tool_add(self, custom_dia=None):
         self.blockSignals(True)
@@ -1113,7 +1159,7 @@ class NonCopperClear(AppTool, Gerber):
                 'offset':           'Path',
                 'offset_value':     0.0,
                 'type':             'Iso',
-                'tool_type':        deepcopy(self.app.defaults["tools_ncctool_type"]),
+                'tool_type':        deepcopy(self.app.defaults["tools_ncc_tool_type"]),
                 'data':             deepcopy(self.default_data),
                 'solid_geometry':   []
             }
@@ -1266,6 +1312,9 @@ class NonCopperClear(AppTool, Gerber):
             self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Object not found"), str(self.obj_name)))
             return
 
+        if self.ui.valid_cb.get_value() is True:
+            self.find_safe_tooldia_worker(is_displayed=False)
+
         # use the selected tools in the tool table; get diameters for isolation
         self.iso_dia_list = []
         # use the selected tools in the tool table; get diameters for non-copper clear
@@ -1288,7 +1337,7 @@ class NonCopperClear(AppTool, Gerber):
                 # find out which tools is for isolation and which are for copper clearing
                 for uid_k, uid_v in self.ncc_tools.items():
                     if round(uid_v['tooldia'], self.decimals) == round(self.tooldia, self.decimals):
-                        if uid_v['data']['tools_nccoperation'] == "iso":
+                        if uid_v['data']['tools_ncc_operation'] == "iso":
                             self.iso_dia_list.append(self.tooldia)
                         else:
                             self.ncc_dia_list.append(self.tooldia)
@@ -2113,10 +2162,10 @@ class NonCopperClear(AppTool, Gerber):
                         break
 
                 # parameters that are particular to the current tool
-                ncc_overlap = float(self.ncc_tools[tool_uid]["data"]["tools_nccoverlap"]) / 100.0
-                ncc_method = self.ncc_tools[tool_uid]["data"]["tools_nccmethod"]
-                ncc_connect = self.ncc_tools[tool_uid]["data"]["tools_nccconnect"]
-                ncc_contour = self.ncc_tools[tool_uid]["data"]["tools_ncccontour"]
+                ncc_overlap = float(self.ncc_tools[tool_uid]["data"]["tools_ncc_overlap"]) / 100.0
+                ncc_method = self.ncc_tools[tool_uid]["data"]["tools_ncc_method"]
+                ncc_connect = self.ncc_tools[tool_uid]["data"]["tools_ncc_connect"]
+                ncc_contour = self.ncc_tools[tool_uid]["data"]["tools_ncc_contour"]
                 has_offset = self.ncc_tools[tool_uid]["data"]["tools_ncc_offset_choice"]
                 ncc_offset = float(self.ncc_tools[tool_uid]["data"]["tools_ncc_offset_value"])
 
@@ -2336,6 +2385,13 @@ class NonCopperClear(AppTool, Gerber):
                                                           ncc_margin=ncc_margin, tools_storage=tools_storage,
                                                           bounding_box=bbox)
 
+            # for testing purposes ----------------------------------
+            # for po in area.geoms:
+            #     self.app.tool_shapes.add(po, color=self.app.defaults['global_sel_line'],
+            #                              face_color=self.app.defaults['global_sel_line'],
+            #                              update=True, layer=0, tolerance=None)
+            # -------------------------------------------------------
+
             # Generate area for each tool
             while sorted_clear_tools:
                 tool = sorted_clear_tools.pop(0)
@@ -2355,84 +2411,135 @@ class NonCopperClear(AppTool, Gerber):
 
                 tool_uid = 0    # find the current tool_uid
                 for k, v in self.ncc_tools.items():
-                    if float('%.*f' % (self.decimals, v['tooldia'])) == float('%.*f' % (self.decimals, tool)):
+                    if self.app.dec_format(v['tooldia'], self.decimals) == self.app.dec_format(tool, self.decimals):
                         tool_uid = int(k)
                         break
 
+                tool_data_dict = self.ncc_tools[tool_uid]["data"]
+
                 # parameters that are particular to the current tool
-                ncc_overlap = float(self.ncc_tools[tool_uid]["data"]["tools_nccoverlap"]) / 100.0
-                ncc_method = self.ncc_tools[tool_uid]["data"]["tools_nccmethod"]
+                ncc_overlap = float(tool_data_dict["tools_ncc_overlap"]) / 100.0
+                ncc_method = tool_data_dict["tools_ncc_method"]
 
                 # variables to display the percentage of work done
                 geo_len = len(area.geoms)
                 old_disp_number = 0
-                log.warning("Total number of polygons to be cleared. %s" % str(geo_len))
+                log.warning("Total number of polygons to be cleared: %s" % str(geo_len))
+
+                # def random_color():
+                #     r_color = np.random.rand(4)
+                #     r_color[3] = 0.5
+                #     return r_color
 
                 # store here the geometry generated by clear operation
                 cleared_geo = []
 
-                if area.geoms:
-                    if len(area.geoms) > 0:
-                        pol_nr = 0
-                        for p in area.geoms:
-                            if self.app.abort_flag:
-                                # graceful abort requested by the user
-                                raise grace
-
-                            if p is not None and p.is_valid:
-                                # provide the app with a way to process the GUI events when in a blocking loop
-                                QtWidgets.QApplication.processEvents()
-
-                                poly_failed = 0
+                poly_failed = 0
+                if area.geoms and len(area.geoms) > 0:
+                    pol_nr = 0
+                    for p in area.geoms:
+                        if self.app.abort_flag:
+                            # graceful abort requested by the user
+                            raise grace
 
-                                # speedup the clearing by not trying to clear polygons that is clear they can't be
-                                # cleared with the current tool. this tremendously reduce the clearing time
-                                check_dist = -tool / 2.0
-                                check_buff = p.buffer(check_dist)
-                                if not check_buff or check_buff.is_empty:
-                                    continue
+                        if p is not None and p.is_valid and not p.is_empty:
+                            # provide the app with a way to process the GUI events when in a blocking loop
+                            QtWidgets.QApplication.processEvents()
 
-                                # actual copper claring is done here
-                                if isinstance(p, Polygon):
-                                    res = self.clear_polygon_worker(pol=p, tooldia=tool,
-                                                                    ncc_method=ncc_method,
-                                                                    ncc_overlap=ncc_overlap,
-                                                                    ncc_connect=ncc_connect,
-                                                                    ncc_contour=ncc_contour,
-                                                                    prog_plot=prog_plot)
-                                    if res is not None:
-                                        cleared_geo += res
-                                    else:
-                                        poly_failed += 1
+                            # speedup the clearing by not trying to clear polygons that is clear they can't be
+                            # cleared with the current tool. this tremendously reduce the clearing time
+                            check_dist = -tool / 2
+                            check_buff = p.buffer(check_dist, self.circle_steps)
+                            if not check_buff or check_buff.is_empty:
+                                continue
+
+                            # if self.app.dec_format(float(tool), self.decimals) == 0.15:
+                            #     # for testing purposes ----------------------------------
+                            #     self.app.tool_shapes.add(p, color=self.app.defaults['global_sel_line'],
+                            #                              face_color=random_color(),
+                            #                              update=True, layer=0, tolerance=None)
+                            #     self.app.tool_shapes.add(check_buff, color=self.app.defaults['global_sel_line'],
+                            #                              face_color='#FFFFFFFF',
+                            #                              update=True, layer=0, tolerance=None)
+                            #     # -------------------------------------------------------
+
+                            # actual copper clearing is done here
+                            if isinstance(p, Polygon):
+                                res = self.clear_polygon_worker(pol=p, tooldia=tool,
+                                                                ncc_method=ncc_method,
+                                                                ncc_overlap=ncc_overlap,
+                                                                ncc_connect=ncc_connect,
+                                                                ncc_contour=ncc_contour,
+                                                                prog_plot=prog_plot)
+
+                                if res is not None:
+                                    cleared_geo += res
                                 else:
-                                    log.warning("Expected geo is a Polygon. Instead got a %s" % str(type(p)))
+                                    poly_failed += 1
+                            else:
+                                log.warning("Expected geo is a Polygon. Instead got a %s" % str(type(p)))
 
-                                if poly_failed > 0:
-                                    app_obj.poly_not_cleared = True
+                            if poly_failed > 0:
+                                app_obj.poly_not_cleared = True
 
-                                pol_nr += 1
-                                disp_number = int(np.interp(pol_nr, [0, geo_len], [0, 100]))
-                                # log.debug("Polygons cleared: %d" % pol_nr)
+                            pol_nr += 1
+                            disp_number = int(np.interp(pol_nr, [0, geo_len], [0, 100]))
+                            # log.debug("Polygons cleared: %d" % pol_nr)
 
-                                if old_disp_number < disp_number <= 100:
-                                    self.app.proc_container.update_view_text(' %d%%' % disp_number)
-                                    old_disp_number = disp_number
-                                    # log.debug("Polygons cleared: %d. Percentage done: %d%%" % (pol_nr, disp_number))
+                            if old_disp_number < disp_number <= 100:
+                                self.app.proc_container.update_view_text(' %d%%' % disp_number)
+                                old_disp_number = disp_number
+                                # log.debug("Polygons cleared: %d. Percentage done: %d%%" % (pol_nr, disp_number))
 
-                        if self.app.abort_flag:
-                            raise grace     # graceful abort requested by the user
+                    if self.app.abort_flag:
+                        raise grace     # graceful abort requested by the user
 
-                        # check if there is a geometry at all in the cleared geometry
-                        if cleared_geo:
-                            tools_storage[tool_uid]["solid_geometry"] = deepcopy(cleared_geo)
-                            tools_storage[tool_uid]["data"]["name"] = name + '_' + str(tool)
-                            geo_obj.tools[current_uid] = dict(tools_storage[current_uid])
-                        else:
-                            log.debug("There are no geometries in the cleared polygon.")
+                    # check if there is a geometry at all in the cleared geometry
+                    if cleared_geo:
+                        tools_storage[tool_uid]["solid_geometry"] = deepcopy(cleared_geo)
+                        tools_storage[tool_uid]["data"]["name"] = name + '_' + str(tool)
+                        geo_obj.tools[tool_uid] = dict(tools_storage[tool_uid])
+                    else:
+                        log.debug("There are no geometries in the cleared polygon.")
+
+                    log.warning("Total number of polygons failed to be cleared: %s" % str(poly_failed))
+                else:
+                    log.warning("The area to be cleared has no polygons.")
 
-                # Area to clear next
-                buffered_cleared = unary_union(cleared_geo).buffer(tool / 2.0)
-                area = area.difference(buffered_cleared)
+                # # Area to clear next
+                # try:
+                #     # buffered_cleared = unary_union(cleared_geo).buffer(tool / 2.0)
+                #     # area = area.difference(buffered_cleared)
+                #     area = area.difference(unary_union(cleared_geo))
+                # except Exception as e:
+                #     log.debug("Creating new area failed due of: %s" % str(e))
+
+                new_area = MultiPolygon([line.buffer(tool / 1.9999999) for line in cleared_geo])
+                new_area = new_area.buffer(0.0000001)
+
+                area = area.difference(new_area)
+
+                new_area = [pol for pol in area if pol.is_valid and not pol.is_empty]
+                area = MultiPolygon(new_area)
+
+                # speedup the clearing by not trying to clear polygons that is clear they can't be
+                # cleared with any tool. this tremendously reduce the clearing time
+                # found_poly_to_clear = False
+                # for t in sorted_clear_tools:
+                #     check_dist = -t / 2.000000001
+                #     for pl in area:
+                #         check_buff = pl.buffer(check_dist)
+                #         if not check_buff or check_buff.is_empty or not check_buff.is_valid:
+                #             continue
+                #         else:
+                #             found_poly_to_clear = True
+                #             break
+                #     if found_poly_to_clear is True:
+                #         break
+                #
+                # if found_poly_to_clear is False:
+                #     log.warning("The area to be cleared no longer has polygons. Finishing.")
+                #     break
 
                 if not area or area.is_empty:
                     break
@@ -2716,9 +2823,9 @@ class NonCopperClear(AppTool, Gerber):
             offset_a = sum(sorted_tools)
             current_uid = int(1)
             try:
-                tool = eval(self.app.defaults["tools_ncctools"])[0]
+                tool = eval(self.app.defaults["tools_ncc_tools"])[0]
             except TypeError:
-                tool = eval(self.app.defaults["tools_ncctools"])
+                tool = eval(self.app.defaults["tools_ncc_tools"])
 
             # ###################################################################################################
             # Calculate the empty area by subtracting the solid_geometry from the object bounding box geometry ##
@@ -2758,7 +2865,7 @@ class NonCopperClear(AppTool, Gerber):
                     self.solid_geometry = ncc_obj.solid_geometry
 
                 # if milling type is climb then the move is counter-clockwise around features
-                milling_type = self.app.defaults["tools_nccmilling_type"]
+                milling_type = self.app.defaults["tools_ncc_milling_type"]
 
                 for tool_iso in isotooldia:
                     new_geometry = []
@@ -3106,9 +3213,9 @@ class NonCopperClear(AppTool, Gerber):
             rest_geo = []
             current_uid = 1
             try:
-                tool = eval(self.app.defaults["tools_ncctools"])[0]
+                tool = eval(self.app.defaults["tools_ncc_tools"])[0]
             except TypeError:
-                tool = eval(self.app.defaults["tools_ncctools"])
+                tool = eval(self.app.defaults["tools_ncc_tools"])
 
             # repurposed flag for final object, geo_obj. True if it has any solid_geometry, False if not.
             app_obj.poly_not_cleared = True
@@ -3137,7 +3244,7 @@ class NonCopperClear(AppTool, Gerber):
                 self.solid_geometry = ncc_obj.solid_geometry
 
                 # if milling type is climb then the move is counter-clockwise around features
-                milling_type = self.app.defaults["tools_nccmilling_type"]
+                milling_type = self.app.defaults["tools_ncc_milling_type"]
 
                 for tool_iso in isotooldia:
                     new_geometry = []
@@ -4247,10 +4354,20 @@ class NccUI:
         self.area_shape_label.hide()
         self.area_shape_radio.hide()
 
+        # Check Tool validity
+        self.valid_cb = FCCheckBox(label=_('Check validity'))
+        self.valid_cb.setToolTip(
+            _("If checked then the tools diameters are verified\n"
+              "if they will provide a complete isolation.")
+        )
+        self.valid_cb.setObjectName("n_check")
+
+        self.grid3.addWidget(self.valid_cb, 33, 0, 1, 2)
+
         separator_line = QtWidgets.QFrame()
         separator_line.setFrameShape(QtWidgets.QFrame.HLine)
         separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
-        self.grid3.addWidget(separator_line, 32, 0, 1, 2)
+        self.grid3.addWidget(separator_line, 35, 0, 1, 2)
 
         self.generate_ncc_button = FCButton(_('Generate Geometry'))
         self.generate_ncc_button.setIcon(QtGui.QIcon(self.app.resource_location + '/geometry32.png'))

+ 44 - 44
appTools/ToolPaint.py

@@ -106,19 +106,19 @@ class ToolPaint(AppTool, Gerber):
         self.tool_type_item_options = ["C1", "C2", "C3", "C4", "B", "V"]
 
         self.form_fields = {
-            "tools_paintoverlap":   self.ui.paintoverlap_entry,
-            "tools_paintoffset":    self.ui.offset_entry,
-            "tools_paintmethod":    self.ui.paintmethod_combo,
-            "tools_pathconnect":    self.ui.pathconnect_cb,
-            "tools_paintcontour":   self.ui.paintcontour_cb,
+            "tools_paint_overlap":   self.ui.paintoverlap_entry,
+            "tools_paint_offset":    self.ui.offset_entry,
+            "tools_paint_method":    self.ui.paintmethod_combo,
+            "tools_paint_connect":    self.ui.pathconnect_cb,
+            "tools_paint_contour":   self.ui.paintcontour_cb,
         }
 
         self.name2option = {
-            'p_overlap':    "tools_paintoverlap",
-            'p_offset':     "tools_paintoffset",
-            'p_method':     "tools_paintmethod",
-            'p_connect':    "tools_pathconnect",
-            'p_contour':    "tools_paintcontour",
+            'p_overlap':    "tools_paint_overlap",
+            'p_offset':     "tools_paint_offset",
+            'p_method':     "tools_paint_method",
+            'p_connect':    "tools_paint_connect",
+            'p_contour':    "tools_paint_contour",
         }
 
         # store here the points for the "Polygon" area selection shape
@@ -439,9 +439,9 @@ class ToolPaint(AppTool, Gerber):
         self.default_data.update({
             "name":                 '_paint',
             "plot":                 self.app.defaults["geometry_plot"],
-            "cutz":                 float(self.app.defaults["tools_paintcutz"]),
-            "vtipdia":              float(self.app.defaults["tools_painttipdia"]),
-            "vtipangle":            float(self.app.defaults["tools_painttipangle"]),
+            "cutz":                 float(self.app.defaults["tools_paint_cutz"]),
+            "vtipdia":              float(self.app.defaults["tools_paint_tipdia"]),
+            "vtipangle":            float(self.app.defaults["tools_paint_tipangle"]),
             "travelz":              float(self.app.defaults["geometry_travelz"]),
             "feedrate":             float(self.app.defaults["geometry_feedrate"]),
             "feedrate_z":           float(self.app.defaults["geometry_feedrate_z"]),
@@ -468,28 +468,28 @@ class ToolPaint(AppTool, Gerber):
             "area_overz":           float(self.app.defaults["geometry_area_overz"]),
             "optimization_type":    self.app.defaults["geometry_optimization_type"],
 
-            "tooldia":              self.app.defaults["tools_painttooldia"],
-            "tools_paintoffset":   self.app.defaults["tools_paintoffset"],
-            "tools_paintmethod":    self.app.defaults["tools_paintmethod"],
-            "tools_selectmethod":   self.app.defaults["tools_selectmethod"],
-            "tools_pathconnect":    self.app.defaults["tools_pathconnect"],
-            "tools_paintcontour":   self.app.defaults["tools_paintcontour"],
-            "tools_paintoverlap":   self.app.defaults["tools_paintoverlap"],
-            "tools_paintrest":      self.app.defaults["tools_paintrest"],
+            "tooldia":              self.app.defaults["tools_paint_tooldia"],
+            "tools_paint_offset":   self.app.defaults["tools_paint_offset"],
+            "tools_paint_method":    self.app.defaults["tools_paint_method"],
+            "tools_paint_selectmethod":   self.app.defaults["tools_paint_selectmethod"],
+            "tools_paint_connect":    self.app.defaults["tools_paint_connect"],
+            "tools_paint_contour":   self.app.defaults["tools_paint_contour"],
+            "tools_paint_overlap":   self.app.defaults["tools_paint_overlap"],
+            "tools_paint_rest":      self.app.defaults["tools_paint_rest"],
         })
 
         # ## Init the GUI interface
-        self.ui.order_radio.set_value(self.app.defaults["tools_paintorder"])
-        self.ui.offset_entry.set_value(self.app.defaults["tools_paintoffset"])
-        self.ui.paintmethod_combo.set_value(self.app.defaults["tools_paintmethod"])
-        self.ui.selectmethod_combo.set_value(self.app.defaults["tools_selectmethod"])
+        self.ui.order_radio.set_value(self.app.defaults["tools_paint_order"])
+        self.ui.offset_entry.set_value(self.app.defaults["tools_paint_offset"])
+        self.ui.paintmethod_combo.set_value(self.app.defaults["tools_paint_method"])
+        self.ui.selectmethod_combo.set_value(self.app.defaults["tools_paint_selectmethod"])
         self.ui.area_shape_radio.set_value(self.app.defaults["tools_paint_area_shape"])
-        self.ui.pathconnect_cb.set_value(self.app.defaults["tools_pathconnect"])
-        self.ui.paintcontour_cb.set_value(self.app.defaults["tools_paintcontour"])
-        self.ui.paintoverlap_entry.set_value(self.app.defaults["tools_paintoverlap"])
+        self.ui.pathconnect_cb.set_value(self.app.defaults["tools_paint_connect"])
+        self.ui.paintcontour_cb.set_value(self.app.defaults["tools_paint_contour"])
+        self.ui.paintoverlap_entry.set_value(self.app.defaults["tools_paint_overlap"])
 
-        self.ui.new_tooldia_entry.set_value(self.app.defaults["tools_paintnewdia"])
-        self.ui.rest_cb.set_value(self.app.defaults["tools_paintrest"])
+        self.ui.new_tooldia_entry.set_value(self.app.defaults["tools_paint_newdia"])
+        self.ui.rest_cb.set_value(self.app.defaults["tools_paint_rest"])
 
         # # make the default object type, "Geometry"
         # self.type_obj_radio.set_value("geometry")
@@ -521,29 +521,29 @@ class ToolPaint(AppTool, Gerber):
             self.on_reference_combo_changed()
 
         try:
-            diameters = [float(self.app.defaults["tools_painttooldia"])]
+            diameters = [float(self.app.defaults["tools_paint_tooldia"])]
         except (ValueError, TypeError):
-            if isinstance(self.app.defaults["tools_painttooldia"], str):
-                diameters = [eval(x) for x in self.app.defaults["tools_painttooldia"].split(",") if x != '']
+            if isinstance(self.app.defaults["tools_paint_tooldia"], str):
+                diameters = [eval(x) for x in self.app.defaults["tools_paint_tooldia"].split(",") if x != '']
             else:
-                diameters = self.app.defaults["tools_painttooldia"]
+                diameters = self.app.defaults["tools_paint_tooldia"]
 
         if not diameters:
             log.error("At least one tool diameter needed. Verify in Edit -> Preferences -> TOOLS -> NCC Tools.")
             self.build_ui()
 
             # if the Paint Method is "Single" disable the tool table context menu
-            if self.default_data["tools_selectmethod"] == "single":
+            if self.default_data["tools_paint_selectmethod"] == "single":
                 self.ui.tools_table.setContextMenuPolicy(Qt.NoContextMenu)
             return
 
         for dia in diameters:
             self.on_tool_add(custom_dia=dia)
 
-        self.ui.on_rest_machining_check(state=self.app.defaults["tools_paintrest"])
+        self.ui.on_rest_machining_check(state=self.app.defaults["tools_paint_rest"])
 
         # if the Paint Method is "Single" disable the tool table context menu
-        if self.default_data["tools_selectmethod"] == "single":
+        if self.default_data["tools_paint_selectmethod"] == "single":
             self.ui.tools_table.setContextMenuPolicy(Qt.NoContextMenu)
 
         self.ui.tools_table.drag_drop_sig.connect(self.rebuild_ui)
@@ -1777,11 +1777,11 @@ class ToolPaint(AppTool, Gerber):
                     return "fail"
 
                 # determine the tool parameters to use
-                over = float(tools_storage[current_uid]['data']['tools_paintoverlap']) / 100.0
-                conn = tools_storage[current_uid]['data']['tools_pathconnect']
-                cont = tools_storage[current_uid]['data']['tools_paintcontour']
+                over = float(tools_storage[current_uid]['data']['tools_paint_overlap']) / 100.0
+                conn = tools_storage[current_uid]['data']['tools_paint_connect']
+                cont = tools_storage[current_uid]['data']['tools_paint_contour']
 
-                paint_offset = float(tools_storage[current_uid]['data']['tools_paintoffset'])
+                paint_offset = float(tools_storage[current_uid]['data']['tools_paint_offset'])
 
                 poly_buf = []
                 for pol in geometry:
@@ -1967,9 +1967,9 @@ class ToolPaint(AppTool, Gerber):
                 # cleared_geo = []
 
                 # determine the tool parameters to use
-                over = float(tools_storage[current_uid]['data']['tools_paintoverlap']) / 100.0
-                conn = tools_storage[current_uid]['data']['tools_pathconnect']
-                cont = tools_storage[current_uid]['data']['tools_paintcontour']
+                over = float(tools_storage[current_uid]['data']['tools_paint_overlap']) / 100.0
+                conn = tools_storage[current_uid]['data']['tools_paint_connect']
+                cont = tools_storage[current_uid]['data']['tools_paint_contour']
 
                 pol_nr = 0
 

+ 7 - 7
appTools/ToolPanelize.py

@@ -360,8 +360,8 @@ class Panelize(AppTool):
                     obj_fin.zeros = panel_source_obj.zeros
                     obj_fin.units = panel_source_obj.units
                     app_obj.inform.emit('%s' % _("Generating panel ... Adding the source code."))
-                    obj_fin.source_file = self.app.export_excellon(obj_name=self.outname, filename=None,
-                                                                 local_use=obj_fin, use_thread=False)
+                    obj_fin.source_file = self.app.export.export_excellon(obj_name=self.outname, filename=None,
+                                                                          local_use=obj_fin, use_thread=False)
                     app_obj.proc_container.update_view_text('')
 
                 def job_init_geometry(obj_fin, app_obj):
@@ -583,11 +583,11 @@ class Panelize(AppTool):
 
                     app_obj.inform.emit('%s' % _("Generating panel ... Adding the source code."))
                     if panel_type == 'gerber':
-                        obj_fin.source_file = self.app.export_gerber(obj_name=self.outname, filename=None,
-                                                                     local_use=obj_fin, use_thread=False)
+                        obj_fin.source_file = self.app.f_handlers.export_gerber(obj_name=self.outname, filename=None,
+                                                                                local_use=obj_fin, use_thread=False)
                     if panel_type == 'geometry':
-                        obj_fin.source_file = self.app.export_dxf(obj_name=self.outname, filename=None,
-                                                                     local_use=obj_fin, use_thread=False)
+                        obj_fin.source_file = self.app.f_handlers.export_dxf(obj_name=self.outname, filename=None,
+                                                                             local_use=obj_fin, use_thread=False)
 
                     # obj_fin.solid_geometry = unary_union(obj_fin.solid_geometry)
                     # app_obj.log.debug("Finished creating a unary_union for the panel.")
@@ -823,7 +823,7 @@ class PanelizeUI:
             _("Active only for Geometry panel type.\n"
               "When checked the application will find\n"
               "any two overlapping Line elements in the panel\n"
-              "and remove the overlapping parts, keeping only one of them.")
+              "and will remove the overlapping parts, keeping only one of them.")
         )
         form_layout.addRow(self.optimization_cb)
 

+ 15 - 19
appTools/ToolProperties.py

@@ -35,9 +35,10 @@ class Properties(AppTool):
     def __init__(self, app):
         AppTool.__init__(self, app)
 
-        self.setSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Ignored)
+        # self.setSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Ignored)
 
         self.decimals = self.app.decimals
+        self.layout.setContentsMargins(0, 0, 0, 0)
 
         # this way I can hide/show the frame
         self.properties_frame = QtWidgets.QFrame()
@@ -48,27 +49,22 @@ class Properties(AppTool):
         self.properties_frame.setLayout(self.properties_box)
 
         # ## Title
-        title_label = QtWidgets.QLabel("%s" % self.toolName)
-        title_label.setStyleSheet("""
-                        QLabel
-                        {
-                            font-size: 16px;
-                            font-weight: bold;
-                        }
-                        """)
-        self.properties_box.addWidget(title_label)
-
-        # self.layout.setMargin(0)  # PyQt4
-        self.properties_box.setContentsMargins(0, 0, 0, 0)  # PyQt5
-
-        self.vlay = QtWidgets.QVBoxLayout()
-
-        self.properties_box.addLayout(self.vlay)
+        # title_label = QtWidgets.QLabel("%s" % self.toolName)
+        # title_label.setStyleSheet("""
+        #                 QLabel
+        #                 {
+        #                     font-size: 16px;
+        #                     font-weight: bold;
+        #                 }
+        #                 """)
+        # self.properties_box.addWidget(title_label)
 
         self.treeWidget = FCTree(columns=2)
+        self.treeWidget.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
+        self.treeWidget.setStyleSheet("QTreeWidget {border: 0px;}")
 
-        self.vlay.addWidget(self.treeWidget)
-        self.vlay.setStretch(0, 0)
+        self.properties_box.addWidget(self.treeWidget)
+        # self.properties_box.setStretch(0, 0)
 
         self.calculations_finished.connect(self.show_area_chull)
 

+ 23 - 20
appTools/ToolPunchGerber.py

@@ -233,21 +233,24 @@ class ToolPunchGerber(AppTool):
                 for elem in val['geometry']:
                     # make it work only for Gerber Flashes who are Points in 'follow'
                     if 'solid' in elem and isinstance(elem['follow'], Point):
-                        for drill in exc_obj.drills:
-                            clear_apid_size = exc_obj.tools[drill['tool']]['tooldia']
+                        for tool in exc_obj.tools:
+                            clear_apid_size = exc_obj.tools[tool]['tooldia']
 
-                            # since there may be drills that do not drill into a pad we test only for drills in a pad
-                            if drill['point'].within(elem['solid']):
-                                geo_elem = {}
-                                geo_elem['clear'] = drill['point']
+                            if 'drills' in exc_obj.tools[tool]['drills']:
+                                for drill_pt in exc_obj.tools[tool]['drills']:
+                                    # since there may be drills that do not drill into a pad we test only for
+                                    # drills in a pad
+                                    if drill_pt.within(elem['solid']):
+                                        geo_elem = {}
+                                        geo_elem['clear'] = drill_pt
 
-                                if clear_apid_size not in holes_apertures:
-                                    holes_apertures[clear_apid_size] = {}
-                                    holes_apertures[clear_apid_size]['type'] = 'C'
-                                    holes_apertures[clear_apid_size]['size'] = clear_apid_size
-                                    holes_apertures[clear_apid_size]['geometry'] = []
+                                        if clear_apid_size not in holes_apertures:
+                                            holes_apertures[clear_apid_size] = {}
+                                            holes_apertures[clear_apid_size]['type'] = 'C'
+                                            holes_apertures[clear_apid_size]['size'] = clear_apid_size
+                                            holes_apertures[clear_apid_size]['geometry'] = []
 
-                                holes_apertures[clear_apid_size]['geometry'].append(deepcopy(geo_elem))
+                                        holes_apertures[clear_apid_size]['geometry'].append(deepcopy(geo_elem))
 
             # add the clear geometry to new apertures; it's easier than to test if there are apertures with the same
             # size and add there the clear geometry
@@ -264,8 +267,8 @@ class ToolPunchGerber(AppTool):
                 new_obj.apertures = deepcopy(new_apertures)
 
                 new_obj.solid_geometry = deepcopy(punched_solid_geometry)
-                new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
-                                                             local_use=new_obj, use_thread=False)
+                new_obj.source_file = self.app.f_handlers.export_gerber(obj_name=outname, filename=None,
+                                                                        local_use=new_obj, use_thread=False)
 
             self.app.app_obj.new_object('gerber', outname, init_func)
         elif punch_method == 'fixed':
@@ -387,8 +390,8 @@ class ToolPunchGerber(AppTool):
                 new_obj.apertures = deepcopy(new_apertures)
 
                 new_obj.solid_geometry = deepcopy(punched_solid_geometry)
-                new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
-                                                             local_use=new_obj, use_thread=False)
+                new_obj.source_file = self.app.f_handlers.export_gerber(obj_name=outname, filename=None,
+                                                                        local_use=new_obj, use_thread=False)
 
             self.app.app_obj.new_object('gerber', outname, init_func)
         elif punch_method == 'ring':
@@ -529,8 +532,8 @@ class ToolPunchGerber(AppTool):
                 new_obj.apertures = deepcopy(new_apertures)
 
                 new_obj.solid_geometry = deepcopy(punched_solid_geometry)
-                new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
-                                                             local_use=new_obj, use_thread=False)
+                new_obj.source_file = self.app.f_handlers.export_gerber(obj_name=outname, filename=None,
+                                                                        local_use=new_obj, use_thread=False)
 
             self.app.app_obj.new_object('gerber', outname, init_func)
 
@@ -668,8 +671,8 @@ class ToolPunchGerber(AppTool):
                 new_obj.apertures = deepcopy(new_apertures)
 
                 new_obj.solid_geometry = deepcopy(punched_solid_geometry)
-                new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
-                                                             local_use=new_obj, use_thread=False)
+                new_obj.source_file = self.app.f_handlers.export_gerber(obj_name=outname, filename=None,
+                                                                        local_use=new_obj, use_thread=False)
 
             self.app.app_obj.new_object('gerber', outname, init_func)
 

+ 3 - 2
appTools/ToolQRCode.py

@@ -314,8 +314,9 @@ class QRCode(AppTool):
             self.grb_object.apertures[new_apid]['geometry'].append(deepcopy(geo_elem))
 
         # update the source file with the new geometry:
-        self.grb_object.source_file = self.app.export_gerber(obj_name=self.grb_object.options['name'], filename=None,
-                                                             local_use=self.grb_object, use_thread=False)
+        self.grb_object.source_file = self.app.f_handlers.export_gerber(obj_name=self.grb_object.options['name'],
+                                                                        filename=None,
+                                                                        local_use=self.grb_object, use_thread=False)
 
         self.replot(obj=self.grb_object)
         self.app.inform.emit('[success] %s' % _("QRCode Tool done."))

+ 4 - 2
appTools/ToolRulesCheck.py

@@ -357,7 +357,7 @@ class RulesCheck(AppTool):
 
             name = elem['name']
             for tool in elem['tools']:
-                tool_dia = float('%.*f' % (4, float(elem['tools'][tool]['C'])))
+                tool_dia = float('%.*f' % (4, float(elem['tools'][tool]['tooldia'])))
                 if tool_dia < float(size):
                     dia_list.append(tool_dia)
             obj_violations['name'] = name
@@ -623,7 +623,8 @@ class RulesCheck(AppTool):
         log.debug("RuleCheck() executing")
 
         def worker_job(app_obj):
-            self.app.proc_container.new(_("Working..."))
+            # self.app.proc_container.new(_("Working..."))
+            self.app.proc_container.view.set_busy('%s' % _("Working..."))
 
             # RULE: Check Trace Size
             if self.ui.trace_size_cb.get_value():
@@ -1055,6 +1056,7 @@ class RulesCheck(AppTool):
                 output.append(p.get())
 
             self.tool_finished.emit(output)
+            self.app.proc_container.view.set_idle()
 
             log.debug("RuleCheck() finished")
 

+ 1 - 1
appTools/ToolShell.py

@@ -290,7 +290,7 @@ class FCShell(TermWidget):
 
         self._edit.set_model_data(self.app.myKeywords)
         self.setWindowIcon(self.app.ui.app_icon)
-        self.setWindowTitle("FlatCAM Shell")
+        self.setWindowTitle(_("FlatCAM Shell"))
         self.resize(*self.app.defaults["global_shell_shape"])
         self._append_to_browser('in', "FlatCAM %s - " % version)
         self.append_output('%s\n\n' % _("Type >help< to get started"))

+ 23 - 21
appTools/ToolSub.py

@@ -320,8 +320,8 @@ class ToolSub(AppTool):
 
             grb_obj.solid_geometry = deepcopy(poly_buff)
             grb_obj.follow_geometry = deepcopy(follow_buff)
-            grb_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None,
-                                                         local_use=grb_obj, use_thread=False)
+            grb_obj.source_file = self.app.f_handlers.export_gerber(obj_name=outname, filename=None,
+                                                                    local_use=grb_obj, use_thread=False)
 
         with self.app.proc_container.new(_("Generating new object ...")):
             ret = self.app.app_obj.new_object('gerber', outname, obj_init, autoselected=False)
@@ -635,11 +635,13 @@ class SubUI:
         self.tools_frame.setLayout(self.tools_box)
 
         # Form Layout
-        form_layout = QtWidgets.QFormLayout()
-        self.tools_box.addLayout(form_layout)
+        grid0 = QtWidgets.QGridLayout()
+        grid0.setColumnStretch(0, 0)
+        grid0.setColumnStretch(1, 1)
+        self.tools_box.addLayout(grid0)
 
         self.gerber_title = QtWidgets.QLabel("<b>%s</b>" % _("GERBER"))
-        form_layout.addRow(self.gerber_title)
+        grid0.addWidget(self.gerber_title, 0, 0, 1, 2)
 
         # Target Gerber Object
         self.target_gerber_combo = FCComboBox()
@@ -655,7 +657,8 @@ class SubUI:
               "the subtractor Gerber object.")
         )
 
-        form_layout.addRow(self.target_gerber_label, self.target_gerber_combo)
+        grid0.addWidget(self.target_gerber_label, 2, 0)
+        grid0.addWidget(self.target_gerber_combo, 2, 1)
 
         # Substractor Gerber Object
         self.sub_gerber_combo = FCComboBox()
@@ -669,9 +672,9 @@ class SubUI:
             _("Gerber object that will be subtracted\n"
               "from the target Gerber object.")
         )
-        e_lab_1 = QtWidgets.QLabel('')
 
-        form_layout.addRow(self.sub_gerber_label, self.sub_gerber_combo)
+        grid0.addWidget(self.sub_gerber_label, 4, 0)
+        grid0.addWidget(self.sub_gerber_combo, 4, 1)
 
         self.intersect_btn = FCButton(_('Subtract Gerber'))
         self.intersect_btn.setToolTip(
@@ -686,15 +689,11 @@ class SubUI:
                                     font-weight: bold;
                                 }
                                 """)
-        self.tools_box.addWidget(self.intersect_btn)
-        self.tools_box.addWidget(e_lab_1)
-
-        # Form Layout
-        form_geo_layout = QtWidgets.QFormLayout()
-        self.tools_box.addLayout(form_geo_layout)
+        grid0.addWidget(self.intersect_btn, 6, 0, 1, 2)
+        grid0.addWidget(QtWidgets.QLabel(''), 8, 0, 1, 2)
 
         self.geo_title = QtWidgets.QLabel("<b>%s</b>" % _("GEOMETRY"))
-        form_geo_layout.addRow(self.geo_title)
+        grid0.addWidget(self.geo_title, 10, 0, 1, 2)
 
         # Target Geometry Object
         self.target_geo_combo = FCComboBox()
@@ -710,7 +709,8 @@ class SubUI:
               "the subtractor Geometry object.")
         )
 
-        form_geo_layout.addRow(self.target_geo_label, self.target_geo_combo)
+        grid0.addWidget(self.target_geo_label, 12, 0)
+        grid0.addWidget(self.target_geo_combo, 12, 1)
 
         # Substractor Geometry Object
         self.sub_geo_combo = FCComboBox()
@@ -724,13 +724,14 @@ class SubUI:
             _("Geometry object that will be subtracted\n"
               "from the target Geometry object.")
         )
-        e_lab_1 = QtWidgets.QLabel('')
 
-        form_geo_layout.addRow(self.sub_geo_label, self.sub_geo_combo)
+        grid0.addWidget(self.sub_geo_label, 14, 0)
+        grid0.addWidget(self.sub_geo_combo, 14, 1)
 
         self.close_paths_cb = FCCheckBox(_("Close paths"))
         self.close_paths_cb.setToolTip(_("Checking this will close the paths cut by the Geometry subtractor object."))
-        self.tools_box.addWidget(self.close_paths_cb)
+
+        grid0.addWidget(self.close_paths_cb, 16, 0, 1, 2)
 
         self.intersect_geo_btn = FCButton(_('Subtract Geometry'))
         self.intersect_geo_btn.setToolTip(
@@ -743,8 +744,9 @@ class SubUI:
                                     font-weight: bold;
                                 }
                                 """)
-        self.tools_box.addWidget(self.intersect_geo_btn)
-        self.tools_box.addWidget(e_lab_1)
+
+        grid0.addWidget(self.intersect_geo_btn, 18, 0, 1, 2)
+        grid0.addWidget(QtWidgets.QLabel(''), 20, 0, 1, 2)
 
         self.tools_box.addStretch()
 

+ 6 - 6
appTools/ToolTransform.py

@@ -457,14 +457,14 @@ class ToolTransform(AppTool):
                             self.app.inform.emit(_("CNCJob objects can't be buffered."))
                         elif sel_obj.kind.lower() == 'gerber':
                             sel_obj.buffer(value, join, factor)
-                            sel_obj.source_file = self.app.export_gerber(obj_name=sel_obj.options['name'],
-                                                                         filename=None, local_use=sel_obj,
-                                                                         use_thread=False)
+                            sel_obj.source_file = self.app.f_handlers.export_gerber(obj_name=sel_obj.options['name'],
+                                                                                    filename=None, local_use=sel_obj,
+                                                                                    use_thread=False)
                         elif sel_obj.kind.lower() == 'excellon':
                             sel_obj.buffer(value, join, factor)
-                            sel_obj.source_file = self.app.export_excellon(obj_name=sel_obj.options['name'],
-                                                                           filename=None, local_use=sel_obj,
-                                                                           use_thread=False)
+                            sel_obj.source_file = self.app.f_handlers.export_excellon(obj_name=sel_obj.options['name'],
+                                                                                      filename=None, local_use=sel_obj,
+                                                                                      use_thread=False)
                         elif sel_obj.kind.lower() == 'geometry':
                             sel_obj.buffer(value, join, factor)
 

+ 0 - 1
appTranslation.py

@@ -29,7 +29,6 @@ languages_dict = {
     'en': 'English',
     'es': 'Spanish',
     'fr': 'French',
-    'hu': 'Hungarian',
     'it': 'Italian',
     'pt_BR': 'Brazilian Portuguese',
     'ro': 'Romanian',

Plik diff jest za duży
+ 1230 - 1287
app_Main.py


+ 1 - 1
camlib.py

@@ -3444,7 +3444,7 @@ class CNCjob(Geometry):
             # Move to End position
             t_gcode += self.doformat(p.end_code, x=0, y=0)
 
-        self.app.inform.emit(_("Finished G-Code generation for tool: %s" % str(tool)))
+        self.app.inform.emit('%s %s' % (_("Finished G-Code generation for tool:"), str(tool)))
         return t_gcode, (locx, locy), start_gcode
 
     def generate_from_excellon_by_tool(self, exobj, tools="all", order='fwd', use_ui=False):

+ 39 - 35
defaults.py

@@ -31,10 +31,9 @@ class FlatCAMDefaults:
         "global_stats": dict(),
         "global_tabs_detachable": True,
 
-        "global_coords_show": True,
-        "global_delta_coords_show": False,
-        "global_grid_show": True,
-        "global_status_show": True,
+        "global_coordsbar_show": True,
+        "global_delta_coordsbar_show": False,
+        "global_statusbar_show": True,
 
         "global_jump_ref": 'abs',
         "global_locate_pt": 'bl',
@@ -51,7 +50,6 @@ class FlatCAMDefaults:
             'in': [0.01, 0.02, 0.025, 0.05, 0.1],
             'mm': [0.1, 0.2, 0.5, 1, 2.54]
         },
-        "global_hud": True,
 
         # Persistence
         "global_last_folder": None,
@@ -126,6 +124,7 @@ class FlatCAMDefaults:
         "global_project_autohide": True,
 
         # General App Settings
+        "global_gridbar_show": True,
         "global_gridx": 1.0,
         "global_gridy": 1.0,
         "global_snap_max": 0.05,
@@ -133,6 +132,10 @@ class FlatCAMDefaults:
         "global_workspace": False,
         "global_workspaceT": "A4",
         "global_workspace_orientation": 'p',
+        "global_axis": True,
+        "global_hud": True,
+        "global_grid_lines": True,
+        "global_grid_snap": True,
 
         "global_cursor_type": "small",
         "global_cursor_size": 20,
@@ -461,26 +464,27 @@ class FlatCAMDefaults:
         "tools_drill_area_overz": 1.0,
 
         # NCC Tool
-        "tools_ncctools": "1.0, 0.5",
-        "tools_nccorder": 'rev',
-        "tools_nccoperation": 'clear',
-        "tools_nccoverlap": 40,
-        "tools_nccmargin": 1.0,
-        "tools_nccmethod": _("Seed"),
-        "tools_nccconnect": True,
-        "tools_ncccontour": True,
-        "tools_nccrest": False,
+        "tools_ncc_tools": "1.0, 0.5",
+        "tools_ncc_order": 'rev',
+        "tools_ncc_operation": 'clear',
+        "tools_ncc_overlap": 40,
+        "tools_ncc_margin": 1.0,
+        "tools_ncc_method": _("Seed"),
+        "tools_ncc_connect": True,
+        "tools_ncc_contour": True,
+        "tools_ncc_rest": False,
         "tools_ncc_offset_choice": False,
         "tools_ncc_offset_value": 0.0000,
-        "tools_nccref": _('Itself'),
+        "tools_ncc_ref": _('Itself'),
         "tools_ncc_area_shape": "square",
-        "tools_nccmilling_type": 'cl',
-        "tools_ncctool_type": 'C1',
-        "tools_ncccutz": -0.05,
-        "tools_ncctipdia": 0.1,
-        "tools_ncctipangle": 30,
-        "tools_nccnewdia": 0.1,
+        "tools_ncc_milling_type": 'cl',
+        "tools_ncc_tool_type": 'C1',
+        "tools_ncc_cutz": -0.05,
+        "tools_ncc_tipdia": 0.1,
+        "tools_ncc_tipangle": 30,
+        "tools_ncc_newdia": 0.1,
         "tools_ncc_plotting": 'normal',
+        "tools_ncc_check_valid": True,
 
         # Cutout Tool
         "tools_cutout_tooldia": 2.4,
@@ -499,22 +503,22 @@ class FlatCAMDefaults:
         "tools_cutout_mb_spacing": 0.3,
 
         # Paint Tool
-        "tools_painttooldia": 0.3,
-        "tools_paintorder": 'rev',
-        "tools_paintoverlap": 20,
-        "tools_paintoffset": 0.0,
-        "tools_paintmethod": _("Seed"),
-        "tools_selectmethod": _("All"),
+        "tools_paint_tooldia": 0.3,
+        "tools_paint_order": 'rev',
+        "tools_paint_overlap": 20,
+        "tools_paint_offset": 0.0,
+        "tools_paint_method": _("Seed"),
+        "tools_paint_selectmethod": _("All"),
         "tools_paint_area_shape": "square",
-        "tools_pathconnect": True,
-        "tools_paintcontour": True,
+        "tools_paint_connect": True,
+        "tools_paint_contour": True,
         "tools_paint_plotting": 'normal',
-        "tools_paintrest": False,
-        "tools_painttool_type": 'C1',
-        "tools_paintcutz": -0.05,
-        "tools_painttipdia": 0.1,
-        "tools_painttipangle": 30,
-        "tools_paintnewdia": 0.1,
+        "tools_paint_rest": False,
+        "tools_paint_tool_type": 'C1',
+        "tools_paint_cutz": -0.05,
+        "tools_paint_tipdia": 0.1,
+        "tools_paint_tipangle": 30,
+        "tools_paint_newdia": 0.1,
 
         # 2-Sided Tool
         "tools_2sided_mirror_axis": "X",

BIN
locale/de/LC_MESSAGES/strings.mo


Plik diff jest za duży
+ 316 - 669
locale/de/LC_MESSAGES/strings.po


BIN
locale/en/LC_MESSAGES/strings.mo


Plik diff jest za duży
+ 311 - 650
locale/en/LC_MESSAGES/strings.po


BIN
locale/es/LC_MESSAGES/strings.mo


Plik diff jest za duży
+ 322 - 691
locale/es/LC_MESSAGES/strings.po


BIN
locale/fr/LC_MESSAGES/strings.mo


Plik diff jest za duży
+ 321 - 673
locale/fr/LC_MESSAGES/strings.po


BIN
locale/hu/LC_MESSAGES/strings.mo


+ 0 - 22024
locale/hu/LC_MESSAGES/strings.po

@@ -1,22024 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR ORGANIZATION
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: 2020-10-21 16:06+0300\n"
-"PO-Revision-Date: 2020-10-21 16:06+0300\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"Language: en\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: pygettext.py 1.5\n"
-"X-Generator: Poedit 2.3.1\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Poedit-Basepath: ../../..\n"
-"X-Poedit-SearchPath-0: .\n"
-"X-Poedit-SearchPathExcluded-0: build\n"
-"X-Poedit-SearchPathExcluded-1: doc\n"
-"X-Poedit-SearchPathExcluded-2: tests\n"
-
-#: Bookmark.py:57 Bookmark.py:84
-msgid "Title"
-msgstr ""
-
-#: Bookmark.py:58 Bookmark.py:88
-msgid "Web Link"
-msgstr ""
-
-#: Bookmark.py:62
-msgid ""
-"Index.\n"
-"The rows in gray color will populate the Bookmarks menu.\n"
-"The number of gray colored rows is set in Preferences."
-msgstr ""
-
-#: Bookmark.py:66
-msgid ""
-"Description of the link that is set as an menu action.\n"
-"Try to keep it short because it is installed as a menu item."
-msgstr ""
-
-#: Bookmark.py:69
-msgid "Web Link. E.g: https://your_website.org "
-msgstr ""
-
-#: Bookmark.py:78
-msgid "New Bookmark"
-msgstr ""
-
-#: Bookmark.py:97
-msgid "Add Entry"
-msgstr ""
-
-#: Bookmark.py:98
-msgid "Remove Entry"
-msgstr ""
-
-#: Bookmark.py:99
-msgid "Export List"
-msgstr ""
-
-#: Bookmark.py:100
-msgid "Import List"
-msgstr ""
-
-#: Bookmark.py:190
-msgid "Title entry is empty."
-msgstr ""
-
-#: Bookmark.py:199
-msgid "Web link entry is empty."
-msgstr ""
-
-#: Bookmark.py:207
-msgid "Either the Title or the Weblink already in the table."
-msgstr ""
-
-#: Bookmark.py:227
-msgid "Bookmark added."
-msgstr ""
-
-#: Bookmark.py:244
-msgid "This bookmark can not be removed"
-msgstr ""
-
-#: Bookmark.py:275
-msgid "Bookmark removed."
-msgstr ""
-
-#: Bookmark.py:290
-msgid "Export Bookmarks"
-msgstr ""
-
-#: Bookmark.py:293 appGUI/MainGUI.py:524
-msgid "Bookmarks"
-msgstr ""
-
-#: Bookmark.py:300 Bookmark.py:342 appDatabase.py:665 appDatabase.py:711
-#: appDatabase.py:2998 appDatabase.py:3044 appEditors/AppExcEditor.py:1023
-#: appEditors/AppExcEditor.py:1091 appEditors/AppTextEditor.py:263
-#: appGUI/MainGUI.py:2878 appGUI/MainGUI.py:3100 appGUI/MainGUI.py:3315
-#: appObjects/FlatCAMCNCJob.py:1736 appObjects/ObjectCollection.py:126
-#: appTools/ToolFilm.py:238 appTools/ToolFilm.py:384 appTools/ToolImage.py:112
-#: appTools/ToolMove.py:269 appTools/ToolPcbWizard.py:189
-#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:526
-#: appTools/ToolQRCode.py:573 app_Main.py:1747 app_Main.py:2575
-#: app_Main.py:2611 app_Main.py:2658 app_Main.py:4404 app_Main.py:7122
-#: app_Main.py:7161 app_Main.py:7205 app_Main.py:7234 app_Main.py:7275
-#: app_Main.py:7300 app_Main.py:7356 app_Main.py:7392 app_Main.py:7437
-#: app_Main.py:7478 app_Main.py:7520 app_Main.py:7562 app_Main.py:7603
-#: app_Main.py:7647 app_Main.py:7707 app_Main.py:7739 app_Main.py:7771
-#: app_Main.py:7994 app_Main.py:8032 app_Main.py:8075 app_Main.py:8152
-#: app_Main.py:8207
-msgid "Cancelled."
-msgstr ""
-
-#: Bookmark.py:308 appDatabase.py:673 appDatabase.py:3006
-#: appEditors/AppTextEditor.py:318 appObjects/FlatCAMCNCJob.py:1658
-#: appObjects/FlatCAMCNCJob.py:1848 appObjects/FlatCAMCNCJob.py:2297
-#: appTools/ToolFilm.py:582 appTools/ToolFilm.py:830
-#: appTools/ToolSolderPaste.py:1097 app_Main.py:2666 app_Main.py:8451
-#: app_Main.py:8499 app_Main.py:8628 app_Main.py:8765 app_Main.py:8833
-msgid ""
-"Permission denied, saving not possible.\n"
-"Most likely another app is holding the file open and not accessible."
-msgstr ""
-
-#: Bookmark.py:319 Bookmark.py:349
-msgid "Could not load bookmarks file."
-msgstr ""
-
-#: Bookmark.py:329
-msgid "Failed to write bookmarks to file."
-msgstr ""
-
-#: Bookmark.py:331
-msgid "Exported bookmarks to"
-msgstr ""
-
-#: Bookmark.py:337
-msgid "Import Bookmarks"
-msgstr ""
-
-#: Bookmark.py:356
-msgid "Imported Bookmarks from"
-msgstr ""
-
-#: appCommon/Common.py:46
-msgid "The user requested a graceful exit of the current task."
-msgstr ""
-
-#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:328
-#: appTools/ToolIsolation.py:1436 appTools/ToolNCC.py:1317
-msgid "Click the start point of the area."
-msgstr ""
-
-#: appCommon/Common.py:351 appTools/ToolNCC.py:1376 appTools/ToolPaint.py:1210
-msgid "Click the end point of the area."
-msgstr ""
-
-#: appCommon/Common.py:357 appCommon/Common.py:459
-#: appTools/ToolCopperThieving.py:385 appTools/ToolIsolation.py:2348
-#: appTools/ToolIsolation.py:2400 appTools/ToolNCC.py:1382
-#: appTools/ToolNCC.py:1434 appTools/ToolPaint.py:1216
-#: appTools/ToolPaint.py:1267
-msgid "Zone added. Click to start adding next zone or right click to finish."
-msgstr ""
-
-#: appCommon/Common.py:404 appEditors/AppGeoEditor.py:2352
-#: appTools/ToolIsolation.py:2371 appTools/ToolNCC.py:1405
-#: appTools/ToolPaint.py:1238
-msgid "Click on next Point or click right mouse button to complete ..."
-msgstr ""
-
-#: appCommon/Common.py:490
-msgid "Exclusion areas added. Checking overlap with the object geometry ..."
-msgstr ""
-
-#: appCommon/Common.py:496
-msgid "Failed. Exclusion areas intersects the object geometry ..."
-msgstr ""
-
-#: appCommon/Common.py:499
-msgid "Exclusion areas added."
-msgstr ""
-
-#: appCommon/Common.py:508 appCommon/Common.py:641 appCommon/Common.py:703
-msgid "Generate the CNC Job object."
-msgstr ""
-
-#: appCommon/Common.py:508
-msgid "With Exclusion areas."
-msgstr ""
-
-#: appCommon/Common.py:543
-msgid "Cancelled. Area exclusion drawing was interrupted."
-msgstr ""
-
-#: appCommon/Common.py:651 appCommon/Common.py:706
-msgid "All exclusion zones deleted."
-msgstr ""
-
-#: appCommon/Common.py:692
-msgid "Selected exclusion zones deleted."
-msgstr ""
-
-#: appDatabase.py:88
-msgid "Add Geometry Tool in DB"
-msgstr ""
-
-#: appDatabase.py:90 appDatabase.py:2224
-msgid ""
-"Add a new tool in the Tools Database.\n"
-"It will be used in the Geometry UI.\n"
-"You can edit it after it is added."
-msgstr ""
-
-#: appDatabase.py:104 appDatabase.py:2238
-msgid "Delete Tool from DB"
-msgstr ""
-
-#: appDatabase.py:106 appDatabase.py:2241
-msgid "Remove a selection of tools in the Tools Database."
-msgstr ""
-
-#: appDatabase.py:110 appDatabase.py:2245
-msgid "Export DB"
-msgstr ""
-
-#: appDatabase.py:112 appDatabase.py:2248
-msgid "Save the Tools Database to a custom text file."
-msgstr ""
-
-#: appDatabase.py:116 appDatabase.py:2252
-msgid "Import DB"
-msgstr ""
-
-#: appDatabase.py:118 appDatabase.py:2255
-msgid "Load the Tools Database information's from a custom text file."
-msgstr ""
-
-#: appDatabase.py:122 appDatabase.py:2266
-msgid "Transfer the Tool"
-msgstr ""
-
-#: appDatabase.py:124
-msgid ""
-"Add a new tool in the Tools Table of the\n"
-"active Geometry object after selecting a tool\n"
-"in the Tools Database."
-msgstr ""
-
-#: appDatabase.py:130 appDatabase.py:2281 appGUI/MainGUI.py:1438
-#: appGUI/preferences/PreferencesUIManager.py:931 app_Main.py:2291
-#: app_Main.py:3386 app_Main.py:4341 app_Main.py:4587 app_Main.py:6895
-msgid "Cancel"
-msgstr ""
-
-#: appDatabase.py:160 appDatabase.py:835
-msgid "Tool Name"
-msgstr ""
-
-#: appDatabase.py:161 appDatabase.py:837 appEditors/AppExcEditor.py:3765
-#: appGUI/ObjectUI.py:1038 appGUI/ObjectUI.py:1606
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:132
-#: appTools/ToolCutOut.py:2060 appTools/ToolIsolation.py:3091
-#: appTools/ToolNCC.py:3859 appTools/ToolNCC.py:3870 appTools/ToolPaint.py:2882
-msgid "Tool Dia"
-msgstr ""
-
-#: appDatabase.py:162 appDatabase.py:839 appDatabase.py:1273
-#: appGUI/ObjectUI.py:1013
-msgid "Tool Offset"
-msgstr ""
-
-#: appDatabase.py:163 appDatabase.py:841 appDatabase.py:1290
-msgid "Custom Offset"
-msgstr ""
-
-#: appDatabase.py:164 appDatabase.py:843 appDatabase.py:1257
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:70
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:53
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:62
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:72
-msgid "Tool Type"
-msgstr ""
-
-#: appDatabase.py:165 appDatabase.py:845
-msgid "Tool Shape"
-msgstr ""
-
-#: appDatabase.py:166 appDatabase.py:848 appDatabase.py:1309
-#: appDatabase.py:1834 appEditors/appGCodeEditor.py:703 appGUI/ObjectUI.py:1169
-#: appGUI/ObjectUI.py:1962
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:49
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:78
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:58
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:57
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:115
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:105
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:113
-#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2104
-#: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793
-msgid "Cut Z"
-msgstr ""
-
-#: appDatabase.py:167 appDatabase.py:850 appDatabase.py:1323
-#: appDatabase.py:1871
-msgid "MultiDepth"
-msgstr ""
-
-#: appDatabase.py:168 appDatabase.py:852 appDatabase.py:1336
-#: appDatabase.py:1887
-msgid "DPP"
-msgstr ""
-
-#: appDatabase.py:169 appDatabase.py:854 appDatabase.py:1224
-msgid "V-Dia"
-msgstr ""
-
-#: appDatabase.py:170 appDatabase.py:856 appDatabase.py:1238
-msgid "V-Angle"
-msgstr ""
-
-#: appDatabase.py:171 appDatabase.py:858 appDatabase.py:1350
-#: appDatabase.py:1903 appGUI/ObjectUI.py:1216
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:198
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:102
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:61
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:98
-#: appObjects/FlatCAMGeometry.py:1811 appTools/ToolCalibration.py:769
-#: appTools/ToolDrilling.py:1294 appTools/ToolDrilling.py:2189
-#: appTools/ToolMilling.py:1291 appTools/ToolMilling.py:1839
-msgid "Travel Z"
-msgstr ""
-
-#: appDatabase.py:172 appDatabase.py:860
-msgid "FR"
-msgstr ""
-
-#: appDatabase.py:173 appDatabase.py:862
-msgid "FR Z"
-msgstr ""
-
-#: appDatabase.py:174 appDatabase.py:864 appDatabase.py:1431
-msgid "FR Rapids"
-msgstr ""
-
-#: appDatabase.py:175 appDatabase.py:866 appDatabase.py:1452
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:186
-msgid "Spindle Speed"
-msgstr ""
-
-#: appDatabase.py:176 appDatabase.py:868 appDatabase.py:1467
-#: appDatabase.py:1984 appGUI/ObjectUI.py:1323 appTools/ToolDrilling.py:2264
-#: appTools/ToolMilling.py:1957
-msgid "Dwell"
-msgstr ""
-
-#: appDatabase.py:177 appDatabase.py:870 appDatabase.py:1480
-#: appDatabase.py:1997
-msgid "Dwelltime"
-msgstr ""
-
-#: appDatabase.py:178 appDatabase.py:872 appGUI/ObjectUI.py:1482
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:255
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:221
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237
-#: appTools/ToolDrilling.py:2498 appTools/ToolSolderPaste.py:1407
-msgid "Preprocessor"
-msgstr ""
-
-#: appDatabase.py:179 appDatabase.py:874 appDatabase.py:1365
-msgid "ExtraCut"
-msgstr ""
-
-#: appDatabase.py:180 appDatabase.py:876 appDatabase.py:1380
-msgid "E-Cut Length"
-msgstr ""
-
-#: appDatabase.py:181 appDatabase.py:878
-msgid "Toolchange"
-msgstr ""
-
-#: appDatabase.py:182 appDatabase.py:880
-msgid "Toolchange XY"
-msgstr ""
-
-#: appDatabase.py:183 appDatabase.py:882
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:132
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:98
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:124
-#: appTools/ToolCalibration.py:806
-msgid "Toolchange Z"
-msgstr ""
-
-#: appDatabase.py:184 appDatabase.py:884
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:56
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:306
-#: appTools/ToolDrilling.py:2415 appTools/ToolMilling.py:2087
-msgid "Start Z"
-msgstr ""
-
-#: appDatabase.py:185 appDatabase.py:887
-msgid "End Z"
-msgstr ""
-
-#: appDatabase.py:189
-msgid "Tool Index."
-msgstr ""
-
-#: appDatabase.py:191 appDatabase.py:1126
-msgid ""
-"Tool name.\n"
-"This is not used in the app, it's function\n"
-"is to serve as a note for the user."
-msgstr ""
-
-#: appDatabase.py:195 appDatabase.py:1139
-msgid "Tool Diameter."
-msgstr ""
-
-#: appDatabase.py:197 appDatabase.py:1275
-msgid ""
-"Tool Offset.\n"
-"Can be of a few types:\n"
-"Path = zero offset\n"
-"In = offset inside by half of tool diameter\n"
-"Out = offset outside by half of tool diameter\n"
-"Custom = custom offset using the Custom Offset value"
-msgstr ""
-
-#: appDatabase.py:204 appDatabase.py:1292
-msgid ""
-"Custom Offset.\n"
-"A value to be used as offset from the current path."
-msgstr ""
-
-#: appDatabase.py:207 appDatabase.py:1259
-msgid ""
-"Tool Type.\n"
-"Can be:\n"
-"Iso = isolation cut\n"
-"Rough = rough cut, low feedrate, multiple passes\n"
-"Finish = finishing cut, high feedrate"
-msgstr ""
-
-#: appDatabase.py:213 appDatabase.py:1210
-msgid ""
-"Tool Shape. \n"
-"Can be:\n"
-"C1 ... C4 = circular tool with x flutes\n"
-"B = ball tip milling tool\n"
-"V = v-shape milling tool"
-msgstr ""
-
-#: appDatabase.py:219 appDatabase.py:1311
-msgid ""
-"Cutting Depth.\n"
-"The depth at which to cut into material."
-msgstr ""
-
-#: appDatabase.py:222 appDatabase.py:1325
-msgid ""
-"Multi Depth.\n"
-"Selecting this will allow cutting in multiple passes,\n"
-"each pass adding a DPP parameter depth."
-msgstr ""
-
-#: appDatabase.py:226 appDatabase.py:1338 appDatabase.py:1889
-msgid ""
-"DPP. Depth per Pass.\n"
-"The value used to cut into material on each pass."
-msgstr ""
-
-#: appDatabase.py:229 appDatabase.py:1226
-msgid ""
-"V-Dia.\n"
-"Diameter of the tip for V-Shape Tools."
-msgstr ""
-
-#: appDatabase.py:232 appDatabase.py:1240
-msgid ""
-"V-Agle.\n"
-"Angle at the tip for the V-Shape Tools."
-msgstr ""
-
-#: appDatabase.py:235 appDatabase.py:1352
-msgid ""
-"Clearance Height.\n"
-"Height at which the milling bit will travel between cuts,\n"
-"above the surface of the material, avoiding all fixtures."
-msgstr ""
-
-#: appDatabase.py:239
-msgid ""
-"FR. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-
-#: appDatabase.py:242
-msgid ""
-"FR Z. Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-
-#: appDatabase.py:245 appDatabase.py:1433
-msgid ""
-"FR Rapids. Feedrate Rapids\n"
-"Speed used while moving as fast as possible.\n"
-"This is used only by some devices that can't use\n"
-"the G0 g-code command. Mostly 3D printers."
-msgstr ""
-
-#: appDatabase.py:250 appDatabase.py:1454
-msgid ""
-"Spindle Speed.\n"
-"If it's left empty it will not be used.\n"
-"The speed of the spindle in RPM."
-msgstr ""
-
-#: appDatabase.py:254 appDatabase.py:1469 appDatabase.py:1986
-msgid ""
-"Dwell.\n"
-"Check this if a delay is needed to allow\n"
-"the spindle motor to reach its set speed."
-msgstr ""
-
-#: appDatabase.py:258 appDatabase.py:1482 appDatabase.py:1999
-msgid ""
-"Dwell Time.\n"
-"A delay used to allow the motor spindle reach its set speed."
-msgstr ""
-
-#: appDatabase.py:261
-msgid ""
-"Preprocessor.\n"
-"A selection of files that will alter the generated G-code\n"
-"to fit for a number of use cases."
-msgstr ""
-
-#: appDatabase.py:265 appDatabase.py:1367
-msgid ""
-"Extra Cut.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation."
-msgstr ""
-
-#: appDatabase.py:271 appDatabase.py:1382
-msgid ""
-"Extra Cut length.\n"
-"If checked, after a isolation is finished an extra cut\n"
-"will be added where the start and end of isolation meet\n"
-"such as that this point is covered by this extra cut to\n"
-"ensure a complete isolation. This is the length of\n"
-"the extra cut."
-msgstr ""
-
-#: appDatabase.py:278
-msgid ""
-"Toolchange.\n"
-"It will create a toolchange event.\n"
-"The kind of toolchange is determined by\n"
-"the preprocessor file."
-msgstr ""
-
-#: appDatabase.py:283
-msgid ""
-"Toolchange XY.\n"
-"A set of coordinates in the format (x, y).\n"
-"Will determine the cartesian position of the point\n"
-"where the tool change event take place."
-msgstr ""
-
-#: appDatabase.py:288
-msgid ""
-"Toolchange Z.\n"
-"The position on Z plane where the tool change event take place."
-msgstr ""
-
-#: appDatabase.py:291
-msgid ""
-"Start Z.\n"
-"If it's left empty it will not be used.\n"
-"A position on Z plane to move immediately after job start."
-msgstr ""
-
-#: appDatabase.py:295
-msgid ""
-"End Z.\n"
-"A position on Z plane to move immediately after job stop."
-msgstr ""
-
-#: appDatabase.py:307 appDatabase.py:684 appDatabase.py:718 appDatabase.py:2647
-#: appDatabase.py:3017 appDatabase.py:3051 appTools/ToolCutOut.py:294
-#: appTools/ToolDrilling.py:895 appTools/ToolIsolation.py:1067
-#: appTools/ToolNCC.py:965 appTools/ToolPaint.py:704
-msgid "Could not load Tools DB file."
-msgstr ""
-
-#: appDatabase.py:315 appDatabase.py:726 appDatabase.py:2655
-#: appDatabase.py:3059 appTools/ToolCutOut.py:305 appTools/ToolDrilling.py:903
-#: appTools/ToolIsolation.py:1078 appTools/ToolNCC.py:976
-#: appTools/ToolPaint.py:715
-msgid "Failed to parse Tools DB file."
-msgstr ""
-
-#: appDatabase.py:318 appDatabase.py:729 appDatabase.py:2658
-#: appDatabase.py:3062
-msgid "Loaded Tools DB from"
-msgstr ""
-
-#: appDatabase.py:324 appDatabase.py:2562
-msgid "Add to DB"
-msgstr ""
-
-#: appDatabase.py:326 appDatabase.py:2565
-msgid "Copy from DB"
-msgstr ""
-
-#: appDatabase.py:328 appDatabase.py:2568
-msgid "Delete from DB"
-msgstr ""
-
-#: appDatabase.py:605 appDatabase.py:2917
-msgid "Tool added to DB."
-msgstr ""
-
-#: appDatabase.py:626 appDatabase.py:2950
-msgid "Tool copied from Tools DB."
-msgstr ""
-
-#: appDatabase.py:644 appDatabase.py:2977
-msgid "Tool removed from Tools DB."
-msgstr ""
-
-#: appDatabase.py:655 appDatabase.py:2988
-msgid "Export Tools Database"
-msgstr ""
-
-#: appDatabase.py:658 appDatabase.py:2991
-msgid "Tools_Database"
-msgstr ""
-
-#: appDatabase.py:695 appDatabase.py:698 appDatabase.py:750 appDatabase.py:3028
-#: appDatabase.py:3031 appDatabase.py:3126
-msgid "Failed to write Tools DB to file."
-msgstr ""
-
-#: appDatabase.py:701 appDatabase.py:3034
-msgid "Exported Tools DB to"
-msgstr ""
-
-#: appDatabase.py:708 appDatabase.py:3041
-msgid "Import FlatCAM Tools DB"
-msgstr ""
-
-#: appDatabase.py:740 appDatabase.py:915 appDatabase.py:3073
-#: appDatabase.py:3464 appObjects/FlatCAMGeometry.py:1089
-#: appTools/ToolCutOut.py:484 appTools/ToolCutOut.py:525
-#: appTools/ToolIsolation.py:2583 appTools/ToolIsolation.py:2667
-#: appTools/ToolNCC.py:3608 appTools/ToolNCC.py:3688 appTools/ToolPaint.py:2626
-#: appTools/ToolPaint.py:2715 app_Main.py:5676 app_Main.py:5718
-#: app_Main.py:5749 app_Main.py:5769 app_Main.py:5779
-msgid "Tools Database"
-msgstr ""
-
-#: appDatabase.py:754 appDatabase.py:3130
-msgid "Saved Tools DB."
-msgstr ""
-
-#: appDatabase.py:901 appDatabase.py:3447
-msgid "No Tool/row selected in the Tools Database table"
-msgstr ""
-
-#: appDatabase.py:919 appDatabase.py:3468
-msgid "Cancelled adding tool from DB."
-msgstr ""
-
-#: appDatabase.py:995
-msgid "Tool Description"
-msgstr ""
-
-#: appDatabase.py:1008
-#, fuzzy
-#| msgid "GCode Parameters"
-msgid "Milling Parameters"
-msgstr "GCode Parameters"
-
-#: appDatabase.py:1021
-msgid "NCC Parameters"
-msgstr ""
-
-#: appDatabase.py:1034
-msgid "Paint Parameters"
-msgstr ""
-
-#: appDatabase.py:1047
-msgid "Isolation Parameters"
-msgstr ""
-
-#: appDatabase.py:1060
-#, fuzzy
-#| msgid "GCode Parameters"
-msgid "Drilling Parameters"
-msgstr "GCode Parameters"
-
-#: appDatabase.py:1073
-#, fuzzy
-#| msgid "GCode Parameters"
-msgid "Cutout Parameters"
-msgstr "GCode Parameters"
-
-#: appDatabase.py:1124 appEditors/AppGeoEditor.py:3287 appGUI/ObjectUI.py:219
-#: appGUI/ObjectUI.py:544 appGUI/ObjectUI.py:850 appGUI/ObjectUI.py:1819
-#: appGUI/ObjectUI.py:2624 appGUI/ObjectUI.py:2691
-#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:681
-msgid "Name"
-msgstr ""
-
-#: appDatabase.py:1137 appEditors/AppExcEditor.py:2567
-#: appEditors/AppExcEditor.py:3732 appGUI/ObjectUI.py:640
-#: appObjects/FlatCAMExcellon.py:900 appObjects/FlatCAMExcellon.py:1000
-#: appObjects/FlatCAMObj.py:716 appObjects/FlatCAMObj.py:779
-#: appTools/ToolDrilling.py:1762 appTools/ToolDrilling.py:1827
-#: appTools/ToolDrilling.py:2065 appTools/ToolIsolation.py:3022
-#: appTools/ToolMilling.py:1071 appTools/ToolMilling.py:1175
-#: appTools/ToolMilling.py:1360 appTools/ToolMilling.py:1670
-#: appTools/ToolNCC.py:3778 appTools/ToolPaint.py:2813
-#: appTools/ToolPcbWizard.py:404 appTools/ToolProperties.py:417
-#: appTools/ToolProperties.py:480 appTools/ToolSolderPaste.py:1166
-#: tclCommands/TclCommandDrillcncjob.py:195
-msgid "Diameter"
-msgstr ""
-
-#: appDatabase.py:1150
-msgid "Diameter Tolerance"
-msgstr ""
-
-#: appDatabase.py:1152
-msgid ""
-"Tool tolerance. If there is a tool in the targeted tools table with\n"
-"the value within the limits then this tool from DB will be used."
-msgstr ""
-
-#: appDatabase.py:1158
-#, fuzzy
-#| msgid "Margin:"
-msgid "Min"
-msgstr "Margin:"
-
-#: appDatabase.py:1160
-msgid "Set the tool tolerance minimum."
-msgstr ""
-
-#: appDatabase.py:1172
-msgid "Max"
-msgstr ""
-
-#: appDatabase.py:1174
-msgid "Set the tool tolerance maximum."
-msgstr ""
-
-#: appDatabase.py:1186 appDatabase.py:1504
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:46
-#: appTools/ToolMilling.py:1738 appTools/ToolNCC.py:3943
-msgid "Operation"
-msgstr ""
-
-#: appDatabase.py:1188
-msgid "The kind of Application Tool where this tool is to be used."
-msgstr ""
-
-#: appDatabase.py:1192 appDatabase.py:2695 appDatabase.py:2731
-#: appDatabase.py:2794 appDatabase.py:3079 appGUI/MainGUI.py:1299
-msgid "General"
-msgstr ""
-
-#: appDatabase.py:1192 appDatabase.py:2753 appDatabase.py:3082
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:55
-#: appTools/ToolMilling.py:1747
-msgid "Milling"
-msgstr ""
-
-#: appDatabase.py:1192 appDatabase.py:2757 appDatabase.py:3087
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:54
-#: appTools/ToolMilling.py:1746
-msgid "Drilling"
-msgstr ""
-
-#: appDatabase.py:1192 appDatabase.py:1514 appDatabase.py:2761
-#: appDatabase.py:3095 appTools/ToolIsolation.py:1101
-#: appTools/ToolIsolation.py:2576 appTools/ToolNCC.py:3953
-msgid "Isolation"
-msgstr ""
-
-#: appDatabase.py:1192 appDatabase.py:2767 appDatabase.py:3103
-#: appEditors/AppGeoEditor.py:528 appGUI/MainGUI.py:1506
-#: appTools/ToolPaint.py:738 appTools/ToolPaint.py:2619
-msgid "Paint"
-msgstr ""
-
-#: appDatabase.py:1192 appDatabase.py:2773 appDatabase.py:3111
-#: appTools/ToolNCC.py:1000 appTools/ToolNCC.py:3601
-msgid "NCC"
-msgstr ""
-
-#: appDatabase.py:1192 appDatabase.py:2779 appTools/ToolCutOut.py:328
-#: appTools/ToolCutOut.py:465
-msgid "Cutout"
-msgstr ""
-
-#: appDatabase.py:1208
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:218
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:418
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:303
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286
-#: appTools/ToolIsolation.py:3425 appTools/ToolNCC.py:4236
-#: appTools/ToolPaint.py:3163
-msgid "Shape"
-msgstr ""
-
-#: appDatabase.py:1403 appGUI/ObjectUI.py:1235
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:186
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148
-#: appTools/ToolMilling.py:1860 appTools/ToolSolderPaste.py:1325
-msgid "Feedrate X-Y"
-msgstr ""
-
-#: appDatabase.py:1405
-msgid ""
-"Feedrate X-Y. Feedrate\n"
-"The speed on XY plane used while cutting into material."
-msgstr ""
-
-#: appDatabase.py:1417 appDatabase.py:1929 appGUI/ObjectUI.py:1249
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:201
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:171
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161
-#: appTools/ToolDrilling.py:2210 appTools/ToolMilling.py:1875
-#: appTools/ToolSolderPaste.py:1337
-msgid "Feedrate Z"
-msgstr ""
-
-#: appDatabase.py:1419
-msgid ""
-"Feedrate Z\n"
-"The speed on Z plane."
-msgstr ""
-
-#: appDatabase.py:1506 appTools/ToolNCC.py:3945
-msgid ""
-"The 'Operation' can be:\n"
-"- Isolation -> will ensure that the non-copper clearing is always complete.\n"
-"If it's not successful then the non-copper clearing will fail, too.\n"
-"- Clear -> the regular non-copper clearing."
-msgstr ""
-
-#: appDatabase.py:1513 appEditors/AppGerberEditor.py:2749
-#: appGUI/GUIElements.py:3021 appTools/ToolNCC.py:3952
-msgid "Clear"
-msgstr ""
-
-#: appDatabase.py:1522 appDatabase.py:1768
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:62
-#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:182
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137
-#: appTools/ToolIsolation.py:3204 appTools/ToolMilling.py:1760
-#: appTools/ToolNCC.py:3961
-msgid "Milling Type"
-msgstr ""
-
-#: appDatabase.py:1524 appDatabase.py:1532 appDatabase.py:1770
-#: appDatabase.py:1778 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:184
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:192
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:139
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:147
-#: appTools/ToolIsolation.py:3206 appTools/ToolIsolation.py:3214
-#: appTools/ToolNCC.py:3963 appTools/ToolNCC.py:3971
-msgid ""
-"Milling type when the selected tool is of type: 'iso_op':\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-
-#: appDatabase.py:1529 appDatabase.py:1775
-#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:62
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:189
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:144
-#: appTools/ToolIsolation.py:3211 appTools/ToolNCC.py:3968
-msgid "Climb"
-msgstr ""
-
-#: appDatabase.py:1530 appDatabase.py:1776
-#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:63
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:190
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:145
-#: appTools/ToolIsolation.py:3212 appTools/ToolNCC.py:3969
-msgid "Conventional"
-msgstr ""
-
-#: appDatabase.py:1542 appDatabase.py:1651 appDatabase.py:1753
-#: appDatabase.py:2027 appEditors/AppGeoEditor.py:450 appGUI/ObjectUI.py:1633
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:250
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:167
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:163
-#: appTools/ToolDrilling.py:2312 appTools/ToolIsolation.py:3189
-#: appTools/ToolNCC.py:3984 appTools/ToolPaint.py:2955
-msgid "Overlap"
-msgstr ""
-
-#: appDatabase.py:1544 appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:184
-#: appTools/ToolNCC.py:3986
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be cleared are still \n"
-"not cleared.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-
-#: appDatabase.py:1563 appDatabase.py:2071 appEditors/AppGeoEditor.py:470
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:72
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:229
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:59
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:45
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:53
-#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:183
-#: appTools/ToolCopperThieving.py:1204 appTools/ToolCopperThieving.py:1455
-#: appTools/ToolCorners.py:411 appTools/ToolCutOut.py:2157
-#: appTools/ToolFiducials.py:786 appTools/ToolInvertGerber.py:234
-#: appTools/ToolInvertGerber.py:242 appTools/ToolNCC.py:4028
-#: appTools/ToolNCC.py:4131
-msgid "Margin"
-msgstr ""
-
-#: appDatabase.py:1565
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:74
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:61
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125
-#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204
-#: appTools/ToolCopperThieving.py:1206 appTools/ToolCorners.py:413
-#: appTools/ToolFiducials.py:788 appTools/ToolNCC.py:4030
-#: appTools/ToolNCC.py:4133
-msgid "Bounding box margin."
-msgstr ""
-
-#: appDatabase.py:1576 appDatabase.py:1687 appEditors/AppGeoEditor.py:484
-#: appGUI/ObjectUI.py:1648 appGUI/ObjectUI.py:2115
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:85
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:198
-#: appTools/ToolExtractDrills.py:520 appTools/ToolNCC.py:4005
-#: appTools/ToolPaint.py:2991 appTools/ToolPunchGerber.py:793
-msgid "Method"
-msgstr ""
-
-#: appDatabase.py:1578 appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:217
-#: appTools/ToolNCC.py:4007
-msgid ""
-"Algorithm for copper clearing:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-
-#: appDatabase.py:1586 appDatabase.py:1701 appEditors/AppGeoEditor.py:498
-#: appGUI/ObjectUI.py:1658 appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: appTools/ToolNCC.py:1916 appTools/ToolNCC.py:4020 appTools/ToolPaint.py:1456
-#: appTools/ToolPaint.py:3016 defaults.py:346
-#: tclCommands/TclCommandCopperClear.py:126
-#: tclCommands/TclCommandCopperClear.py:134 tclCommands/TclCommandPaint.py:125
-msgid "Standard"
-msgstr ""
-
-#: appDatabase.py:1586 appDatabase.py:1701 appEditors/AppGeoEditor.py:498
-#: appEditors/AppGeoEditor.py:568 appEditors/AppGeoEditor.py:5113
-#: appGUI/ObjectUI.py:1658 appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: appTools/ToolNCC.py:1927 appTools/ToolNCC.py:4020 appTools/ToolPaint.py:1470
-#: appTools/ToolPaint.py:3016 defaults.py:469 defaults.py:506
-#: tclCommands/TclCommandCopperClear.py:128
-#: tclCommands/TclCommandCopperClear.py:136 tclCommands/TclCommandPaint.py:127
-msgid "Seed"
-msgstr ""
-
-#: appDatabase.py:1586 appDatabase.py:1701 appEditors/AppGeoEditor.py:498
-#: appEditors/AppGeoEditor.py:5117 appGUI/ObjectUI.py:1658
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: appTools/ToolNCC.py:1938 appTools/ToolNCC.py:4020 appTools/ToolPaint.py:160
-#: appTools/ToolPaint.py:1484 appTools/ToolPaint.py:3016
-#: tclCommands/TclCommandCopperClear.py:130 tclCommands/TclCommandPaint.py:129
-msgid "Lines"
-msgstr ""
-
-#: appDatabase.py:1586 appDatabase.py:1701
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: appTools/ToolNCC.py:1949 appTools/ToolNCC.py:4020 appTools/ToolPaint.py:1649
-#: appTools/ToolPaint.py:3016 tclCommands/TclCommandPaint.py:133
-msgid "Combo"
-msgstr ""
-
-#: appDatabase.py:1594 appDatabase.py:1712 appEditors/AppGeoEditor.py:505
-#: appGUI/ObjectUI.py:2200 appGUI/ObjectUI.py:2223
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:237
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:224
-#: appObjects/FlatCAMCNCJob.py:1291 appObjects/FlatCAMCNCJob.py:1313
-#: appTools/ToolNCC.py:4041 appTools/ToolNCC.py:4144 appTools/ToolPaint.py:3027
-msgid "Connect"
-msgstr ""
-
-#: appDatabase.py:1598 appDatabase.py:1715 appEditors/AppGeoEditor.py:507
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:239
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:226
-#: appTools/ToolNCC.py:4045 appTools/ToolNCC.py:4146 appTools/ToolPaint.py:3030
-msgid ""
-"Draw lines between resulting\n"
-"segments to minimize tool lifts."
-msgstr ""
-
-#: appDatabase.py:1604 appDatabase.py:1719 appEditors/AppGeoEditor.py:515
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:246
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:232
-#: appTools/ToolNCC.py:4051 appTools/ToolNCC.py:4152 appTools/ToolPaint.py:3034
-msgid "Contour"
-msgstr ""
-
-#: appDatabase.py:1608 appDatabase.py:1722 appEditors/AppGeoEditor.py:517
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:248
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:234
-#: appTools/ToolNCC.py:4055 appTools/ToolNCC.py:4154 appTools/ToolPaint.py:3037
-msgid ""
-"Cut around the perimeter of the polygon\n"
-"to trim rough edges."
-msgstr ""
-
-#: appDatabase.py:1614 appDatabase.py:1672 appEditors/AppGeoEditor.py:611
-#: appEditors/AppGerberEditor.py:5321 appEditors/appGCodeEditor.py:692
-#: appGUI/ObjectUI.py:143 appGUI/ObjectUI.py:955 appGUI/ObjectUI.py:1952
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:255
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:183
-#: appTools/ToolEtchCompensation.py:417 appTools/ToolEtchCompensation.py:425
-#: appTools/ToolNCC.py:4061 appTools/ToolNCC.py:4160 appTools/ToolPaint.py:2976
-#: appTools/ToolPaint.py:3083 appTools/ToolTransform.py:517
-msgid "Offset"
-msgstr ""
-
-#: appDatabase.py:1618 appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:257
-#: appTools/ToolNCC.py:4065 appTools/ToolNCC.py:4162
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0 and 10 FlatCAM units."
-msgstr ""
-
-#: appDatabase.py:1653 appEditors/AppGeoEditor.py:452
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:165
-#: appTools/ToolPaint.py:2957
-msgid ""
-"How much (percentage) of the tool width to overlap each tool pass.\n"
-"Adjust the value starting with lower values\n"
-"and increasing it if areas that should be painted are still \n"
-"not painted.\n"
-"Lower values = faster processing, faster execution on CNC.\n"
-"Higher values = slow processing and slow execution on CNC\n"
-"due of too many paths."
-msgstr ""
-
-#: appDatabase.py:1674 appEditors/AppGeoEditor.py:472
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:185
-#: appTools/ToolPaint.py:2978 appTools/ToolPaint.py:3085
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the polygon to\n"
-"be painted."
-msgstr ""
-
-#: appDatabase.py:1689 appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:200
-#: appTools/ToolPaint.py:2993
-msgid ""
-"Algorithm for painting:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines.\n"
-"- Laser-lines: Active only for Gerber objects.\n"
-"Will create lines that follow the traces.\n"
-"- Combo: In case of failure a new method will be picked from the above\n"
-"in the order specified."
-msgstr ""
-
-#: appDatabase.py:1701 appDatabase.py:1703
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:217
-#: appTools/ToolPaint.py:154 appTools/ToolPaint.py:159
-#: appTools/ToolPaint.py:1498 appTools/ToolPaint.py:3016
-#: appTools/ToolPaint.py:3018 tclCommands/TclCommandPaint.py:131
-msgid "Laser_lines"
-msgstr ""
-
-#: appDatabase.py:1740 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:154
-#: appTools/ToolIsolation.py:3176
-msgid "Passes"
-msgstr ""
-
-#: appDatabase.py:1742 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:156
-#: appTools/ToolIsolation.py:3178
-msgid ""
-"Width of the isolation gap in\n"
-"number (integer) of tool widths."
-msgstr ""
-
-#: appDatabase.py:1755 appGUI/ObjectUI.py:1635
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:169
-#: appTools/ToolIsolation.py:3191
-msgid "How much (percentage) of the tool width to overlap each tool pass."
-msgstr ""
-
-#: appDatabase.py:1788 appGUI/ObjectUI.py:234
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:201
-#: appTools/ToolIsolation.py:3224
-msgid "Follow"
-msgstr ""
-
-#: appDatabase.py:1790 appDatabase.py:1796 appGUI/ObjectUI.py:235
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:45
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:203
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:209
-#: appTools/ToolIsolation.py:3226 appTools/ToolIsolation.py:3232
-msgid ""
-"Generate a 'Follow' geometry.\n"
-"This means that it will cut through\n"
-"the middle of the trace."
-msgstr ""
-
-#: appDatabase.py:1805 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:218
-#: appTools/ToolIsolation.py:3241
-msgid "Isolation Type"
-msgstr ""
-
-#: appDatabase.py:1807 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:220
-#: appTools/ToolIsolation.py:3243
-msgid ""
-"Choose how the isolation will be executed:\n"
-"- 'Full' -> complete isolation of polygons\n"
-"- 'Ext' -> will isolate only on the outside\n"
-"- 'Int' -> will isolate only on the inside\n"
-"'Exterior' isolation is almost always possible\n"
-"(with the right tool) but 'Interior'\n"
-"isolation can be done only when there is an opening\n"
-"inside of the polygon (e.g polygon is a 'doughnut' shape)."
-msgstr ""
-
-#: appDatabase.py:1816 appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:72
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:229
-#: appTools/ToolIsolation.py:3252
-msgid "Full"
-msgstr ""
-
-#: appDatabase.py:1817 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:230
-#: appTools/ToolIsolation.py:3253
-msgid "Ext"
-msgstr ""
-
-#: appDatabase.py:1818 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:231
-#: appTools/ToolIsolation.py:3254
-msgid "Int"
-msgstr ""
-
-#: appDatabase.py:1836 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:59
-#: appTools/ToolDrilling.py:2145 appTools/ToolMilling.py:1795
-msgid ""
-"Drill depth (negative)\n"
-"below the copper surface."
-msgstr ""
-
-#: appDatabase.py:1855 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:283
-#: appTools/ToolDrilling.py:2288 appTools/ToolMilling.py:1980
-msgid "Offset Z"
-msgstr ""
-
-#: appDatabase.py:1857 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:285
-#: appTools/ToolDrilling.py:2290 appTools/ToolMilling.py:1982
-msgid ""
-"Some drill bits (the larger ones) need to drill deeper\n"
-"to create the desired exit hole diameter due of the tip shape.\n"
-"The value here can compensate the Cut Z parameter."
-msgstr ""
-
-#: appDatabase.py:1874 appGUI/ObjectUI.py:1193
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:80
-#: appTools/ToolCutOut.py:2128 appTools/ToolDrilling.py:2167
-#: appTools/ToolMilling.py:1817
-msgid ""
-"Use multiple passes to limit\n"
-"the cut depth in each pass. Will\n"
-"cut multiple times until Cut Z is\n"
-"reached."
-msgstr ""
-
-#: appDatabase.py:1896 appGUI/ObjectUI.py:1207
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:92
-#: appTools/ToolCutOut.py:2142 appTools/ToolDrilling.py:2180
-#: appTools/ToolMilling.py:1830
-msgid "Depth of each pass (positive)."
-msgstr ""
-
-#: appDatabase.py:1905 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:100
-#: appTools/ToolDrilling.py:2191 appTools/ToolMilling.py:1841
-msgid ""
-"Tool height when travelling\n"
-"across the XY plane."
-msgstr ""
-
-#: appDatabase.py:1931 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:173
-#: appTools/ToolDrilling.py:2212 appTools/ToolMilling.py:1877
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"So called 'Plunge' feedrate.\n"
-"This is for linear move G01."
-msgstr ""
-
-#: appDatabase.py:1946 appGUI/ObjectUI.py:1264
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:67
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:317
-#: appTools/ToolDrilling.py:2227 appTools/ToolMilling.py:1892
-msgid "Feedrate Rapids"
-msgstr ""
-
-#: appDatabase.py:1948 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:319
-#: appTools/ToolDrilling.py:2229 appTools/ToolMilling.py:1894
-msgid ""
-"Tool speed while drilling\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-
-#: appDatabase.py:1969 appGUI/ObjectUI.py:1307
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:217
-#: appObjects/FlatCAMGeometry.py:1827 appTools/ToolDrilling.py:1310
-#: appTools/ToolDrilling.py:2249 appTools/ToolMilling.py:1307
-#: appTools/ToolMilling.py:1942
-msgid "Spindle speed"
-msgstr ""
-
-#: appDatabase.py:1971 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:188
-#: appTools/ToolDrilling.py:2251 appTools/ToolMilling.py:1944
-msgid ""
-"Speed of the spindle\n"
-"in RPM (optional)"
-msgstr ""
-
-#: appDatabase.py:2016 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:243
-#: appTools/ToolDrilling.py:2304
-#, fuzzy
-#| msgid "Nr of slots:"
-msgid "Drill slots"
-msgstr "Nr of slots:"
-
-#: appDatabase.py:2018 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:245
-#: appTools/ToolDrilling.py:2306
-msgid "If the selected tool has slots then they will be drilled."
-msgstr ""
-
-#: appDatabase.py:2029 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:252
-#: appTools/ToolDrilling.py:2314
-msgid ""
-"How much (percentage) of the tool diameter to overlap previous drill hole."
-msgstr ""
-
-#: appDatabase.py:2043 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:264
-#: appTools/ToolDrilling.py:2328
-msgid "Last drill"
-msgstr ""
-
-#: appDatabase.py:2045 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:266
-#: appTools/ToolDrilling.py:2330
-msgid ""
-"If the slot length is not completely covered by drill holes,\n"
-"add a drill hole on the slot end point."
-msgstr ""
-
-#: appDatabase.py:2073 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117
-#: appTools/ToolCutOut.py:2159
-msgid ""
-"Margin over bounds. A positive value here\n"
-"will make the cutout of the PCB further from\n"
-"the actual PCB border"
-msgstr ""
-
-#: appDatabase.py:2085 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:131
-#: appTools/ToolCutOut.py:2167
-msgid "Gap size"
-msgstr ""
-
-#: appDatabase.py:2087 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:133
-#: appTools/ToolCutOut.py:2169
-msgid ""
-"The size of the bridge gaps in the cutout\n"
-"used to keep the board connected to\n"
-"the surrounding material (the one \n"
-"from which the PCB is cutout)."
-msgstr ""
-
-#: appDatabase.py:2096 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148
-#: appTools/ToolCutOut.py:2182
-msgid "Gap type"
-msgstr ""
-
-#: appDatabase.py:2098 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:150
-#: appTools/ToolCutOut.py:2184
-msgid ""
-"The type of gap:\n"
-"- Bridge -> the cutout will be interrupted by bridges\n"
-"- Thin -> same as 'bridge' but it will be thinner by partially milling the "
-"gap\n"
-"- M-Bites -> 'Mouse Bites' - same as 'bridge' but covered with drill holes"
-msgstr ""
-
-#: appDatabase.py:2106 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:158
-#: appTools/ToolCutOut.py:2192
-msgid "Bridge"
-msgstr ""
-
-#: appDatabase.py:2107 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:159
-#: appTools/ToolCutOut.py:2193
-msgid "Thin"
-msgstr ""
-
-#: appDatabase.py:2118 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:169
-#: appTools/ToolCutOut.py:2203
-msgid "Depth"
-msgstr ""
-
-#: appDatabase.py:2120 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:171
-#: appTools/ToolCutOut.py:2205
-msgid ""
-"The depth until the milling is done\n"
-"in order to thin the gaps."
-msgstr ""
-
-#: appDatabase.py:2137 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186
-#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2220
-msgid "Tool Diameter"
-msgstr ""
-
-#: appDatabase.py:2139 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:188
-#: appTools/ToolCutOut.py:2222
-msgid "The drill hole diameter when doing mpuse bites."
-msgstr ""
-
-#: appDatabase.py:2150
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198
-#: appTools/ToolCopperThieving.py:1327 appTools/ToolCopperThieving.py:1367
-#: appTools/ToolCopperThieving.py:1407 appTools/ToolCutOut.py:2232
-msgid "Spacing"
-msgstr ""
-
-#: appDatabase.py:2152 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:200
-#: appTools/ToolCutOut.py:2234
-msgid "The spacing between drill holes when doing mouse bites."
-msgstr ""
-
-#: appDatabase.py:2171 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:233
-#: appTools/ToolCutOut.py:2034
-msgid "Convex Shape"
-msgstr ""
-
-#: appDatabase.py:2174 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:235
-#: appTools/ToolCutOut.py:2036 appTools/ToolCutOut.py:2041
-msgid ""
-"Create a convex shape surrounding the entire PCB.\n"
-"Used only if the source object type is Gerber."
-msgstr ""
-
-#: appDatabase.py:2182 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:209
-#: appTools/ToolCutOut.py:2263
-msgid "Gaps"
-msgstr ""
-
-#: appDatabase.py:2184 appTools/ToolCutOut.py:2265
-msgid ""
-"Number of gaps used for the Automatic cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None  - no gaps\n"
-"- lr    - left + right\n"
-"- tb    - top + bottom\n"
-"- 4     - left + right +top + bottom\n"
-"- 2lr   - 2*left + 2*right\n"
-"- 2tb  - 2*top + 2*bottom\n"
-"- 8     - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-
-#: appDatabase.py:2221
-msgid "Add Tool in DB"
-msgstr ""
-
-#: appDatabase.py:2259
-msgid "Save DB"
-msgstr ""
-
-#: appDatabase.py:2262
-msgid "Save the Tools Database information's."
-msgstr ""
-
-#: appDatabase.py:2268
-msgid ""
-"Insert a new tool in the Tools Table of the\n"
-"object/application tool after selecting a tool\n"
-"in the Tools Database."
-msgstr ""
-
-#: appDatabase.py:2294 appDatabase.py:2305 appEditors/AppExcEditor.py:4215
-#: appEditors/AppExcEditor.py:4226 appEditors/appGCodeEditor.py:775
-#: appEditors/appGCodeEditor.py:786 appGUI/ObjectUI.py:163
-#: appGUI/ObjectUI.py:174 appTool.py:280 appTool.py:291
-#: appTools/ToolAlignObjects.py:516 appTools/ToolAlignObjects.py:527
-#: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401
-#: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406
-#: appTools/ToolCopperThieving.py:1595 appTools/ToolCopperThieving.py:1606
-#: appTools/ToolCorners.py:462 appTools/ToolCorners.py:473
-#: appTools/ToolCutOut.py:2437 appTools/ToolCutOut.py:2448
-#: appTools/ToolDblSided.py:965 appTools/ToolDblSided.py:976
-#: appTools/ToolDistance.py:659 appTools/ToolDistance.py:670
-#: appTools/ToolDistanceMin.py:324 appTools/ToolDistanceMin.py:335
-#: appTools/ToolDrilling.py:2666 appTools/ToolDrilling.py:2677
-#: appTools/ToolEtchCompensation.py:476 appTools/ToolEtchCompensation.py:487
-#: appTools/ToolExtractDrills.py:732 appTools/ToolExtractDrills.py:743
-#: appTools/ToolFiducials.py:950 appTools/ToolFiducials.py:961
-#: appTools/ToolFilm.py:1454 appTools/ToolFilm.py:1465
-#: appTools/ToolImage.py:322 appTools/ToolImage.py:333
-#: appTools/ToolInvertGerber.py:304 appTools/ToolInvertGerber.py:315
-#: appTools/ToolIsolation.py:3494 appTools/ToolIsolation.py:3505
-#: appTools/ToolMilling.py:2341 appTools/ToolMilling.py:2352
-#: appTools/ToolNCC.py:4391 appTools/ToolNCC.py:4402
-#: appTools/ToolOptimal.py:614 appTools/ToolOptimal.py:625
-#: appTools/ToolPaint.py:3267 appTools/ToolPaint.py:3278
-#: appTools/ToolPanelize.py:914 appTools/ToolPanelize.py:925
-#: appTools/ToolPcbWizard.py:488 appTools/ToolPcbWizard.py:499
-#: appTools/ToolPunchGerber.py:1022 appTools/ToolPunchGerber.py:1033
-#: appTools/ToolQRCode.py:922 appTools/ToolQRCode.py:933
-#: appTools/ToolRulesCheck.py:1655 appTools/ToolRulesCheck.py:1666
-#: appTools/ToolSolderPaste.py:1575 appTools/ToolSolderPaste.py:1586
-#: appTools/ToolSub.py:770 appTools/ToolSub.py:781
-#: appTools/ToolTransform.py:964 appTools/ToolTransform.py:975
-msgid "Edited value is out of range"
-msgstr ""
-
-#: appDatabase.py:2300 appDatabase.py:2307 appEditors/AppExcEditor.py:4221
-#: appEditors/AppExcEditor.py:4228 appEditors/appGCodeEditor.py:781
-#: appEditors/appGCodeEditor.py:788 appGUI/ObjectUI.py:169
-#: appGUI/ObjectUI.py:176 appTool.py:286 appTool.py:293
-#: appTools/ToolAlignObjects.py:522 appTools/ToolAlignObjects.py:529
-#: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403
-#: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408
-#: appTools/ToolCopperThieving.py:1601 appTools/ToolCopperThieving.py:1608
-#: appTools/ToolCorners.py:468 appTools/ToolCorners.py:475
-#: appTools/ToolCutOut.py:2443 appTools/ToolCutOut.py:2450
-#: appTools/ToolDblSided.py:971 appTools/ToolDblSided.py:978
-#: appTools/ToolDistance.py:665 appTools/ToolDistance.py:672
-#: appTools/ToolDistanceMin.py:330 appTools/ToolDistanceMin.py:337
-#: appTools/ToolDrilling.py:2672 appTools/ToolDrilling.py:2679
-#: appTools/ToolEtchCompensation.py:482 appTools/ToolEtchCompensation.py:489
-#: appTools/ToolExtractDrills.py:738 appTools/ToolExtractDrills.py:745
-#: appTools/ToolFiducials.py:956 appTools/ToolFiducials.py:963
-#: appTools/ToolFilm.py:1460 appTools/ToolFilm.py:1467
-#: appTools/ToolImage.py:328 appTools/ToolImage.py:335
-#: appTools/ToolInvertGerber.py:310 appTools/ToolInvertGerber.py:317
-#: appTools/ToolIsolation.py:3500 appTools/ToolIsolation.py:3507
-#: appTools/ToolMilling.py:2347 appTools/ToolMilling.py:2354
-#: appTools/ToolNCC.py:4397 appTools/ToolNCC.py:4404
-#: appTools/ToolOptimal.py:620 appTools/ToolOptimal.py:627
-#: appTools/ToolPaint.py:3273 appTools/ToolPaint.py:3280
-#: appTools/ToolPanelize.py:920 appTools/ToolPanelize.py:927
-#: appTools/ToolPcbWizard.py:494 appTools/ToolPcbWizard.py:501
-#: appTools/ToolPunchGerber.py:1028 appTools/ToolPunchGerber.py:1035
-#: appTools/ToolQRCode.py:928 appTools/ToolQRCode.py:935
-#: appTools/ToolRulesCheck.py:1661 appTools/ToolRulesCheck.py:1668
-#: appTools/ToolSolderPaste.py:1581 appTools/ToolSolderPaste.py:1588
-#: appTools/ToolSub.py:776 appTools/ToolSub.py:783
-#: appTools/ToolTransform.py:970 appTools/ToolTransform.py:977
-msgid "Edited value is within limits."
-msgstr ""
-
-#: appDatabase.py:2573 appTranslation.py:210 app_Main.py:3380 app_Main.py:6889
-msgid "Save changes"
-msgstr ""
-
-#: appDatabase.py:3290
-msgid ""
-"To change tool properties select only one tool. Tools currently selected"
-msgstr ""
-
-#: appDatabase.py:3451 appTools/ToolDrilling.py:907
-msgid "Tools DB empty."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:51 appEditors/AppExcEditor.py:75
-#: appEditors/AppExcEditor.py:169 appEditors/AppExcEditor.py:386
-#: appEditors/AppExcEditor.py:589 appEditors/AppGerberEditor.py:241
-#: appEditors/AppGerberEditor.py:248
-msgid "Click to place ..."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:59
-msgid "To add a drill first select a tool"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:123
-msgid "Done. Drill added."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:177
-msgid "To add an Drill Array first select a tool in Tool Table"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:193 appEditors/AppExcEditor.py:415
-#: appEditors/AppExcEditor.py:636 appEditors/AppExcEditor.py:1151
-#: appEditors/AppExcEditor.py:1178 appEditors/AppGerberEditor.py:471
-#: appEditors/AppGerberEditor.py:1944 appEditors/AppGerberEditor.py:1974
-msgid "Click on target location ..."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:212
-msgid "Click on the Drill Circular Array Start position"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:234 appEditors/AppExcEditor.py:677
-#: appEditors/AppGerberEditor.py:516
-msgid "The value is not Float. Check for comma instead of dot separator."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:238
-msgid "The value is mistyped. Check the value"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:337
-msgid "Too many drills for the selected spacing angle."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:355
-msgid "Done. Drill Array added."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:394
-msgid "To add a slot first select a tool"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:454 appEditors/AppExcEditor.py:461
-#: appEditors/AppExcEditor.py:742 appEditors/AppExcEditor.py:749
-msgid "Value is missing or wrong format. Add it and retry."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:559
-msgid "Done. Adding Slot completed."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:597
-msgid "To add an Slot Array first select a tool in Tool Table"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:655
-msgid "Click on the Slot Circular Array Start position"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:680 appEditors/AppGerberEditor.py:519
-msgid "The value is mistyped. Check the value."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:859
-msgid "Too many Slots for the selected spacing angle."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:882
-msgid "Done. Slot Array added."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:904
-msgid "Click on the Drill(s) to resize ..."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:934
-msgid "Resize drill(s) failed. Please enter a diameter for resize."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:1112
-msgid "Done. Drill/Slot Resize completed."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:1115
-msgid "Cancelled. No drills/slots selected for resize ..."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:1153 appEditors/AppGerberEditor.py:1946
-msgid "Click on reference location ..."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:1210
-msgid "Done. Drill(s) Move completed."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:1318
-msgid "Done. Drill(s) copied."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:1897 appObjects/FlatCAMExcellon.py:328
-#: appTools/ToolDrilling.py:571 appTools/ToolMilling.py:494
-msgid "Total Drills"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:1929 appObjects/FlatCAMExcellon.py:362
-#: appTools/ToolDrilling.py:598 appTools/ToolMilling.py:521
-msgid "Total Slots"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:2003 appObjects/FlatCAMGeometry.py:706
-#: appObjects/FlatCAMGeometry.py:1232 appObjects/FlatCAMGeometry.py:1974
-#: appObjects/FlatCAMGeometry.py:2633 appTools/ToolIsolation.py:1252
-#: appTools/ToolIsolation.py:1705 appTools/ToolNCC.py:1151
-#: appTools/ToolNCC.py:1285 appTools/ToolPaint.py:889
-#: appTools/ToolPaint.py:1027 appTools/ToolPaint.py:1740
-#: appTools/ToolSolderPaste.py:455 appTools/ToolSolderPaste.py:527
-msgid "Wrong value format entered, use a number."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:2014
-msgid ""
-"Tool already in the original or actual tool list.\n"
-"Save and reedit Excellon if you need to add this tool. "
-msgstr ""
-
-#: appEditors/AppExcEditor.py:2022 appGUI/MainGUI.py:3512
-msgid "Added new tool with dia"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:2055
-msgid "Select a tool in Tool Table"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:2085
-msgid "Deleted tool with diameter"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:2232
-msgid "Done. Tool edit completed."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:2858
-msgid "There are no Tools definitions in the file. Aborting Excellon creation."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:2862
-msgid "An internal error has ocurred. See Shell.\n"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:2867
-msgid "Creating Excellon."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:2881
-msgid "Excellon editing finished."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:2897
-msgid "Cancelled. There is no Tool/Drill selected"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3123 appEditors/AppExcEditor.py:3130
-#: appEditors/AppGeoEditor.py:4233 appEditors/AppGeoEditor.py:4247
-#: appEditors/AppGerberEditor.py:1085 appEditors/AppGerberEditor.py:1312
-#: appEditors/AppGerberEditor.py:1497 appEditors/AppGerberEditor.py:1766
-#: appEditors/AppGerberEditor.py:4625 appEditors/AppGerberEditor.py:4642
-#: appGUI/MainGUI.py:2859 appGUI/MainGUI.py:2871
-#: appTools/ToolAlignObjects.py:253 appTools/ToolAlignObjects.py:275
-#: app_Main.py:4955 app_Main.py:5109
-msgid "Done."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3491
-msgid "Done. Drill(s) deleted."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3564 appEditors/AppExcEditor.py:3574
-#: appEditors/AppGerberEditor.py:5073
-msgid "Click on the circular array Center position"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3705 appGUI/ObjectUI.py:553
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:26
-msgid "Excellon Editor"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3712 appEditors/AppGerberEditor.py:2469
-#: appEditors/appGCodeEditor.py:674
-msgid "Name:"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3718 appGUI/ObjectUI.py:594
-#: appGUI/ObjectUI.py:923 appTools/ToolIsolation.py:3010
-#: appTools/ToolNCC.py:3766 appTools/ToolPaint.py:2800
-#: appTools/ToolSolderPaste.py:1155
-msgid "Tools Table"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3720 appGUI/ObjectUI.py:596
-msgid ""
-"Tools in this Excellon object\n"
-"when are used for drilling."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3741
-#, fuzzy
-#| msgid "Convex Sh."
-msgid "Convert Slots"
-msgstr "Convex Sh."
-
-#: appEditors/AppExcEditor.py:3743
-msgid "Convert the slots in the selected tools to drills."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3753
-msgid "Add/Delete Tool"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3755
-msgid ""
-"Add/Delete a tool to the tool list\n"
-"for this Excellon object."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3767 appGUI/ObjectUI.py:1040
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57
-#: appTools/ToolIsolation.py:3093 appTools/ToolNCC.py:3861
-msgid "Diameter for the new tool"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3777
-msgid "Add Tool"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3779
-msgid ""
-"Add a new tool to the tool list\n"
-"with the diameter specified above."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3791
-msgid "Delete Tool"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3793
-msgid ""
-"Delete a tool in the tool list\n"
-"by selecting a row in the tool table."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3811 appGUI/MainGUI.py:4561
-msgid "Resize Drill(s)"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3813
-msgid "Resize a drill or a selection of drills."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3820
-msgid "Resize Dia"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3822
-msgid "Diameter to resize to."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3833
-msgid "Resize"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3835
-msgid "Resize drill(s)"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3860 appGUI/MainGUI.py:1564
-#: appGUI/MainGUI.py:4560
-msgid "Add Drill Array"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3862
-msgid "Add an array of drills (linear or circular array)"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3868
-msgid ""
-"Select the type of drills array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3871 appEditors/AppExcEditor.py:4085
-#: appEditors/AppGerberEditor.py:2782
-msgid "Linear"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3872 appEditors/AppExcEditor.py:4086
-#: appEditors/AppGerberEditor.py:2783
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:52
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:149
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:107
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:52
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:78
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:70
-#: appTools/ToolExtractDrills.py:470 appTools/ToolExtractDrills.py:593
-#: appTools/ToolFiducials.py:834 appTools/ToolPunchGerber.py:743
-#: appTools/ToolPunchGerber.py:883
-msgid "Circular"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3880
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:68
-msgid "Nr of drills"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3881
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:70
-msgid "Specify how many drills to be in the array."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3899 appEditors/AppExcEditor.py:3949
-#: appEditors/AppExcEditor.py:4021 appEditors/AppExcEditor.py:4114
-#: appEditors/AppExcEditor.py:4165 appEditors/AppGerberEditor.py:1580
-#: appEditors/AppGerberEditor.py:2811 appEditors/AppGerberEditor.py:2860
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:178
-msgid "Direction"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3901 appEditors/AppExcEditor.py:4116
-#: appEditors/AppGerberEditor.py:2813
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:86
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:234
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:123
-msgid ""
-"Direction on which the linear array is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the array inclination"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3908 appEditors/AppExcEditor.py:4030
-#: appEditors/AppExcEditor.py:4123 appEditors/AppGerberEditor.py:2820
-#: appGUI/GUIElements.py:3480
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:240
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:129
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:197
-#: appTools/ToolFilm.py:1103
-msgid "X"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3909 appEditors/AppExcEditor.py:4031
-#: appEditors/AppExcEditor.py:4124 appEditors/AppGerberEditor.py:2821
-#: appGUI/GUIElements.py:3487
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:241
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:130
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:198
-#: appTools/ToolFilm.py:1104
-msgid "Y"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3910 appEditors/AppExcEditor.py:3927
-#: appEditors/AppExcEditor.py:3961 appEditors/AppExcEditor.py:4032
-#: appEditors/AppExcEditor.py:4036 appEditors/AppExcEditor.py:4125
-#: appEditors/AppExcEditor.py:4143 appEditors/AppExcEditor.py:4177
-#: appEditors/AppGeoEditor.py:683 appEditors/AppGerberEditor.py:2822
-#: appEditors/AppGerberEditor.py:2839 appEditors/AppGerberEditor.py:2875
-#: appEditors/AppGerberEditor.py:5393
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:94
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:113
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:189
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:194
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:242
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:263
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:131
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:149
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:96
-#: appTools/ToolDistance.py:626 appTools/ToolDistanceMin.py:256
-#: appTools/ToolTransform.py:617
-msgid "Angle"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3914 appEditors/AppExcEditor.py:4129
-#: appEditors/AppGerberEditor.py:2826
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:100
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:248
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:137
-msgid "Pitch"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3916 appEditors/AppExcEditor.py:4131
-#: appEditors/AppGerberEditor.py:2828
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:102
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:250
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:139
-msgid "Pitch = Distance between elements of the array."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3929 appEditors/AppExcEditor.py:4145
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is:  360.00 degrees."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3950 appEditors/AppExcEditor.py:4166
-#: appEditors/AppGerberEditor.py:2862
-msgid ""
-"Direction for circular array.Can be CW = clockwise or CCW = counter "
-"clockwise."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3957 appEditors/AppExcEditor.py:4173
-#: appEditors/AppGerberEditor.py:2870
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:136
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:286
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:145
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:171
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:366
-msgid "CW"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3958 appEditors/AppExcEditor.py:4174
-#: appEditors/AppGerberEditor.py:2871
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:137
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:287
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:146
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:172
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:367
-msgid "CCW"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3962 appEditors/AppExcEditor.py:4178
-#: appEditors/AppGerberEditor.py:2877
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:115
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:145
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:265
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:295
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:151
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:180
-msgid "Angle at which each element in circular array is placed."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3996
-msgid "Slot Parameters"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:3998
-msgid ""
-"Parameters for adding a slot (hole with oval shape)\n"
-"either single or as an part of an array."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4007
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162
-#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56
-#: appObjects/FlatCAMObj.py:874 appTools/ToolCorners.py:398
-#: appTools/ToolProperties.py:575
-msgid "Length"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4009
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:164
-msgid "Length = The length of the slot."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4023
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:180
-msgid ""
-"Direction on which the slot is oriented:\n"
-"- 'X' - horizontal axis \n"
-"- 'Y' - vertical axis or \n"
-"- 'Angle' - a custom angle for the slot inclination"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4038
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -360 degrees.\n"
-"Max value is:  360.00 degrees."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4071
-msgid "Slot Array Parameters"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4073
-msgid "Parameters for the array of slots (linear or circular array)"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4082
-msgid ""
-"Select the type of slot array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4094
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:219
-msgid "Nr of slots"
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4095
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:221
-msgid "Specify how many slots to be in the array."
-msgstr ""
-
-#: appEditors/AppExcEditor.py:4198 appEditors/AppGeoEditor.py:3301
-#: appEditors/AppGerberEditor.py:2899 appEditors/appGCodeEditor.py:758
-#, fuzzy
-#| msgid "Editor %s"
-msgid "Exit Editor"
-msgstr "Editor %s"
-
-#: appEditors/AppExcEditor.py:4201 appEditors/AppGeoEditor.py:3304
-#: appEditors/AppGerberEditor.py:2902 appEditors/appGCodeEditor.py:761
-msgid "Exit from Editor."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:49
-#, fuzzy
-#| msgid "PreSelection"
-msgid "Buffer Selection"
-msgstr "PreSelection"
-
-#: appEditors/AppGeoEditor.py:84
-msgid "Buffer distance:"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:85
-msgid "Buffer corner:"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:87
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded for exterior buffer.\n"
-" - 'Square': the corner is met in a sharp angle for exterior buffer.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:93 appEditors/AppGerberEditor.py:2638
-msgid "Round"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:94 appEditors/AppGerberEditor.py:2639
-#: appGUI/ObjectUI.py:1570
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:223
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:68
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:175
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:68
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:68
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:177
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:143
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:423
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:308
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:291
-#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:486
-#: appTools/ToolExtractDrills.py:619 appTools/ToolIsolation.py:3430
-#: appTools/ToolMilling.py:2264 appTools/ToolNCC.py:4241
-#: appTools/ToolPaint.py:3168 appTools/ToolPunchGerber.py:759
-#: appTools/ToolPunchGerber.py:909 appTools/ToolQRCode.py:788
-msgid "Square"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:95 appEditors/AppGerberEditor.py:2640
-msgid "Beveled"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:102
-msgid "Buffer Interior"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:104
-msgid "Buffer Exterior"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:110
-msgid "Full Buffer"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:131 appEditors/AppGeoEditor.py:2959
-#: appGUI/MainGUI.py:4470
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:191
-msgid "Buffer Tool"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:143 appEditors/AppGeoEditor.py:160
-#: appEditors/AppGeoEditor.py:177 appEditors/AppGeoEditor.py:2978
-#: appEditors/AppGeoEditor.py:3006 appEditors/AppGeoEditor.py:3034
-#: appEditors/AppGerberEditor.py:5126
-msgid "Buffer distance value is missing or wrong format. Add it and retry."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:194
-msgid "Text Input Tool"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:241
-msgid "Font"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:322 appGUI/MainGUI.py:1502
-msgid "Text"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:328 appGUI/MainGUI.py:1422
-msgid "Apply"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:348
-msgid "Text Tool"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:404 appGUI/MainGUI.py:511 appGUI/MainGUI.py:1245
-#: appGUI/ObjectUI.py:1128 appObjects/FlatCAMExcellon.py:878
-#: appObjects/FlatCAMGeometry.py:950 appTools/ToolDrilling.py:711
-#: appTools/ToolDrilling.py:1033 appTools/ToolDrilling.py:2116
-#: appTools/ToolIsolation.py:697 appTools/ToolIsolation.py:3166
-#: appTools/ToolMilling.py:790 appTools/ToolMilling.py:1046
-#: appTools/ToolMilling.py:1711 appTools/ToolNCC.py:324
-#: appTools/ToolNCC.py:2231 appTools/ToolNCC.py:3933 appTools/ToolPaint.py:304
-#: appTools/ToolPaint.py:2940
-msgid "Tool"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:412 appEditors/AppGeoEditor.py:546
-#: appGUI/MainGUI.py:935 appGUI/MainGUI.py:2090 appGUI/ObjectUI.py:1723
-#: appTools/ToolPaint.py:228 appTools/ToolPaint.py:2730
-msgid "Paint Tool"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:438
-msgid "Tool dia"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:440
-msgid "Diameter of the tool to be used in the operation."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:486
-msgid ""
-"Algorithm to paint the polygons:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:582 appEditors/AppGeoEditor.py:1071
-#: appEditors/AppGeoEditor.py:2966 appEditors/AppGeoEditor.py:2994
-#: appEditors/AppGeoEditor.py:3022 appEditors/AppGeoEditor.py:4390
-#: appEditors/AppGerberEditor.py:5781
-msgid "Cancelled. No shape selected."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:595 appEditors/AppGeoEditor.py:2984
-#: appEditors/AppGeoEditor.py:3012 appEditors/AppGeoEditor.py:3040
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:71
-#: appObjects/FlatCAMObj.py:495 appTools/ToolProperties.py:117
-#: appTools/ToolProperties.py:165
-msgid "Tools"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:606 appEditors/AppGeoEditor.py:1035
-#: appEditors/AppGerberEditor.py:5316 appEditors/AppGerberEditor.py:5745
-#: appGUI/MainGUI.py:960 appGUI/MainGUI.py:2115 appTools/ToolTransform.py:85
-msgid "Transform Tool"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:607 appEditors/AppGeoEditor.py:699
-#: appEditors/AppGerberEditor.py:5317 appEditors/AppGerberEditor.py:5409
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:88
-#: appTools/ToolTransform.py:513 appTools/ToolTransform.py:633
-msgid "Rotate"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:608 appEditors/AppGerberEditor.py:5318
-#: appTools/ToolTransform.py:514
-msgid "Skew/Shear"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:609 appEditors/AppGerberEditor.py:2687
-#: appEditors/AppGerberEditor.py:5319 appGUI/MainGUI.py:1082
-#: appGUI/MainGUI.py:1549 appGUI/MainGUI.py:2237 appGUI/MainGUI.py:4682
-#: appGUI/ObjectUI.py:125
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:147
-#: appTools/ToolTransform.py:515
-msgid "Scale"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:610 appEditors/AppGerberEditor.py:5320
-#: appTools/ToolTransform.py:516
-msgid "Mirror (Flip)"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:612 appEditors/AppGerberEditor.py:2647
-#: appEditors/AppGerberEditor.py:5322 appGUI/MainGUI.py:1080
-#: appGUI/MainGUI.py:1504 appGUI/MainGUI.py:1547 appGUI/MainGUI.py:2235
-#: appGUI/MainGUI.py:4680
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:212
-#: appTools/ToolTransform.py:518
-msgid "Buffer"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:643 appEditors/AppGerberEditor.py:5353
-#: appGUI/GUIElements.py:2957
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44
-#: appTools/ToolDblSided.py:688 appTools/ToolDblSided.py:864
-#: appTools/ToolFilm.py:1060 appTools/ToolTransform.py:547
-msgid "Reference"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:645 appEditors/AppGerberEditor.py:5355
-msgid ""
-"The reference point for Rotate, Skew, Scale, Mirror.\n"
-"Can be:\n"
-"- Origin -> it is the 0, 0 point\n"
-"- Selection -> the center of the bounding box of the selected objects\n"
-"- Point -> a custom point defined by X,Y coordinates\n"
-"- Min Selection -> the point (minx, miny) of the bounding box of the "
-"selection"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:653 appEditors/AppGerberEditor.py:5363
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54
-#: appTools/ToolCalibration.py:126 appTools/ToolCalibration.py:127
-#: appTools/ToolTransform.py:557
-msgid "Origin"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:653 appEditors/AppGeoEditor.py:1044
-#: appEditors/AppGerberEditor.py:5363 appEditors/AppGerberEditor.py:5754
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:250
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:285
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:311
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:258
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54
-#: appTools/ToolIsolation.py:3368 appTools/ToolNCC.py:4197
-#: appTools/ToolPaint.py:3097 appTools/ToolTransform.py:557 defaults.py:565
-msgid "Selection"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:653 appEditors/AppGerberEditor.py:5363
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:85
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60
-#: appTools/ToolDblSided.py:699 appTools/ToolTransform.py:557
-msgid "Point"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:653 appEditors/AppGerberEditor.py:5363
-msgid "Minimum"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:659 appEditors/AppGeoEditor.py:955
-#: appEditors/AppGerberEditor.py:5369 appEditors/AppGerberEditor.py:5665
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:243
-#: appTools/ToolExtractDrills.py:556 appTools/ToolExtractDrills.py:677
-#: appTools/ToolPunchGerber.py:846 appTools/ToolPunchGerber.py:962
-#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889
-#: app_Main.py:10137
-msgid "Value"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:661 appEditors/AppGerberEditor.py:5371
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:62
-#: appTools/ToolTransform.py:565
-msgid "A point of reference in format X,Y."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:668 appEditors/AppGerberEditor.py:2590
-#: appEditors/AppGerberEditor.py:5378 appGUI/ObjectUI.py:2281
-#: appTools/ToolDblSided.py:713 appTools/ToolDblSided.py:901
-#: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137
-#: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1203
-#: appTools/ToolTransform.py:572 app_Main.py:6121
-msgid "Add"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:670 appEditors/AppGerberEditor.py:5380
-#: appTools/ToolTransform.py:574
-msgid "Add point coordinates from clipboard."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:685 appEditors/AppGerberEditor.py:5395
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:98
-#: appTools/ToolTransform.py:619
-msgid ""
-"Angle for Rotation action, in degrees.\n"
-"Float number between -360 and 359.\n"
-"Positive numbers for CW motion.\n"
-"Negative numbers for CCW motion."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:701 appEditors/AppGerberEditor.py:5411
-#: appTools/ToolTransform.py:635
-msgid ""
-"Rotate the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:721 appEditors/AppGeoEditor.py:783
-#: appEditors/AppGerberEditor.py:5431 appEditors/AppGerberEditor.py:5493
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:112
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:151
-#: appTools/ToolTransform.py:655 appTools/ToolTransform.py:717
-msgid "Link"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:723 appEditors/AppGeoEditor.py:785
-#: appEditors/AppGerberEditor.py:5433 appEditors/AppGerberEditor.py:5495
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:114
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:153
-#: appTools/ToolTransform.py:657 appTools/ToolTransform.py:719
-msgid "Link the Y entry to X entry and copy its content."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:728 appEditors/AppGerberEditor.py:5438
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:151
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:124
-#: appTools/ToolFilm.py:1042 appTools/ToolTransform.py:662
-msgid "X angle"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:730 appEditors/AppGeoEditor.py:751
-#: appEditors/AppGerberEditor.py:5440 appEditors/AppGerberEditor.py:5461
-#: appTools/ToolTransform.py:664 appTools/ToolTransform.py:685
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 360."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:738 appEditors/AppGerberEditor.py:5448
-#: appTools/ToolTransform.py:672
-msgid "Skew X"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:740 appEditors/AppGeoEditor.py:761
-#: appEditors/AppGerberEditor.py:5450 appEditors/AppGerberEditor.py:5471
-#: appTools/ToolTransform.py:674 appTools/ToolTransform.py:695
-msgid ""
-"Skew/shear the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:749 appEditors/AppGerberEditor.py:5459
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:160
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:138
-#: appTools/ToolFilm.py:1051 appTools/ToolTransform.py:683
-msgid "Y angle"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:759 appEditors/AppGerberEditor.py:5469
-#: appTools/ToolTransform.py:693
-msgid "Skew Y"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:790 appEditors/AppGerberEditor.py:5500
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:120
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:162
-#: appTools/ToolFilm.py:998 appTools/ToolTransform.py:724
-msgid "X factor"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:792 appEditors/AppGerberEditor.py:5502
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:164
-#: appTools/ToolTransform.py:726
-msgid "Factor for scaling on X axis."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:799 appEditors/AppGerberEditor.py:5509
-#: appTools/ToolTransform.py:733
-msgid "Scale X"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:801 appEditors/AppGeoEditor.py:821
-#: appEditors/AppGerberEditor.py:5511 appEditors/AppGerberEditor.py:5531
-#: appTools/ToolTransform.py:735 appTools/ToolTransform.py:755
-msgid ""
-"Scale the selected object(s).\n"
-"The point of reference depends on \n"
-"the Scale reference checkbox state."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:810 appEditors/AppGerberEditor.py:5520
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:129
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:175
-#: appTools/ToolFilm.py:1007 appTools/ToolTransform.py:744
-msgid "Y factor"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:812 appEditors/AppGerberEditor.py:5522
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:177
-#: appTools/ToolTransform.py:746
-msgid "Factor for scaling on Y axis."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:819 appEditors/AppGerberEditor.py:5529
-#: appTools/ToolTransform.py:753
-msgid "Scale Y"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:846 appEditors/AppGerberEditor.py:5556
-#: appTools/ToolTransform.py:780
-msgid "Flip on X"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:848 appEditors/AppGeoEditor.py:853
-#: appEditors/AppGerberEditor.py:5558 appEditors/AppGerberEditor.py:5563
-#: appTools/ToolTransform.py:782 appTools/ToolTransform.py:787
-msgid "Flip the selected object(s) over the X axis."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:851 appEditors/AppGerberEditor.py:5561
-#: appTools/ToolTransform.py:785
-msgid "Flip on Y"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:871 appEditors/AppGerberEditor.py:5581
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:191
-#: appTools/ToolTransform.py:805
-msgid "X val"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:873 appEditors/AppGerberEditor.py:5583
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:193
-#: appTools/ToolTransform.py:807
-msgid "Distance to offset on X axis. In current units."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:880 appEditors/AppGerberEditor.py:5590
-#: appTools/ToolTransform.py:814
-msgid "Offset X"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:882 appEditors/AppGeoEditor.py:902
-#: appEditors/AppGerberEditor.py:5592 appEditors/AppGerberEditor.py:5612
-#: appTools/ToolTransform.py:816 appTools/ToolTransform.py:836
-msgid ""
-"Offset the selected object(s).\n"
-"The point of reference is the middle of\n"
-"the bounding box for all selected objects.\n"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:891 appEditors/AppGerberEditor.py:5601
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:204
-#: appTools/ToolTransform.py:825
-msgid "Y val"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:893 appEditors/AppGerberEditor.py:5603
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:206
-#: appTools/ToolTransform.py:827
-msgid "Distance to offset on Y axis. In current units."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:900 appEditors/AppGerberEditor.py:5610
-#: appTools/ToolTransform.py:834
-msgid "Offset Y"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:920 appEditors/AppGerberEditor.py:5630
-#: appGUI/ObjectUI.py:436 appGUI/ObjectUI.py:473
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:67
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:216
-#: appTools/ToolQRCode.py:787 appTools/ToolTransform.py:854
-msgid "Rounded"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:922 appEditors/AppGerberEditor.py:5632
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:218
-#: appTools/ToolTransform.py:856
-msgid ""
-"If checked then the buffer will surround the buffered shape,\n"
-"every corner will be rounded.\n"
-"If not checked then the buffer will follow the exact geometry\n"
-"of the buffered shape."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:930 appEditors/AppGerberEditor.py:5640
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:226
-#: appTools/ToolDistance.py:408 appTools/ToolDistanceMin.py:199
-#: appTools/ToolTransform.py:864
-msgid "Distance"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:932 appEditors/AppGerberEditor.py:5642
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:228
-#: appTools/ToolTransform.py:866
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased with the 'distance'."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:944 appEditors/AppGerberEditor.py:5654
-#: appTools/ToolTransform.py:878
-msgid "Buffer D"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:946 appEditors/AppGerberEditor.py:5656
-#: appTools/ToolTransform.py:880
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the distance."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:957 appEditors/AppGerberEditor.py:5667
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:245
-#: appTools/ToolTransform.py:891
-msgid ""
-"A positive value will create the effect of dilation,\n"
-"while a negative value will create the effect of erosion.\n"
-"Each geometry element of the object will be increased\n"
-"or decreased to fit the 'Value'. Value is a percentage\n"
-"of the initial dimension."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:970 appEditors/AppGerberEditor.py:5680
-#: appTools/ToolTransform.py:904
-msgid "Buffer F"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:972 appEditors/AppGerberEditor.py:5682
-#: appTools/ToolTransform.py:906
-msgid ""
-"Create the buffer effect on each geometry,\n"
-"element from the selected object, using the factor."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1043 appEditors/AppGerberEditor.py:5753
-#: appGUI/ObjectUI.py:1524 appGUI/preferences/tools/Tools2CalPrefGroupUI.py:48
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:70
-#: appTools/ToolCalibration.py:881 appTools/ToolDrilling.py:2540
-#: appTools/ToolFilm.py:931 appTools/ToolMilling.py:2218
-#: appTools/ToolNCC.py:3755 appTools/ToolPaint.py:2788
-#: appTools/ToolPanelize.py:697 appTools/ToolTransform.py:557
-msgid "Object"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1107 appEditors/AppGeoEditor.py:1130
-#: appEditors/AppGeoEditor.py:1276 appEditors/AppGeoEditor.py:1301
-#: appEditors/AppGeoEditor.py:1335 appEditors/AppGeoEditor.py:1370
-#: appEditors/AppGeoEditor.py:1401 appEditors/AppGerberEditor.py:5817
-#: appEditors/AppGerberEditor.py:5840 appEditors/AppGerberEditor.py:5985
-#: appEditors/AppGerberEditor.py:6018 appEditors/AppGerberEditor.py:6061
-#: appEditors/AppGerberEditor.py:6102 appEditors/AppGerberEditor.py:6138
-msgid "No shape selected."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1115 appEditors/AppGerberEditor.py:5825
-#: appTools/ToolTransform.py:150
-msgid "Incorrect format for Point value. Needs format X,Y"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1140 appEditors/AppGerberEditor.py:5850
-#: appTools/ToolTransform.py:167
-msgid "Rotate transformation can not be done for a value of 0."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1198 appEditors/AppGeoEditor.py:1219
-#: appEditors/AppGerberEditor.py:5908 appEditors/AppGerberEditor.py:5929
-#: appTools/ToolTransform.py:225 appTools/ToolTransform.py:246
-msgid "Scale transformation can not be done for a factor of 0 or 1."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1232 appEditors/AppGeoEditor.py:1241
-#: appEditors/AppGerberEditor.py:5942 appEditors/AppGerberEditor.py:5951
-#: appTools/ToolTransform.py:259 appTools/ToolTransform.py:268
-msgid "Offset transformation can not be done for a value of 0."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1271 appEditors/AppGerberEditor.py:5988
-#: appTools/ToolTransform.py:296
-msgid "Appying Rotate"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1284 appEditors/AppGerberEditor.py:6000
-msgid "Done. Rotate completed."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1286
-msgid "Rotation action was not executed"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1304 appEditors/AppGerberEditor.py:6021
-#: appTools/ToolTransform.py:322
-msgid "Applying Flip"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1312 appEditors/AppGerberEditor.py:6033
-#: appTools/ToolTransform.py:339
-msgid "Flip on the Y axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1315 appEditors/AppGerberEditor.py:6041
-#: appTools/ToolTransform.py:348
-msgid "Flip on the X axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1319
-msgid "Flip action was not executed"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1338 appEditors/AppGerberEditor.py:6064
-#: appTools/ToolTransform.py:369
-msgid "Applying Skew"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1347 appEditors/AppGerberEditor.py:6080
-msgid "Skew on the X axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1349 appEditors/AppGerberEditor.py:6082
-msgid "Skew on the Y axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1352
-msgid "Skew action was not executed"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1373 appEditors/AppGerberEditor.py:6105
-#: appTools/ToolTransform.py:396
-msgid "Applying Scale"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1382 appEditors/AppGerberEditor.py:6118
-msgid "Scale on the X axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1384 appEditors/AppGerberEditor.py:6120
-msgid "Scale on the Y axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1386
-msgid "Scale action was not executed"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1404 appEditors/AppGerberEditor.py:6141
-#: appTools/ToolTransform.py:424
-msgid "Applying Offset"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1414 appEditors/AppGerberEditor.py:6162
-msgid "Offset on the X axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1416 appEditors/AppGerberEditor.py:6164
-msgid "Offset on the Y axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1419
-msgid "Offset action was not executed"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1426 appEditors/AppGerberEditor.py:6174
-msgid "No shape selected"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1429 appEditors/AppGerberEditor.py:6177
-#: appTools/ToolTransform.py:453
-msgid "Applying Buffer"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1436 appEditors/AppGerberEditor.py:6199
-#: appTools/ToolTransform.py:474
-msgid "Buffer done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1440 appEditors/AppGerberEditor.py:6203
-#: appTools/ToolTransform.py:443 appTools/ToolTransform.py:478
-msgid "Action was not executed, due of"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1444 appEditors/AppGerberEditor.py:6207
-msgid "Rotate ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1445 appEditors/AppGeoEditor.py:1494
-#: appEditors/AppGeoEditor.py:1509 appEditors/AppGerberEditor.py:6208
-#: appEditors/AppGerberEditor.py:6257 appEditors/AppGerberEditor.py:6272
-msgid "Enter an Angle Value (degrees)"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1453 appEditors/AppGerberEditor.py:6216
-msgid "Geometry shape rotate done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1456 appEditors/AppGerberEditor.py:6219
-msgid "Geometry shape rotate cancelled"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1461 appEditors/AppGerberEditor.py:6224
-msgid "Offset on X axis ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1462 appEditors/AppGeoEditor.py:1479
-#: appEditors/AppGerberEditor.py:6225 appEditors/AppGerberEditor.py:6242
-msgid "Enter a distance Value"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1470 appEditors/AppGerberEditor.py:6233
-msgid "Geometry shape offset on X axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1473 appEditors/AppGerberEditor.py:6236
-msgid "Geometry shape offset X cancelled"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1478 appEditors/AppGerberEditor.py:6241
-msgid "Offset on Y axis ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1487 appEditors/AppGerberEditor.py:6250
-msgid "Geometry shape offset on Y axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1490
-msgid "Geometry shape offset on Y axis canceled"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1493 appEditors/AppGerberEditor.py:6256
-msgid "Skew on X axis ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1502 appEditors/AppGerberEditor.py:6265
-msgid "Geometry shape skew on X axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1505
-msgid "Geometry shape skew on X axis canceled"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1508 appEditors/AppGerberEditor.py:6271
-msgid "Skew on Y axis ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1517 appEditors/AppGerberEditor.py:6280
-msgid "Geometry shape skew on Y axis done"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1520
-msgid "Geometry shape skew on Y axis canceled"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1950 appEditors/AppGeoEditor.py:2021
-#: appEditors/AppGerberEditor.py:1444 appEditors/AppGerberEditor.py:1522
-msgid "Click on Center point ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1963 appEditors/AppGerberEditor.py:1454
-msgid "Click on Perimeter point to complete ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:1995
-msgid "Done. Adding Circle completed."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2049 appEditors/AppGerberEditor.py:1555
-msgid "Click on Start point ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2051 appEditors/AppGerberEditor.py:1557
-msgid "Click on Point3 ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2053 appEditors/AppGerberEditor.py:1559
-msgid "Click on Stop point ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2058 appEditors/AppGerberEditor.py:1564
-msgid "Click on Stop point to complete ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2060 appEditors/AppGerberEditor.py:1566
-msgid "Click on Point2 to complete ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2062 appEditors/AppGerberEditor.py:1568
-msgid "Click on Center point to complete ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2074
-#, python-format
-msgid "Direction: %s"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2088 appEditors/AppGerberEditor.py:1594
-msgid "Mode: Start -> Stop -> Center. Click on Start point ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2091 appEditors/AppGerberEditor.py:1597
-msgid "Mode: Point1 -> Point3 -> Point2. Click on Point1 ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2094 appEditors/AppGerberEditor.py:1600
-msgid "Mode: Center -> Start -> Stop. Click on Center point ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2235
-msgid "Done. Arc completed."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2266 appEditors/AppGeoEditor.py:2339
-msgid "Click on 1st corner ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2278
-msgid "Click on opposite corner to complete ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2308
-msgid "Done. Rectangle completed."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2383
-msgid "Done. Polygon completed."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2397 appEditors/AppGeoEditor.py:2462
-#: appEditors/AppGerberEditor.py:1102 appEditors/AppGerberEditor.py:1322
-msgid "Backtracked one point ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2440
-msgid "Done. Path completed."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2599
-msgid "No shape selected. Select a shape to explode"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2632
-msgid "Done. Polygons exploded into lines."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2664
-msgid "MOVE: No shape selected. Select a shape to move"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2667 appEditors/AppGeoEditor.py:2687
-msgid " MOVE: Click on reference point ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2672
-msgid " Click on destination point ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2712
-msgid "Done. Geometry(s) Move completed."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2845
-msgid "Done. Geometry(s) Copy completed."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2876 appEditors/AppGerberEditor.py:897
-msgid "Click on 1st point ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2900
-msgid ""
-"Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. "
-"Error"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2908
-msgid "No text to add."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2918
-msgid " Done. Adding Text completed."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2955
-msgid "Create buffer geometry ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:2990 appEditors/AppGerberEditor.py:5170
-msgid "Done. Buffer Tool completed."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3018
-msgid "Done. Buffer Int Tool completed."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3046
-msgid "Done. Buffer Ext Tool completed."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3095 appEditors/AppGerberEditor.py:2160
-msgid "Select a shape to act as deletion area ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3097 appEditors/AppGeoEditor.py:3123
-#: appEditors/AppGeoEditor.py:3129 appEditors/AppGerberEditor.py:2162
-msgid "Click to pick-up the erase shape..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3133 appEditors/AppGerberEditor.py:2221
-msgid "Click to erase ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3162 appEditors/AppGerberEditor.py:2254
-msgid "Done. Eraser tool action completed."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3212
-msgid "Create Paint geometry ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3225 appEditors/AppGerberEditor.py:2417
-msgid "Shape transformations ..."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3281 appGUI/ObjectUI.py:857
-#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:27
-msgid "Geometry Editor"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3287 appEditors/AppGerberEditor.py:2495
-#: appEditors/AppGerberEditor.py:3968 appEditors/appGCodeEditor.py:692
-#: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:955 appGUI/ObjectUI.py:1952
-#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:519
-#: appTools/ToolTransform.py:579
-msgid "Type"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3557
-msgid "Ring"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3559
-msgid "Line"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3561 appGUI/MainGUI.py:1496
-#: appGUI/ObjectUI.py:1571
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:224
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:424
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:309
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:328
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:292
-#: appTools/ToolDrilling.py:2589 appTools/ToolIsolation.py:3431
-#: appTools/ToolMilling.py:2265 appTools/ToolNCC.py:4242
-#: appTools/ToolPaint.py:3169
-msgid "Polygon"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3563
-msgid "Multi-Line"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3565
-msgid "Multi-Polygon"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:3572
-msgid "Geo Elem"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4028
-msgid "Grid Snap enabled."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4032
-msgid "Grid Snap disabled."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4397 appGUI/MainGUI.py:3194
-#: appGUI/MainGUI.py:3240 appGUI/MainGUI.py:3258 appGUI/MainGUI.py:3402
-#: appGUI/MainGUI.py:3441 appGUI/MainGUI.py:3453 appGUI/MainGUI.py:3470
-msgid "Click on target point."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4679
-msgid "Editing MultiGeo Geometry, tool"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4681 appTools/ToolNCC.py:2233
-msgid "with diameter"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4784 appEditors/AppGeoEditor.py:4819
-msgid "A selection of at least 2 geo items is required to do Intersection."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4905 appEditors/AppGeoEditor.py:5009
-msgid ""
-"Negative buffer value is not accepted. Use Buffer interior to generate an "
-"'inside' shape"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4915 appEditors/AppGeoEditor.py:4968
-#: appEditors/AppGeoEditor.py:5018
-msgid "Nothing selected for buffering."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4920 appEditors/AppGeoEditor.py:4972
-#: appEditors/AppGeoEditor.py:5023
-msgid "Invalid distance for buffering."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4944 appEditors/AppGeoEditor.py:5043
-msgid "Failed, the result is empty. Choose a different buffer value."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4955
-msgid "Full buffer geometry created."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4961
-msgid "Negative buffer value is not accepted."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:4992
-msgid "Failed, the result is empty. Choose a smaller buffer value."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5002
-msgid "Interior buffer geometry created."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5053
-msgid "Exterior buffer geometry created."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5059
-#, python-format
-msgid "Could not do Paint. Overlap value has to be less than 100%%."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5066
-msgid "Nothing selected for painting."
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5072
-msgid "Invalid value for"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5131
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different method of Paint"
-msgstr ""
-
-#: appEditors/AppGeoEditor.py:5142
-msgid "Paint done."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:211
-msgid "To add an Pad first select a aperture in Aperture Table"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:218 appEditors/AppGerberEditor.py:418
-msgid "Aperture size is zero. It needs to be greater than zero."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:371 appEditors/AppGerberEditor.py:684
-msgid ""
-"Incompatible aperture type. Select an aperture with type 'C', 'R' or 'O'."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:383
-msgid "Done. Adding Pad completed."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:410
-msgid "To add an Pad Array first select a aperture in Aperture Table"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:490
-msgid "Click on the Pad Circular Array Start position"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:710
-msgid "Too many Pads for the selected spacing angle."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:733
-msgid "Done. Pad Array added."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:758
-msgid "Select shape(s) and then click ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:770
-msgid "Failed. Nothing selected."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:786
-msgid ""
-"Failed. Poligonize works only on geometries belonging to the same aperture."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:840
-msgid "Done. Poligonize completed."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:895 appEditors/AppGerberEditor.py:1119
-#: appEditors/AppGerberEditor.py:1143
-msgid "Corner Mode 1: 45 degrees ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:907 appEditors/AppGerberEditor.py:1219
-msgid "Click on next Point or click Right mouse button to complete ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:1107 appEditors/AppGerberEditor.py:1140
-msgid "Corner Mode 2: Reverse 45 degrees ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:1110 appEditors/AppGerberEditor.py:1137
-msgid "Corner Mode 3: 90 degrees ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:1113 appEditors/AppGerberEditor.py:1134
-msgid "Corner Mode 4: Reverse 90 degrees ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:1116 appEditors/AppGerberEditor.py:1131
-msgid "Corner Mode 5: Free angle ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:1193 appEditors/AppGerberEditor.py:1358
-#: appEditors/AppGerberEditor.py:1397
-msgid "Track Mode 1: 45 degrees ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:1338 appEditors/AppGerberEditor.py:1392
-msgid "Track Mode 2: Reverse 45 degrees ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:1343 appEditors/AppGerberEditor.py:1387
-msgid "Track Mode 3: 90 degrees ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:1348 appEditors/AppGerberEditor.py:1382
-msgid "Track Mode 4: Reverse 90 degrees ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:1353 appEditors/AppGerberEditor.py:1377
-msgid "Track Mode 5: Free angle ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:1787
-msgid "Scale the selected Gerber apertures ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:1829
-msgid "Buffer the selected apertures ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:1871
-msgid "Mark polygon areas in the edited Gerber ..."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:1937
-msgid "Nothing selected to move"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2062
-msgid "Done. Apertures Move completed."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2144
-msgid "Done. Apertures copied."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2462 appGUI/MainGUI.py:1527
-#: appGUI/ObjectUI.py:241
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:27
-msgid "Gerber Editor"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2482 appGUI/ObjectUI.py:281
-#: appObjects/FlatCAMObj.py:492 appTools/ToolProperties.py:162
-msgid "Apertures"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2484 appGUI/ObjectUI.py:283
-msgid "Apertures Table for the Gerber Object."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2495 appEditors/AppGerberEditor.py:3968
-#: appGUI/ObjectUI.py:316
-msgid "Code"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2495 appEditors/AppGerberEditor.py:3968
-#: 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/Tools2FiducialsPrefGroupUI.py:43
-#: appTools/ToolCopperThieving.py:1354 appTools/ToolCopperThieving.py:1394
-#: appTools/ToolFiducials.py:770
-msgid "Size"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2495 appEditors/AppGerberEditor.py:3968
-#: appGUI/ObjectUI.py:316
-msgid "Dim"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2500 appGUI/ObjectUI.py:320
-msgid "Index"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2502 appEditors/AppGerberEditor.py:2531
-#: appGUI/ObjectUI.py:322
-msgid "Aperture Code"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2504 appGUI/ObjectUI.py:324
-msgid "Type of aperture: circular, rectangle, macros etc"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2506 appGUI/ObjectUI.py:326
-msgid "Aperture Size:"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2508 appGUI/ObjectUI.py:328
-msgid ""
-"Aperture Dimensions:\n"
-" - (width, height) for R, O type.\n"
-" - (dia, nVertices) for P type"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2532
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:58
-msgid "Code for the new aperture"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2541
-msgid "Aperture Size"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2543
-msgid ""
-"Size for the new aperture.\n"
-"If aperture type is 'R' or 'O' then\n"
-"this value is automatically\n"
-"calculated as:\n"
-"sqrt(width**2 + height**2)"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2557
-msgid "Aperture Type"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2559
-msgid ""
-"Select the type of new aperture. Can be:\n"
-"C = circular\n"
-"R = rectangular\n"
-"O = oblong"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2570
-msgid "Aperture Dim"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2572
-msgid ""
-"Dimensions for the new aperture.\n"
-"Active only for rectangular apertures (type R).\n"
-"The format is (width, height)"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2581
-msgid "Add/Delete Aperture"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2583
-msgid "Add/Delete an aperture in the aperture table"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2592
-msgid "Add a new aperture to the aperture list."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2595 appEditors/AppGerberEditor.py:2743
-#: appGUI/MainGUI.py:757 appGUI/MainGUI.py:1093 appGUI/MainGUI.py:1577
-#: appGUI/MainGUI.py:2247 appGUI/MainGUI.py:4683 appGUI/ObjectUI.py:1088
-#: appObjects/FlatCAMGeometry.py:560 appTools/ToolIsolation.py:70
-#: appTools/ToolIsolation.py:3150 appTools/ToolNCC.py:69
-#: appTools/ToolNCC.py:3917 appTools/ToolPaint.py:143
-#: appTools/ToolPaint.py:2926 appTools/ToolSolderPaste.py:163
-#: appTools/ToolSolderPaste.py:1209 app_Main.py:6123
-msgid "Delete"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2597
-msgid "Delete a aperture in the aperture list"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2614
-msgid "Buffer Aperture"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2616
-msgid "Buffer a aperture in the aperture list"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2629
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:195
-msgid "Buffer distance"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2630
-msgid "Buffer corner"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2632
-msgid ""
-"There are 3 types of corners:\n"
-" - 'Round': the corner is rounded.\n"
-" - 'Square': the corner is met in a sharp angle.\n"
-" - 'Beveled': the corner is a line that directly connects the features "
-"meeting in the corner"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2662
-msgid "Scale Aperture"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2664
-msgid "Scale a aperture in the aperture list"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2672
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:210
-msgid "Scale factor"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2674
-msgid ""
-"The factor by which to scale the selected aperture.\n"
-"Values can be between 0.0000 and 999.9999"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2702
-msgid "Mark polygons"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2704
-msgid "Mark the polygon areas."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2712
-msgid "Area UPPER threshold"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2714
-msgid ""
-"The threshold value, all areas less than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2721
-msgid "Area LOWER threshold"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2723
-msgid ""
-"The threshold value, all areas more than this are marked.\n"
-"Can have a value between 0.0000 and 9999.9999"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2737
-msgid "Mark"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2739
-msgid "Mark the polygons that fit within limits."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2745
-msgid "Delete all the marked polygons."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2751
-msgid "Clear all the markings."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2771 appGUI/MainGUI.py:1065
-#: appGUI/MainGUI.py:2220 appGUI/MainGUI.py:4680
-msgid "Add Pad Array"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2773
-msgid "Add an array of pads (linear or circular array)"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2779
-msgid ""
-"Select the type of pads array to create.\n"
-"It can be Linear X(Y) or Circular"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2790
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:95
-msgid "Nr of pads"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2792
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:97
-msgid "Specify how many pads to be in the array."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:2841
-msgid ""
-"Angle at which the linear array is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is:  360.00 degrees."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:3352 appEditors/AppGerberEditor.py:3356
-msgid "Aperture code value is missing or wrong format. Add it and retry."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:3392
-msgid ""
-"Aperture dimensions value is missing or wrong format. Add it in format "
-"(width, height) and retry."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:3405
-msgid "Aperture size value is missing or wrong format. Add it and retry."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:3416
-msgid "Aperture already in the aperture table."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:3423
-msgid "Added new aperture with code"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:3455
-msgid " Select an aperture in Aperture Table"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:3463
-msgid "Select an aperture in Aperture Table -->"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:3477
-msgid "Deleted aperture with code"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:3545
-msgid "Dimensions need two float values separated by comma."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:3554
-msgid "Dimensions edited."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:4083
-msgid "Loading Gerber into Editor"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:4211
-msgid "Setting up the UI"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:4212
-msgid "Adding geometry finished. Preparing the GUI"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:4221
-msgid "Finished loading the Gerber object into the editor."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:4362
-msgid ""
-"There are no Aperture definitions in the file. Aborting Gerber creation."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:4364 appObjects/AppObject.py:156
-#: appObjects/FlatCAMGeometry.py:1916 appParsers/ParseExcellon.py:972
-#: appTools/ToolPcbWizard.py:318 app_Main.py:9004 app_Main.py:9064
-#: app_Main.py:9195 app_Main.py:9260 app_Main.py:9816
-msgid "An internal error has occurred. See shell.\n"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:4372
-msgid "Creating Gerber."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:4384
-msgid "Done. Gerber editing finished."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:4400
-msgid "Cancelled. No aperture is selected"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:4555 app_Main.py:6456
-msgid "Coordinates copied to clipboard."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:5002
-msgid "Failed. No aperture geometry is selected."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:5011 appEditors/AppGerberEditor.py:5282
-msgid "Done. Apertures geometry deleted."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:5154
-msgid "No aperture to buffer. Select at least one aperture and try again."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:5166 appTools/ToolCutOut.py:772
-#: appTools/ToolCutOut.py:895 appTools/ToolCutOut.py:1118
-#: appTools/ToolCutOut.py:1264 camlib.py:4899 camlib.py:5663
-msgid "Failed."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:5185
-msgid "Scale factor value is missing or wrong format. Add it and retry."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:5217
-msgid "No aperture to scale. Select at least one aperture and try again."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:5233
-msgid "Done. Scale Tool completed."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:5271
-msgid "Polygons marked."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:5274
-msgid "No polygons were marked. None fit within the limits."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:6002
-msgid "Rotation action was not executed."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:6044 app_Main.py:5879 app_Main.py:5927
-msgid "Flip action was not executed."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:6084
-msgid "Skew action was not executed."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:6123
-msgid "Scale action was not executed."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:6167
-msgid "Offset action was not executed."
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:6253
-msgid "Geometry shape offset Y cancelled"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:6268
-msgid "Geometry shape skew X cancelled"
-msgstr ""
-
-#: appEditors/AppGerberEditor.py:6283
-msgid "Geometry shape skew Y cancelled"
-msgstr ""
-
-#: appEditors/AppTextEditor.py:75
-msgid "Print Preview"
-msgstr ""
-
-#: appEditors/AppTextEditor.py:77
-msgid "Open a OS standard Preview Print window."
-msgstr ""
-
-#: appEditors/AppTextEditor.py:80
-msgid "Print Code"
-msgstr ""
-
-#: appEditors/AppTextEditor.py:82
-msgid "Open a OS standard Print window."
-msgstr ""
-
-#: appEditors/AppTextEditor.py:85
-msgid "Find in Code"
-msgstr ""
-
-#: appEditors/AppTextEditor.py:87
-msgid "Will search and highlight in yellow the string in the Find box."
-msgstr ""
-
-#: appEditors/AppTextEditor.py:91
-msgid "Find box. Enter here the strings to be searched in the text."
-msgstr ""
-
-#: appEditors/AppTextEditor.py:93
-msgid "Replace With"
-msgstr ""
-
-#: appEditors/AppTextEditor.py:95
-msgid ""
-"Will replace the string from the Find box with the one in the Replace box."
-msgstr ""
-
-#: appEditors/AppTextEditor.py:99
-msgid "String to replace the one in the Find box throughout the text."
-msgstr ""
-
-#: appEditors/AppTextEditor.py:101 appGUI/GUIElements.py:3508
-#: appGUI/ObjectUI.py:1807 appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:61
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: appTools/ToolIsolation.py:808 appTools/ToolIsolation.py:1433
-#: appTools/ToolIsolation.py:3378 appTools/ToolPaint.py:1035
-#: appTools/ToolPaint.py:3127 defaults.py:420 defaults.py:507
-#: tclCommands/TclCommandPaint.py:162
-msgid "All"
-msgstr ""
-
-#: appEditors/AppTextEditor.py:102
-msgid ""
-"When checked it will replace all instances in the 'Find' box\n"
-"with the text in the 'Replace' box.."
-msgstr ""
-
-#: appEditors/AppTextEditor.py:105
-msgid "Copy All"
-msgstr ""
-
-#: appEditors/AppTextEditor.py:107
-msgid "Will copy all the text in the Code Editor to the clipboard."
-msgstr ""
-
-#: appEditors/AppTextEditor.py:112
-msgid "Save changes internally."
-msgstr ""
-
-#: appEditors/AppTextEditor.py:115
-msgid "Open Code"
-msgstr ""
-
-#: appEditors/AppTextEditor.py:117
-msgid "Will open a text file in the editor."
-msgstr ""
-
-#: appEditors/AppTextEditor.py:120
-msgid "Save Code"
-msgstr ""
-
-#: appEditors/AppTextEditor.py:122
-msgid "Will save the text in the editor into a file."
-msgstr ""
-
-#: appEditors/AppTextEditor.py:125
-msgid "Run Code"
-msgstr ""
-
-#: appEditors/AppTextEditor.py:126
-msgid "Will run the TCL commands found in the text file, one by one."
-msgstr ""
-
-#: appEditors/AppTextEditor.py:224 appEditors/appGCodeEditor.py:602
-msgid "Open file"
-msgstr ""
-
-#: appEditors/AppTextEditor.py:255 appEditors/AppTextEditor.py:260
-#: appObjects/FlatCAMCNCJob.py:1632 appObjects/FlatCAMCNCJob.py:1637
-#: appObjects/FlatCAMCNCJob.py:1822 appObjects/FlatCAMCNCJob.py:1827
-#: appObjects/FlatCAMCNCJob.py:1900 appObjects/FlatCAMCNCJob.py:1905
-#: appTools/ToolSolderPaste.py:1063 app_Main.py:7038 app_Main.py:7043
-msgid "Export Code ..."
-msgstr ""
-
-#: appEditors/AppTextEditor.py:314 appObjects/FlatCAMCNCJob.py:1654
-#: appObjects/FlatCAMCNCJob.py:1844 appObjects/FlatCAMCNCJob.py:2293
-#: appTools/ToolSolderPaste.py:1093
-msgid "No such file or directory"
-msgstr ""
-
-#: appEditors/AppTextEditor.py:326 appObjects/FlatCAMCNCJob.py:2307
-msgid "Saved to"
-msgstr ""
-
-#: appEditors/AppTextEditor.py:374
-msgid "Content copied to clipboard ..."
-msgstr ""
-
-#: appEditors/appGCodeEditor.py:66 app_Main.py:7899
-msgid "Code Editor"
-msgstr ""
-
-#: appEditors/appGCodeEditor.py:143 appEditors/appGCodeEditor.py:235
-msgid "All GCode"
-msgstr ""
-
-#: appEditors/appGCodeEditor.py:149 appEditors/appGCodeEditor.py:241
-msgid "Header GCode"
-msgstr ""
-
-#: appEditors/appGCodeEditor.py:155 appEditors/appGCodeEditor.py:247
-#, fuzzy
-#| msgid "Starting G-Code..."
-msgid "Start GCode"
-msgstr "Starting G-Code..."
-
-#: appEditors/appGCodeEditor.py:577 appObjects/FlatCAMCNCJob.py:1998
-#: appTools/ToolCalibration.py:447
-msgid "Loaded Machine Code into Code Editor"
-msgstr ""
-
-#: appEditors/appGCodeEditor.py:667 appGUI/ObjectUI.py:1827
-msgid "GCode Editor"
-msgstr ""
-
-#: appEditors/appGCodeEditor.py:692 appEditors/appGCodeEditor.py:703
-#: appGUI/ObjectUI.py:955 appGUI/ObjectUI.py:1952 appGUI/ObjectUI.py:1962
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138
-#: appTools/ToolCopperThieving.py:1314
-msgid "Dia"
-msgstr ""
-
-#: appEditors/appGCodeEditor.py:692 appGUI/ObjectUI.py:955
-#: appGUI/ObjectUI.py:1952 appTools/ToolIsolation.py:3022
-#: appTools/ToolNCC.py:3778 appTools/ToolPaint.py:2813
-msgid "TT"
-msgstr ""
-
-#: appEditors/appGCodeEditor.py:703 appGUI/ObjectUI.py:640
-#: appGUI/ObjectUI.py:1962
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71
-#: appObjects/FlatCAMObj.py:499 appTools/ToolDrilling.py:2065
-#: appTools/ToolMilling.py:1670 appTools/ToolMilling.py:1769
-#: appTools/ToolProperties.py:169
-msgid "Drills"
-msgstr ""
-
-#: appEditors/appGCodeEditor.py:703 appGUI/ObjectUI.py:640
-#: appGUI/ObjectUI.py:1962
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:72
-#: appObjects/FlatCAMObj.py:501 appTools/ToolDrilling.py:2065
-#: appTools/ToolMilling.py:1670 appTools/ToolMilling.py:1770
-#: appTools/ToolProperties.py:171
-msgid "Slots"
-msgstr ""
-
-#: appEditors/appGCodeEditor.py:712 appEditors/appGCodeEditor.py:734
-msgid "CNC Code Snippet"
-msgstr ""
-
-#: appEditors/appGCodeEditor.py:714 appEditors/appGCodeEditor.py:736
-msgid "Code snippet defined in Preferences."
-msgstr ""
-
-#: appEditors/appGCodeEditor.py:720 appEditors/appGCodeEditor.py:742
-#, fuzzy
-#| msgid ""
-#| "Type here any G-Code commands you would\n"
-#| "like to add to the beginning of the generated file."
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to insert at the cursor location."
-msgstr ""
-"Type here any G-Code commands you would\n"
-"like to add to the beginning of the generated file."
-
-#: appEditors/appGCodeEditor.py:726 appEditors/appGCodeEditor.py:748
-#, fuzzy
-#| msgid "Aperture Code:"
-msgid "Insert Code"
-msgstr "Aperture Code:"
-
-#: appEditors/appGCodeEditor.py:729 appEditors/appGCodeEditor.py:751
-msgid "Insert the code above at the cursor location."
-msgstr ""
-
-#: appGUI/GUIElements.py:2959
-msgid ""
-"The reference can be:\n"
-"- Absolute -> the reference point is point (0,0)\n"
-"- Relative -> the reference point is the mouse position before Jump"
-msgstr ""
-
-#: appGUI/GUIElements.py:2964
-msgid "Abs"
-msgstr ""
-
-#: appGUI/GUIElements.py:2965
-msgid "Relative"
-msgstr ""
-
-#: appGUI/GUIElements.py:2975
-msgid "Location"
-msgstr ""
-
-#: appGUI/GUIElements.py:2977
-msgid ""
-"The Location value is a tuple (x,y).\n"
-"If the reference is Absolute then the Jump will be at the position (x,y).\n"
-"If the reference is Relative then the Jump will be at the (x,y) distance\n"
-"from the current mouse location point."
-msgstr ""
-
-#: appGUI/GUIElements.py:3017
-msgid "Save Log"
-msgstr ""
-
-#: appGUI/GUIElements.py:3027 app_Main.py:2803 app_Main.py:3175
-#: app_Main.py:3348
-msgid "Close"
-msgstr ""
-
-#: appGUI/GUIElements.py:3036 appTools/ToolShell.py:296
-msgid "Type >help< to get started"
-msgstr ""
-
-#: appGUI/GUIElements.py:3403 appGUI/GUIElements.py:3420
-msgid "Jog the Y axis."
-msgstr ""
-
-#: appGUI/GUIElements.py:3411
-msgid "Move to Origin."
-msgstr ""
-
-#: appGUI/GUIElements.py:3428 appGUI/GUIElements.py:3436
-msgid "Jog the X axis."
-msgstr ""
-
-#: appGUI/GUIElements.py:3446 appGUI/GUIElements.py:3456
-msgid "Jog the Z axis."
-msgstr ""
-
-#: appGUI/GUIElements.py:3482
-msgid "Zero the CNC X axes at current position."
-msgstr ""
-
-#: appGUI/GUIElements.py:3490
-msgid "Zero the CNC Y axes at current position."
-msgstr ""
-
-#: appGUI/GUIElements.py:3495
-msgid "Z"
-msgstr ""
-
-#: appGUI/GUIElements.py:3498
-msgid "Zero the CNC Z axes at current position."
-msgstr ""
-
-#: appGUI/GUIElements.py:3502
-msgid "Do Home"
-msgstr ""
-
-#: appGUI/GUIElements.py:3504
-msgid "Perform a homing cycle on all axis."
-msgstr ""
-
-#: appGUI/GUIElements.py:3512
-msgid "Zero all CNC axes at current position."
-msgstr ""
-
-#: appGUI/GUIElements.py:3667 appGUI/GUIElements.py:3676
-msgid "Idle."
-msgstr ""
-
-#: appGUI/GUIElements.py:3709
-msgid "Application started ..."
-msgstr ""
-
-#: appGUI/GUIElements.py:3710
-msgid "Hello!"
-msgstr ""
-
-#: appGUI/GUIElements.py:3757 appGUI/MainGUI.py:190 appGUI/MainGUI.py:918
-#: appGUI/MainGUI.py:2073
-msgid "Run Script ..."
-msgstr ""
-
-#: appGUI/GUIElements.py:3759 appGUI/MainGUI.py:192
-msgid ""
-"Will run the opened Tcl Script thus\n"
-"enabling the automation of certain\n"
-"functions of FlatCAM."
-msgstr ""
-
-#: appGUI/GUIElements.py:3768 appGUI/MainGUI.py:118
-#: appTools/ToolPcbWizard.py:390 appTools/ToolPcbWizard.py:397
-msgid "Open"
-msgstr ""
-
-#: appGUI/GUIElements.py:3772
-msgid "Open Project ..."
-msgstr ""
-
-#: appGUI/GUIElements.py:3778 appGUI/MainGUI.py:129
-msgid "Open &Gerber ...\tCtrl+G"
-msgstr ""
-
-#: appGUI/GUIElements.py:3783 appGUI/MainGUI.py:134
-msgid "Open &Excellon ...\tCtrl+E"
-msgstr ""
-
-#: appGUI/GUIElements.py:3788 appGUI/MainGUI.py:139
-msgid "Open G-&Code ..."
-msgstr ""
-
-#: appGUI/GUIElements.py:3798
-msgid "Exit"
-msgstr ""
-
-#: appGUI/MainGUI.py:67 appGUI/MainGUI.py:69 appGUI/MainGUI.py:1457
-msgid "Toggle Panel"
-msgstr ""
-
-#: appGUI/MainGUI.py:79
-msgid "File"
-msgstr ""
-
-#: appGUI/MainGUI.py:84
-msgid "&New Project ...\tCtrl+N"
-msgstr ""
-
-#: appGUI/MainGUI.py:86
-msgid "Will create a new, blank project"
-msgstr ""
-
-#: appGUI/MainGUI.py:91
-msgid "&New"
-msgstr ""
-
-#: appGUI/MainGUI.py:95
-msgid "Geometry\tN"
-msgstr ""
-
-#: appGUI/MainGUI.py:97
-msgid "Will create a new, empty Geometry Object."
-msgstr ""
-
-#: appGUI/MainGUI.py:100
-msgid "Gerber\tB"
-msgstr ""
-
-#: appGUI/MainGUI.py:102
-msgid "Will create a new, empty Gerber Object."
-msgstr ""
-
-#: appGUI/MainGUI.py:105
-msgid "Excellon\tL"
-msgstr ""
-
-#: appGUI/MainGUI.py:107
-msgid "Will create a new, empty Excellon Object."
-msgstr ""
-
-#: appGUI/MainGUI.py:112
-msgid "Document\tD"
-msgstr ""
-
-#: appGUI/MainGUI.py:114
-msgid "Will create a new, empty Document Object."
-msgstr ""
-
-#: appGUI/MainGUI.py:123
-msgid "Open &Project ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:146
-msgid "Open Config ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:151
-msgid "Recent projects"
-msgstr ""
-
-#: appGUI/MainGUI.py:153
-msgid "Recent files"
-msgstr ""
-
-#: appGUI/MainGUI.py:156 appGUI/MainGUI.py:759 appGUI/MainGUI.py:1430
-msgid "Save"
-msgstr ""
-
-#: appGUI/MainGUI.py:160
-msgid "&Save Project ...\tCtrl+S"
-msgstr ""
-
-#: appGUI/MainGUI.py:165
-msgid "Save Project &As ...\tCtrl+Shift+S"
-msgstr ""
-
-#: appGUI/MainGUI.py:180
-msgid "Scripting"
-msgstr ""
-
-#: appGUI/MainGUI.py:184 appGUI/MainGUI.py:914 appGUI/MainGUI.py:2069
-msgid "New Script ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:186 appGUI/MainGUI.py:916 appGUI/MainGUI.py:2071
-msgid "Open Script ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:188
-msgid "Open Example ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:207
-msgid "Import"
-msgstr ""
-
-#: appGUI/MainGUI.py:209
-msgid "&SVG as Geometry Object ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:212
-msgid "&SVG as Gerber Object ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:217
-msgid "&DXF as Geometry Object ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:220
-msgid "&DXF as Gerber Object ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:224
-msgid "HPGL2 as Geometry Object ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:230
-msgid "Export"
-msgstr ""
-
-#: appGUI/MainGUI.py:234
-msgid "Export &SVG ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:238
-msgid "Export DXF ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:244
-msgid "Export &PNG ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:246
-msgid ""
-"Will export an image in PNG format,\n"
-"the saved image will contain the visual \n"
-"information currently in FlatCAM Plot Area."
-msgstr ""
-
-#: appGUI/MainGUI.py:255
-msgid "Export &Excellon ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:257
-msgid ""
-"Will export an Excellon Object as Excellon file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Excellon Export."
-msgstr ""
-
-#: appGUI/MainGUI.py:264
-msgid "Export &Gerber ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:266
-msgid ""
-"Will export an Gerber Object as Gerber file,\n"
-"the coordinates format, the file units and zeros\n"
-"are set in Preferences -> Gerber Export."
-msgstr ""
-
-#: appGUI/MainGUI.py:276
-msgid "Backup"
-msgstr ""
-
-#: appGUI/MainGUI.py:281
-msgid "Import Preferences from file ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:287
-msgid "Export Preferences to file ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:295 appGUI/preferences/PreferencesUIManager.py:1172
-msgid "Save Preferences"
-msgstr ""
-
-#: appGUI/MainGUI.py:301 appGUI/MainGUI.py:4270
-msgid "Print (PDF)"
-msgstr ""
-
-#: appGUI/MainGUI.py:309
-msgid "E&xit"
-msgstr ""
-
-#: appGUI/MainGUI.py:317 appGUI/MainGUI.py:753 appGUI/MainGUI.py:1579
-msgid "Edit"
-msgstr ""
-
-#: appGUI/MainGUI.py:321
-msgid "Edit Object\tE"
-msgstr ""
-
-#: appGUI/MainGUI.py:323
-msgid "Close Editor\tCtrl+S"
-msgstr ""
-
-#: appGUI/MainGUI.py:333
-msgid "Conversion"
-msgstr ""
-
-#: appGUI/MainGUI.py:336
-msgid "Convert Single to MultiGeo"
-msgstr ""
-
-#: appGUI/MainGUI.py:338
-msgid ""
-"Will convert a Geometry object from single_geometry type\n"
-"to a multi_geometry type."
-msgstr ""
-
-#: appGUI/MainGUI.py:342
-msgid "Convert Multi to SingleGeo"
-msgstr ""
-
-#: appGUI/MainGUI.py:344
-msgid ""
-"Will convert a Geometry object from multi_geometry type\n"
-"to a single_geometry type."
-msgstr ""
-
-#: appGUI/MainGUI.py:351
-msgid "Convert Any to Geo"
-msgstr ""
-
-#: appGUI/MainGUI.py:354
-msgid "Convert Any to Gerber"
-msgstr ""
-
-#: appGUI/MainGUI.py:357
-msgid "Convert Any to Excellon"
-msgstr ""
-
-#: appGUI/MainGUI.py:362
-#, fuzzy
-#| msgid "Box Object"
-msgid "Join Objects"
-msgstr "Box Object"
-
-#: appGUI/MainGUI.py:364
-msgid "&Join Geo/Gerber/Exc -> Geo"
-msgstr ""
-
-#: appGUI/MainGUI.py:366
-msgid ""
-"Merge a selection of objects, which can be of type:\n"
-"- Gerber\n"
-"- Excellon\n"
-"- Geometry\n"
-"into a new combo Geometry object."
-msgstr ""
-
-#: appGUI/MainGUI.py:373
-msgid "Join Excellon(s) -> Excellon"
-msgstr ""
-
-#: appGUI/MainGUI.py:375
-msgid "Merge a selection of Excellon objects into a new combo Excellon object."
-msgstr ""
-
-#: appGUI/MainGUI.py:378
-msgid "Join Gerber(s) -> Gerber"
-msgstr ""
-
-#: appGUI/MainGUI.py:380
-msgid "Merge a selection of Gerber objects into a new combo Gerber object."
-msgstr ""
-
-#: appGUI/MainGUI.py:388
-msgid "&Copy\tCtrl+C"
-msgstr ""
-
-#: appGUI/MainGUI.py:393
-msgid "&Delete\tDEL"
-msgstr ""
-
-#: appGUI/MainGUI.py:398
-msgid "Se&t Origin\tO"
-msgstr ""
-
-#: appGUI/MainGUI.py:400
-msgid "Move to Origin\tShift+O"
-msgstr ""
-
-#: appGUI/MainGUI.py:403
-msgid "Jump to Location\tJ"
-msgstr ""
-
-#: appGUI/MainGUI.py:405
-msgid "Locate in Object\tShift+J"
-msgstr ""
-
-#: appGUI/MainGUI.py:410
-msgid "Toggle Units\tQ"
-msgstr ""
-
-#: appGUI/MainGUI.py:412
-msgid "&Select All\tCtrl+A"
-msgstr ""
-
-#: appGUI/MainGUI.py:417
-msgid "&Preferences\tShift+P"
-msgstr ""
-
-#: appGUI/MainGUI.py:423 appObjects/FlatCAMObj.py:488
-#: appTools/ToolProperties.py:158
-msgid "Options"
-msgstr ""
-
-#: appGUI/MainGUI.py:425
-msgid "&Rotate Selection\tShift+(R)"
-msgstr ""
-
-#: appGUI/MainGUI.py:430
-msgid "&Skew on X axis\tShift+X"
-msgstr ""
-
-#: appGUI/MainGUI.py:432
-msgid "S&kew on Y axis\tShift+Y"
-msgstr ""
-
-#: appGUI/MainGUI.py:437
-msgid "Flip on &X axis\tX"
-msgstr ""
-
-#: appGUI/MainGUI.py:439
-msgid "Flip on &Y axis\tY"
-msgstr ""
-
-#: appGUI/MainGUI.py:444
-msgid "View source\tAlt+S"
-msgstr ""
-
-#: appGUI/MainGUI.py:446
-msgid "Tools DataBase\tCtrl+D"
-msgstr ""
-
-#: appGUI/MainGUI.py:453 appGUI/MainGUI.py:1477
-msgid "View"
-msgstr ""
-
-#: appGUI/MainGUI.py:455
-msgid "Enable all plots\tAlt+1"
-msgstr ""
-
-#: appGUI/MainGUI.py:457
-msgid "Disable all plots\tAlt+2"
-msgstr ""
-
-#: appGUI/MainGUI.py:459
-msgid "Disable non-selected\tAlt+3"
-msgstr ""
-
-#: appGUI/MainGUI.py:463
-msgid "&Zoom Fit\tV"
-msgstr ""
-
-#: appGUI/MainGUI.py:465
-msgid "&Zoom In\t="
-msgstr ""
-
-#: appGUI/MainGUI.py:467
-msgid "&Zoom Out\t-"
-msgstr ""
-
-#: appGUI/MainGUI.py:472
-msgid "Redraw All\tF5"
-msgstr ""
-
-#: appGUI/MainGUI.py:476
-msgid "Toggle Code Editor\tShift+E"
-msgstr ""
-
-#: appGUI/MainGUI.py:479
-msgid "&Toggle FullScreen\tAlt+F10"
-msgstr ""
-
-#: appGUI/MainGUI.py:481
-msgid "&Toggle Plot Area\tCtrl+F10"
-msgstr ""
-
-#: appGUI/MainGUI.py:483
-msgid "&Toggle Project/Sel/Tool\t`"
-msgstr ""
-
-#: appGUI/MainGUI.py:487
-msgid "&Toggle Grid Snap\tG"
-msgstr ""
-
-#: appGUI/MainGUI.py:489
-msgid "&Toggle Grid Lines\tAlt+G"
-msgstr ""
-
-#: appGUI/MainGUI.py:491
-msgid "&Toggle Axis\tShift+G"
-msgstr ""
-
-#: appGUI/MainGUI.py:493
-msgid "Toggle Workspace\tShift+W"
-msgstr ""
-
-#: appGUI/MainGUI.py:495
-msgid "Toggle HUD\tAlt+H"
-msgstr ""
-
-#: appGUI/MainGUI.py:500
-msgid "Objects"
-msgstr ""
-
-#: appGUI/MainGUI.py:503 appGUI/MainGUI.py:4268
-#: appObjects/ObjectCollection.py:1128 appObjects/ObjectCollection.py:1175
-msgid "Select All"
-msgstr ""
-
-#: appGUI/MainGUI.py:505 appObjects/ObjectCollection.py:1132
-#: appObjects/ObjectCollection.py:1179
-msgid "Deselect All"
-msgstr ""
-
-#: appGUI/MainGUI.py:514
-msgid "&Command Line\tS"
-msgstr ""
-
-#: appGUI/MainGUI.py:519
-msgid "Help"
-msgstr ""
-
-#: appGUI/MainGUI.py:521
-msgid "Online Help\tF1"
-msgstr ""
-
-#: appGUI/MainGUI.py:527 app_Main.py:3313 app_Main.py:3322
-msgid "Bookmarks Manager"
-msgstr ""
-
-#: appGUI/MainGUI.py:531
-msgid "Report a bug"
-msgstr ""
-
-#: appGUI/MainGUI.py:534
-msgid "Excellon Specification"
-msgstr ""
-
-#: appGUI/MainGUI.py:536
-msgid "Gerber Specification"
-msgstr ""
-
-#: appGUI/MainGUI.py:541
-msgid "Shortcuts List\tF3"
-msgstr ""
-
-#: appGUI/MainGUI.py:543
-msgid "YouTube Channel\tF4"
-msgstr ""
-
-#: appGUI/MainGUI.py:548
-msgid "How To"
-msgstr ""
-
-#: appGUI/MainGUI.py:551 app_Main.py:2770
-msgid "About FlatCAM"
-msgstr ""
-
-#: appGUI/MainGUI.py:560
-msgid "Add Circle\tO"
-msgstr ""
-
-#: appGUI/MainGUI.py:563
-msgid "Add Arc\tA"
-msgstr ""
-
-#: appGUI/MainGUI.py:566
-msgid "Add Rectangle\tR"
-msgstr ""
-
-#: appGUI/MainGUI.py:569
-msgid "Add Polygon\tN"
-msgstr ""
-
-#: appGUI/MainGUI.py:572
-msgid "Add Path\tP"
-msgstr ""
-
-#: appGUI/MainGUI.py:575
-msgid "Add Text\tT"
-msgstr ""
-
-#: appGUI/MainGUI.py:578
-msgid "Polygon Union\tU"
-msgstr ""
-
-#: appGUI/MainGUI.py:580
-msgid "Polygon Intersection\tE"
-msgstr ""
-
-#: appGUI/MainGUI.py:582
-msgid "Polygon Subtraction\tS"
-msgstr ""
-
-#: appGUI/MainGUI.py:586
-msgid "Cut Path\tX"
-msgstr ""
-
-#: appGUI/MainGUI.py:590
-msgid "Copy Geom\tC"
-msgstr ""
-
-#: appGUI/MainGUI.py:592
-msgid "Delete Shape\tDEL"
-msgstr ""
-
-#: appGUI/MainGUI.py:596 appGUI/MainGUI.py:683
-msgid "Move\tM"
-msgstr ""
-
-#: appGUI/MainGUI.py:598
-msgid "Buffer Tool\tB"
-msgstr ""
-
-#: appGUI/MainGUI.py:601
-msgid "Paint Tool\tI"
-msgstr ""
-
-#: appGUI/MainGUI.py:604
-msgid "Transform Tool\tAlt+R"
-msgstr ""
-
-#: appGUI/MainGUI.py:608
-msgid "Toggle Corner Snap\tK"
-msgstr ""
-
-#: appGUI/MainGUI.py:614
-msgid ">Excellon Editor<"
-msgstr ""
-
-#: appGUI/MainGUI.py:618
-msgid "Add Drill Array\tA"
-msgstr ""
-
-#: appGUI/MainGUI.py:620
-msgid "Add Drill\tD"
-msgstr ""
-
-#: appGUI/MainGUI.py:624
-msgid "Add Slot Array\tQ"
-msgstr ""
-
-#: appGUI/MainGUI.py:626
-msgid "Add Slot\tW"
-msgstr ""
-
-#: appGUI/MainGUI.py:630
-msgid "Resize Drill(S)\tR"
-msgstr ""
-
-#: appGUI/MainGUI.py:633 appGUI/MainGUI.py:677
-msgid "Copy\tC"
-msgstr ""
-
-#: appGUI/MainGUI.py:635 appGUI/MainGUI.py:679
-msgid "Delete\tDEL"
-msgstr ""
-
-#: appGUI/MainGUI.py:640
-msgid "Move Drill(s)\tM"
-msgstr ""
-
-#: appGUI/MainGUI.py:645
-msgid ">Gerber Editor<"
-msgstr ""
-
-#: appGUI/MainGUI.py:649
-msgid "Add Pad\tP"
-msgstr ""
-
-#: appGUI/MainGUI.py:651
-msgid "Add Pad Array\tA"
-msgstr ""
-
-#: appGUI/MainGUI.py:653
-msgid "Add Track\tT"
-msgstr ""
-
-#: appGUI/MainGUI.py:655
-msgid "Add Region\tN"
-msgstr ""
-
-#: appGUI/MainGUI.py:659
-msgid "Poligonize\tAlt+N"
-msgstr ""
-
-#: appGUI/MainGUI.py:661
-msgid "Add SemiDisc\tE"
-msgstr ""
-
-#: appGUI/MainGUI.py:663
-msgid "Add Disc\tD"
-msgstr ""
-
-#: appGUI/MainGUI.py:665
-msgid "Buffer\tB"
-msgstr ""
-
-#: appGUI/MainGUI.py:667
-msgid "Scale\tS"
-msgstr ""
-
-#: appGUI/MainGUI.py:669
-msgid "Mark Area\tAlt+A"
-msgstr ""
-
-#: appGUI/MainGUI.py:671
-msgid "Eraser\tCtrl+E"
-msgstr ""
-
-#: appGUI/MainGUI.py:673
-msgid "Transform\tAlt+R"
-msgstr ""
-
-#: appGUI/MainGUI.py:700
-msgid "Enable Plot"
-msgstr ""
-
-#: appGUI/MainGUI.py:702
-msgid "Disable Plot"
-msgstr ""
-
-#: appGUI/MainGUI.py:706
-msgid "Set Color"
-msgstr ""
-
-#: appGUI/MainGUI.py:709 app_Main.py:10083
-msgid "Red"
-msgstr ""
-
-#: appGUI/MainGUI.py:712 app_Main.py:10085
-msgid "Blue"
-msgstr ""
-
-#: appGUI/MainGUI.py:715 app_Main.py:10088
-msgid "Yellow"
-msgstr ""
-
-#: appGUI/MainGUI.py:718 app_Main.py:10090
-msgid "Green"
-msgstr ""
-
-#: appGUI/MainGUI.py:721 app_Main.py:10092
-msgid "Purple"
-msgstr ""
-
-#: appGUI/MainGUI.py:724 app_Main.py:10094
-msgid "Brown"
-msgstr ""
-
-#: appGUI/MainGUI.py:727 app_Main.py:10096 app_Main.py:10152
-msgid "White"
-msgstr ""
-
-#: appGUI/MainGUI.py:730 app_Main.py:10098
-msgid "Black"
-msgstr ""
-
-#: appGUI/MainGUI.py:735 app_Main.py:10101
-msgid "Custom"
-msgstr ""
-
-#: appGUI/MainGUI.py:740 app_Main.py:10135
-msgid "Opacity"
-msgstr ""
-
-#: appGUI/MainGUI.py:743 app_Main.py:10111
-msgid "Default"
-msgstr ""
-
-#: appGUI/MainGUI.py:748
-msgid "Generate CNC"
-msgstr ""
-
-#: appGUI/MainGUI.py:750
-msgid "View Source"
-msgstr ""
-
-#: appGUI/MainGUI.py:755 appGUI/MainGUI.py:874 appGUI/MainGUI.py:1091
-#: appGUI/MainGUI.py:1575 appGUI/MainGUI.py:2032 appGUI/MainGUI.py:2245
-#: appGUI/MainGUI.py:4680 appGUI/ObjectUI.py:1081
-#: appObjects/FlatCAMGeometry.py:557 appTools/ToolPanelize.py:325
-#: appTools/ToolPanelize.py:351 appTools/ToolPanelize.py:448
-#: appTools/ToolPanelize.py:477 appTools/ToolPanelize.py:538
-msgid "Copy"
-msgstr ""
-
-#: appGUI/MainGUI.py:763 appGUI/MainGUI.py:1236 appGUI/MainGUI.py:1588
-#: appTools/ToolProperties.py:31
-msgid "Properties"
-msgstr ""
-
-#: appGUI/MainGUI.py:792
-msgid "File Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:796
-msgid "Edit Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:800
-msgid "View Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:804
-msgid "Shell Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:808
-msgid "Tools Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:812
-msgid "Excellon Editor Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:818
-msgid "Geometry Editor Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:822
-msgid "Gerber Editor Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:827 appGUI/MainGUI.py:1886
-msgid "Delta Coordinates Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:830 appGUI/MainGUI.py:1894
-#, fuzzy
-#| msgid "Coordinates decimals"
-msgid "Coordinates Toolbar"
-msgstr "Coordinates decimals"
-
-#: appGUI/MainGUI.py:833 appGUI/MainGUI.py:1902
-msgid "Grid Toolbar"
-msgstr ""
-
-#: appGUI/MainGUI.py:842 appGUI/MainGUI.py:1910
-#, fuzzy
-#| msgid "Slots Tool dia:"
-msgid "Status Toolbar"
-msgstr "Slots Tool dia:"
-
-#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:7104
-#: app_Main.py:7109
-msgid "Open Gerber"
-msgstr ""
-
-#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:7144
-#: app_Main.py:7149
-msgid "Open Excellon"
-msgstr ""
-
-#: appGUI/MainGUI.py:859 appGUI/MainGUI.py:2016
-msgid "Open project"
-msgstr ""
-
-#: appGUI/MainGUI.py:861 appGUI/MainGUI.py:2018
-msgid "Save project"
-msgstr ""
-
-#: appGUI/MainGUI.py:867 appGUI/MainGUI.py:2024
-msgid "Editor"
-msgstr ""
-
-#: appGUI/MainGUI.py:869 appGUI/MainGUI.py:2027
-msgid "Save Object and close the Editor"
-msgstr ""
-
-#: appGUI/MainGUI.py:876 appGUI/MainGUI.py:2034
-msgid "&Delete"
-msgstr ""
-
-#: appGUI/MainGUI.py:879 appGUI/MainGUI.py:2037 appGUI/MainGUI.py:4269
-#: appGUI/MainGUI.py:4477 appTools/ToolDistance.py:100
-#: appTools/ToolDistance.py:544
-msgid "Distance Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:881 appGUI/MainGUI.py:2039
-msgid "Distance Min Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:883 appGUI/MainGUI.py:2041 appGUI/MainGUI.py:4262
-msgid "Set Origin"
-msgstr ""
-
-#: appGUI/MainGUI.py:885 appGUI/MainGUI.py:2043
-msgid "Move to Origin"
-msgstr ""
-
-#: appGUI/MainGUI.py:888 appGUI/MainGUI.py:2045
-msgid "Jump to Location"
-msgstr ""
-
-#: appGUI/MainGUI.py:890 appGUI/MainGUI.py:2047 appGUI/MainGUI.py:4274
-msgid "Locate in Object"
-msgstr ""
-
-#: appGUI/MainGUI.py:896 appGUI/MainGUI.py:2053
-msgid "&Replot"
-msgstr ""
-
-#: appGUI/MainGUI.py:898 appGUI/MainGUI.py:2055
-msgid "&Clear plot"
-msgstr ""
-
-#: appGUI/MainGUI.py:900 appGUI/MainGUI.py:2057 appGUI/MainGUI.py:4265
-msgid "Zoom In"
-msgstr ""
-
-#: appGUI/MainGUI.py:902 appGUI/MainGUI.py:2059 appGUI/MainGUI.py:4265
-msgid "Zoom Out"
-msgstr ""
-
-#: appGUI/MainGUI.py:904 appGUI/MainGUI.py:1479 appGUI/MainGUI.py:2061
-#: appGUI/MainGUI.py:4264
-msgid "Zoom Fit"
-msgstr ""
-
-#: appGUI/MainGUI.py:912 appGUI/MainGUI.py:2067
-msgid "&Command Line"
-msgstr ""
-
-#: appGUI/MainGUI.py:924 appGUI/MainGUI.py:2079
-msgid "2Sided Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:926 appGUI/MainGUI.py:2081 appGUI/MainGUI.py:4280
-msgid "Align Objects Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:928 appGUI/MainGUI.py:2083 appGUI/MainGUI.py:4280
-#: appTools/ToolExtractDrills.py:98
-msgid "Extract Drills Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:931 appGUI/ObjectUI.py:387 appTools/ToolCutOut.py:156
-#: appTools/ToolCutOut.py:2052
-msgid "Cutout Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:933 appGUI/MainGUI.py:2088 appGUI/ObjectUI.py:372
-#: appGUI/ObjectUI.py:1742 appTools/ToolNCC.py:197
-msgid "NCC Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:937 appGUI/MainGUI.py:2092 appGUI/MainGUI.py:4282
-#: appTools/ToolIsolation.py:191 appTools/ToolIsolation.py:2938
-msgid "Isolation Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:939 appGUI/MainGUI.py:2094 appGUI/ObjectUI.py:695
-#: appTools/ToolDrilling.py:245 appTools/ToolDrilling.py:1979
-#: appTools/ToolMilling.py:169
-#, fuzzy
-#| msgid "Drills Tool dia:"
-msgid "Drilling Tool"
-msgstr "Drills Tool dia:"
-
-#: appGUI/MainGUI.py:943 appGUI/MainGUI.py:2098
-msgid "Panel Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:945 appGUI/MainGUI.py:2100 appTools/ToolFilm.py:108
-msgid "Film Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:947 appGUI/MainGUI.py:2102 appTools/ToolSolderPaste.py:116
-msgid "SolderPaste Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:949 appGUI/MainGUI.py:2104 appGUI/MainGUI.py:4287
-#: appTools/ToolSub.py:611
-msgid "Subtract Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:951 appGUI/MainGUI.py:2106 appTools/ToolRulesCheck.py:115
-msgid "Rules Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:953 appGUI/MainGUI.py:2108 appGUI/MainGUI.py:4284
-#: appTools/ToolOptimal.py:103 appTools/ToolOptimal.py:390
-msgid "Optimal Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:958 appGUI/MainGUI.py:2113 appGUI/MainGUI.py:4280
-msgid "Calculators Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:962 appGUI/MainGUI.py:2117 appGUI/MainGUI.py:4285
-#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:628
-msgid "QRCode Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:964 appGUI/MainGUI.py:2119 appGUI/MainGUI.py:4282
-#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1131
-msgid "Copper Thieving Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:967 appGUI/MainGUI.py:2122 appGUI/MainGUI.py:4281
-#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:648
-msgid "Fiducials Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:969 appGUI/MainGUI.py:2124 appTools/ToolCalibration.py:115
-#: appTools/ToolCalibration.py:735
-msgid "Calibration Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:971 appGUI/MainGUI.py:2126 appGUI/MainGUI.py:4282
-msgid "Punch Gerber Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:973 appGUI/MainGUI.py:2128
-#: appTools/ToolInvertGerber.py:175
-msgid "Invert Gerber Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:975 appGUI/MainGUI.py:2130 appGUI/MainGUI.py:4284
-#: appTools/ToolCorners.py:297
-msgid "Corner Markers Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:977 appGUI/MainGUI.py:2132
-#: appTools/ToolEtchCompensation.py:80 appTools/ToolEtchCompensation.py:251
-msgid "Etch Compensation Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:983 appGUI/MainGUI.py:1009 appGUI/MainGUI.py:1061
-#: appGUI/MainGUI.py:2138 appGUI/MainGUI.py:2216
-msgid "Select"
-msgstr ""
-
-#: appGUI/MainGUI.py:985 appGUI/MainGUI.py:2140
-msgid "Add Drill Hole"
-msgstr ""
-
-#: appGUI/MainGUI.py:987 appGUI/MainGUI.py:2142
-msgid "Add Drill Hole Array"
-msgstr ""
-
-#: appGUI/MainGUI.py:989 appGUI/MainGUI.py:1567 appGUI/MainGUI.py:2146
-#: appGUI/MainGUI.py:4562
-msgid "Add Slot"
-msgstr ""
-
-#: appGUI/MainGUI.py:991 appGUI/MainGUI.py:1569 appGUI/MainGUI.py:2148
-#: appGUI/MainGUI.py:4561
-msgid "Add Slot Array"
-msgstr ""
-
-#: appGUI/MainGUI.py:993 appGUI/MainGUI.py:1572 appGUI/MainGUI.py:2144
-msgid "Resize Drill"
-msgstr ""
-
-#: appGUI/MainGUI.py:997 appGUI/MainGUI.py:2152
-msgid "Copy Drill"
-msgstr ""
-
-#: appGUI/MainGUI.py:999 appGUI/MainGUI.py:2154
-msgid "Delete Drill"
-msgstr ""
-
-#: appGUI/MainGUI.py:1003 appGUI/MainGUI.py:2158
-msgid "Move Drill"
-msgstr ""
-
-#: appGUI/MainGUI.py:1011 appGUI/MainGUI.py:2166
-msgid "Add Circle"
-msgstr ""
-
-#: appGUI/MainGUI.py:1013 appGUI/MainGUI.py:2168
-msgid "Add Arc"
-msgstr ""
-
-#: appGUI/MainGUI.py:1015 appGUI/MainGUI.py:2170
-msgid "Add Rectangle"
-msgstr ""
-
-#: appGUI/MainGUI.py:1019 appGUI/MainGUI.py:2174
-msgid "Add Path"
-msgstr ""
-
-#: appGUI/MainGUI.py:1021 appGUI/MainGUI.py:2176
-msgid "Add Polygon"
-msgstr ""
-
-#: appGUI/MainGUI.py:1024 appGUI/MainGUI.py:2179
-msgid "Add Text"
-msgstr ""
-
-#: appGUI/MainGUI.py:1026 appGUI/MainGUI.py:2181
-msgid "Add Buffer"
-msgstr ""
-
-#: appGUI/MainGUI.py:1028 appGUI/MainGUI.py:2183
-msgid "Paint Shape"
-msgstr ""
-
-#: appGUI/MainGUI.py:1030 appGUI/MainGUI.py:1087 appGUI/MainGUI.py:1508
-#: appGUI/MainGUI.py:1553 appGUI/MainGUI.py:2185 appGUI/MainGUI.py:2241
-msgid "Eraser"
-msgstr ""
-
-#: appGUI/MainGUI.py:1034 appGUI/MainGUI.py:2189
-msgid "Polygon Union"
-msgstr ""
-
-#: appGUI/MainGUI.py:1036 appGUI/MainGUI.py:2191
-msgid "Polygon Explode"
-msgstr ""
-
-#: appGUI/MainGUI.py:1039 appGUI/MainGUI.py:2194
-msgid "Polygon Intersection"
-msgstr ""
-
-#: appGUI/MainGUI.py:1041 appGUI/MainGUI.py:2196
-msgid "Polygon Subtraction"
-msgstr ""
-
-#: appGUI/MainGUI.py:1045 appGUI/MainGUI.py:2200
-msgid "Cut Path"
-msgstr ""
-
-#: appGUI/MainGUI.py:1047
-msgid "Copy Shape(s)"
-msgstr ""
-
-#: appGUI/MainGUI.py:1050
-msgid "Delete Shape '-'"
-msgstr ""
-
-#: appGUI/MainGUI.py:1052 appGUI/MainGUI.py:1095 appGUI/MainGUI.py:1520
-#: appGUI/MainGUI.py:1557 appGUI/MainGUI.py:2206 appGUI/MainGUI.py:2249
-#: appGUI/ObjectUI.py:109 appGUI/ObjectUI.py:152
-msgid "Transformations"
-msgstr ""
-
-#: appGUI/MainGUI.py:1055
-msgid "Move Objects "
-msgstr ""
-
-#: appGUI/MainGUI.py:1063 appGUI/MainGUI.py:2218 appGUI/MainGUI.py:4681
-msgid "Add Pad"
-msgstr ""
-
-#: appGUI/MainGUI.py:1067 appGUI/MainGUI.py:2222 appGUI/MainGUI.py:4682
-msgid "Add Track"
-msgstr ""
-
-#: appGUI/MainGUI.py:1069 appGUI/MainGUI.py:2224 appGUI/MainGUI.py:4681
-msgid "Add Region"
-msgstr ""
-
-#: appGUI/MainGUI.py:1071 appGUI/MainGUI.py:1539 appGUI/MainGUI.py:2226
-msgid "Poligonize"
-msgstr ""
-
-#: appGUI/MainGUI.py:1074 appGUI/MainGUI.py:1541 appGUI/MainGUI.py:2229
-msgid "SemiDisc"
-msgstr ""
-
-#: appGUI/MainGUI.py:1076 appGUI/MainGUI.py:1543 appGUI/MainGUI.py:2231
-msgid "Disc"
-msgstr ""
-
-#: appGUI/MainGUI.py:1084 appGUI/MainGUI.py:1551 appGUI/MainGUI.py:2239
-msgid "Mark Area"
-msgstr ""
-
-#: appGUI/MainGUI.py:1098 appGUI/MainGUI.py:1524 appGUI/MainGUI.py:1586
-#: appGUI/MainGUI.py:2252 appGUI/MainGUI.py:4681 appTools/ToolMove.py:27
-msgid "Move"
-msgstr ""
-
-#: appGUI/MainGUI.py:1106
-msgid "Snap to grid"
-msgstr ""
-
-#: appGUI/MainGUI.py:1109
-msgid "Grid X snapping distance"
-msgstr ""
-
-#: appGUI/MainGUI.py:1114
-msgid ""
-"When active, value on Grid_X\n"
-"is copied to the Grid_Y value."
-msgstr ""
-
-#: appGUI/MainGUI.py:1121
-msgid "Grid Y snapping distance"
-msgstr ""
-
-#: appGUI/MainGUI.py:1128
-msgid "Snap to corner"
-msgstr ""
-
-#: appGUI/MainGUI.py:1132 appGUI/preferences/general/GeneralAPPSetGroupUI.py:78
-msgid "Max. magnet distance"
-msgstr ""
-
-#: appGUI/MainGUI.py:1142
-msgid "Toggle the display of axis on canvas"
-msgstr ""
-
-#: appGUI/MainGUI.py:1148 appGUI/preferences/PreferencesUIManager.py:898
-#: appGUI/preferences/PreferencesUIManager.py:991
-#: appGUI/preferences/PreferencesUIManager.py:1019
-#: appGUI/preferences/PreferencesUIManager.py:1124 app_Main.py:5579
-#: app_Main.py:5584 app_Main.py:5599
-msgid "Preferences"
-msgstr ""
-
-#: appGUI/MainGUI.py:1154
-msgid "Command Line"
-msgstr ""
-
-#: appGUI/MainGUI.py:1160
-msgid "HUD (Heads up display)"
-msgstr ""
-
-#: appGUI/MainGUI.py:1166 appGUI/preferences/general/GeneralAPPSetGroupUI.py:97
-msgid ""
-"Draw a delimiting rectangle on canvas.\n"
-"The purpose is to illustrate the limits for our work."
-msgstr ""
-
-#: appGUI/MainGUI.py:1179
-msgid ""
-"Relative measurement.\n"
-"Reference is last click position"
-msgstr ""
-"Relative measurement.\n"
-"Reference is last click position"
-
-#: appGUI/MainGUI.py:1187
-msgid ""
-"Absolute measurement.\n"
-"Reference is (X=0, Y= 0) position"
-msgstr ""
-
-#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:8143
-msgid "Project"
-msgstr ""
-
-#: appGUI/MainGUI.py:1264 appGUI/MainGUI.py:1272
-msgid "Plot Area"
-msgstr ""
-
-#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1163
-#: appTools/ToolCorners.py:317 appTools/ToolEtchCompensation.py:291
-#: appTools/ToolExtractDrills.py:453 appTools/ToolFiducials.py:873
-#: appTools/ToolInvertGerber.py:215 appTools/ToolIsolation.py:2986
-#: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:718
-#: appTools/ToolQRCode.py:659 appTools/ToolRulesCheck.py:1163
-#: appTools/ToolSolderPaste.py:1143 appTools/ToolSub.py:641
-msgid "GERBER"
-msgstr ""
-
-#: appGUI/MainGUI.py:1324 appTools/ToolDrilling.py:2032
-#: appTools/ToolMilling.py:1637 appTools/ToolRulesCheck.py:1301
-msgid "EXCELLON"
-msgstr ""
-
-#: appGUI/MainGUI.py:1334 appTools/ToolSub.py:696
-msgid "GEOMETRY"
-msgstr ""
-
-#: appGUI/MainGUI.py:1344
-msgid "CNC-JOB"
-msgstr ""
-
-#: appGUI/MainGUI.py:1353 appGUI/ObjectUI.py:353 appGUI/ObjectUI.py:691
-#: appGUI/ObjectUI.py:1716
-msgid "TOOLS"
-msgstr ""
-
-#: appGUI/MainGUI.py:1362
-msgid "TOOLS 2"
-msgstr ""
-
-#: appGUI/MainGUI.py:1372
-msgid "UTILITIES"
-msgstr ""
-
-#: appGUI/MainGUI.py:1388
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:201
-msgid "Restore Defaults"
-msgstr ""
-
-#: appGUI/MainGUI.py:1392
-msgid ""
-"Restore the entire set of default values\n"
-"to the initial values loaded after first launch."
-msgstr ""
-
-#: appGUI/MainGUI.py:1397
-msgid "Open Pref Folder"
-msgstr ""
-
-#: appGUI/MainGUI.py:1401
-msgid "Open the folder where FlatCAM save the preferences files."
-msgstr ""
-
-#: appGUI/MainGUI.py:1405 appGUI/MainGUI.py:1982
-msgid "Clear GUI Settings"
-msgstr ""
-
-#: appGUI/MainGUI.py:1410
-msgid ""
-"Clear the GUI settings for FlatCAM,\n"
-"such as: layout, gui state, style, hdpi support etc."
-msgstr ""
-
-#: appGUI/MainGUI.py:1425
-msgid "Apply the current preferences without saving to a file."
-msgstr ""
-
-#: appGUI/MainGUI.py:1433
-msgid ""
-"Save the current settings in the 'current_defaults' file\n"
-"which is the file storing the working default preferences."
-msgstr ""
-
-#: appGUI/MainGUI.py:1441
-msgid "Will not save the changes and will close the preferences window."
-msgstr ""
-
-#: appGUI/MainGUI.py:1455
-msgid "Toggle Visibility"
-msgstr ""
-
-#: appGUI/MainGUI.py:1461 appGUI/ObjectUI.py:2273
-msgid "New"
-msgstr ""
-
-#: appGUI/MainGUI.py:1463
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78
-#: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:1326
-#: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163
-#: appTools/ToolCopperThieving.py:1237 appTools/ToolCopperThieving.py:1251
-#: appTools/ToolCutOut.py:2010 appTools/ToolDblSided.py:529
-#: appTools/ToolDblSided.py:774 appTools/ToolFilm.py:929
-#: appTools/ToolFilm.py:952 appTools/ToolImage.py:136 appTools/ToolImage.py:191
-#: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3338
-#: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:793
-#: appTools/ToolNCC.py:3741 appTools/ToolNCC.py:4216 appTools/ToolPaint.py:167
-#: appTools/ToolPaint.py:3143 appTools/ToolPanelize.py:147
-#: appTools/ToolPanelize.py:167 appTools/ToolPanelize.py:715
-#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:587
-msgid "Geometry"
-msgstr ""
-
-#: appGUI/MainGUI.py:1467
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:99
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:77
-#: appTools/ToolAlignObjects.py:399 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:1237 appTools/ToolCopperThieving.py:1251
-#: appTools/ToolDblSided.py:530 appTools/ToolDblSided.py:731
-#: appTools/ToolDblSided.py:773 appTools/ToolFilm.py:1207
-#: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3391
-#: appTools/ToolNCC.py:793 appTools/ToolNCC.py:4216 appTools/ToolPaint.py:167
-#: appTools/ToolPaint.py:3143 appTools/ToolPanelize.py:147
-#: appTools/ToolPunchGerber.py:803 appTools/ToolPunchGerber.py:818
-#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:586
-msgid "Excellon"
-msgstr ""
-
-#: appGUI/MainGUI.py:1474
-msgid "Grids"
-msgstr ""
-
-#: appGUI/MainGUI.py:1481
-msgid "Clear Plot"
-msgstr ""
-
-#: appGUI/MainGUI.py:1483
-msgid "Replot"
-msgstr ""
-
-#: appGUI/MainGUI.py:1487
-msgid "Geo Editor"
-msgstr ""
-
-#: appGUI/MainGUI.py:1489
-msgid "Path"
-msgstr ""
-
-#: appGUI/MainGUI.py:1491
-msgid "Rectangle"
-msgstr ""
-
-#: appGUI/MainGUI.py:1494
-msgid "Circle"
-msgstr ""
-
-#: appGUI/MainGUI.py:1498
-msgid "Arc"
-msgstr ""
-
-#: appGUI/MainGUI.py:1512
-msgid "Union"
-msgstr ""
-
-#: appGUI/MainGUI.py:1514
-msgid "Intersection"
-msgstr ""
-
-#: appGUI/MainGUI.py:1516
-msgid "Subtraction"
-msgstr ""
-
-#: appGUI/MainGUI.py:1518 appGUI/ObjectUI.py:1809
-#: appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63
-msgid "Cut"
-msgstr ""
-
-#: appGUI/MainGUI.py:1529
-msgid "Pad"
-msgstr ""
-
-#: appGUI/MainGUI.py:1531
-msgid "Pad Array"
-msgstr ""
-
-#: appGUI/MainGUI.py:1535
-msgid "Track"
-msgstr ""
-
-#: appGUI/MainGUI.py:1537
-msgid "Region"
-msgstr ""
-
-#: appGUI/MainGUI.py:1560
-msgid "Exc Editor"
-msgstr ""
-
-#: appGUI/MainGUI.py:1562 appGUI/MainGUI.py:4560
-msgid "Add Drill"
-msgstr ""
-
-#: appGUI/MainGUI.py:1581 app_Main.py:2285
-msgid "Close Editor"
-msgstr ""
-
-#: appGUI/MainGUI.py:1612
-msgid "Application units"
-msgstr ""
-
-#: appGUI/MainGUI.py:1707
-msgid "Lock Toolbars"
-msgstr ""
-
-#: appGUI/MainGUI.py:1863
-msgid "Detachable Tabs"
-msgstr ""
-
-#: appGUI/MainGUI.py:1963
-msgid "FlatCAM Preferences Folder opened."
-msgstr ""
-
-#: appGUI/MainGUI.py:1981
-msgid "Are you sure you want to delete the GUI Settings? \n"
-msgstr ""
-
-#: appGUI/MainGUI.py:1986 appGUI/preferences/PreferencesUIManager.py:930
-#: appGUI/preferences/PreferencesUIManager.py:1176 appTranslation.py:112
-#: appTranslation.py:214 app_Main.py:2289 app_Main.py:3384 app_Main.py:5809
-#: app_Main.py:6893
-msgid "Yes"
-msgstr ""
-
-#: appGUI/MainGUI.py:1987 appGUI/preferences/PreferencesUIManager.py:1177
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:49
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:62
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150
-#: appTools/ToolDrilling.py:2090 appTools/ToolIsolation.py:3066
-#: appTools/ToolMilling.py:1695 appTools/ToolNCC.py:3828
-#: appTools/ToolPaint.py:2851 appTranslation.py:113 appTranslation.py:215
-#: app_Main.py:2290 app_Main.py:3385 app_Main.py:5810 app_Main.py:6894
-msgid "No"
-msgstr ""
-
-#: appGUI/MainGUI.py:2086
-msgid "&Cutout Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:2164
-msgid "Select 'Esc'"
-msgstr ""
-
-#: appGUI/MainGUI.py:2202
-msgid "Copy Objects"
-msgstr ""
-
-#: appGUI/MainGUI.py:2204 appGUI/MainGUI.py:4480
-msgid "Delete Shape"
-msgstr ""
-
-#: appGUI/MainGUI.py:2210
-msgid "Move Objects"
-msgstr ""
-
-#: appGUI/MainGUI.py:2796
-msgid ""
-"Please first select a geometry item to be cutted\n"
-"then select the geometry item that will be cutted\n"
-"out of the first item. In the end press ~X~ key or\n"
-"the toolbar button."
-msgstr ""
-
-#: appGUI/MainGUI.py:2803 appGUI/MainGUI.py:2967 appGUI/MainGUI.py:3014
-#: appGUI/MainGUI.py:3036
-msgid "Warning"
-msgstr ""
-
-#: appGUI/MainGUI.py:2962
-msgid ""
-"Please select geometry items \n"
-"on which to perform Intersection Tool."
-msgstr ""
-
-#: appGUI/MainGUI.py:3009
-msgid ""
-"Please select geometry items \n"
-"on which to perform Substraction Tool."
-msgstr ""
-
-#: appGUI/MainGUI.py:3031
-msgid ""
-"Please select geometry items \n"
-"on which to perform union."
-msgstr ""
-
-#: appGUI/MainGUI.py:3116 appGUI/MainGUI.py:3331
-msgid "Cancelled. Nothing selected to delete."
-msgstr ""
-
-#: appGUI/MainGUI.py:3200 appGUI/MainGUI.py:3447
-msgid "Cancelled. Nothing selected to copy."
-msgstr ""
-
-#: appGUI/MainGUI.py:3246 appGUI/MainGUI.py:3476
-msgid "Cancelled. Nothing selected to move."
-msgstr ""
-
-#: appGUI/MainGUI.py:3502
-msgid "New Tool ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:3503 appTools/ToolIsolation.py:783 appTools/ToolNCC.py:450
-#: appTools/ToolPaint.py:387 appTools/ToolSolderPaste.py:123
-msgid "Enter a Tool Diameter"
-msgstr ""
-
-#: appGUI/MainGUI.py:3515
-msgid "Adding Tool cancelled ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:3545
-msgid "Distance Tool exit..."
-msgstr ""
-
-#: appGUI/MainGUI.py:3725 app_Main.py:3372
-msgid "Application is saving the project. Please wait ..."
-msgstr ""
-
-#: appGUI/MainGUI.py:3858
-msgid "Shell enabled."
-msgstr ""
-
-#: appGUI/MainGUI.py:3861
-msgid "Shell disabled."
-msgstr ""
-
-#: appGUI/MainGUI.py:3875 app_Main.py:9689
-msgid "<b>Shortcut Key List</b>"
-msgstr ""
-
-#: appGUI/MainGUI.py:4258
-msgid "General Shortcut list"
-msgstr ""
-
-#: appGUI/MainGUI.py:4259
-msgid "SHOW SHORTCUT LIST"
-msgstr ""
-
-#: appGUI/MainGUI.py:4259
-msgid "Switch to Project Tab"
-msgstr ""
-
-#: appGUI/MainGUI.py:4259
-msgid "Switch to Selected Tab"
-msgstr ""
-
-#: appGUI/MainGUI.py:4260
-msgid "Switch to Tool Tab"
-msgstr ""
-
-#: appGUI/MainGUI.py:4261
-msgid "New Gerber"
-msgstr ""
-
-#: appGUI/MainGUI.py:4261
-msgid "Edit Object (if selected)"
-msgstr ""
-
-#: appGUI/MainGUI.py:4261 app_Main.py:6109
-msgid "Grid On/Off"
-msgstr ""
-
-#: appGUI/MainGUI.py:4261
-msgid "Jump to Coordinates"
-msgstr ""
-
-#: appGUI/MainGUI.py:4262
-msgid "New Excellon"
-msgstr ""
-
-#: appGUI/MainGUI.py:4262
-msgid "Move Obj"
-msgstr ""
-
-#: appGUI/MainGUI.py:4262
-msgid "New Geometry"
-msgstr ""
-
-#: appGUI/MainGUI.py:4262
-msgid "Change Units"
-msgstr ""
-
-#: appGUI/MainGUI.py:4263
-msgid "Open Properties Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4263
-msgid "Rotate by 90 degree CW"
-msgstr ""
-
-#: appGUI/MainGUI.py:4263
-msgid "Shell Toggle"
-msgstr ""
-
-#: appGUI/MainGUI.py:4264
-msgid ""
-"Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)"
-msgstr ""
-
-#: appGUI/MainGUI.py:4265
-msgid "Flip on X_axis"
-msgstr ""
-
-#: appGUI/MainGUI.py:4265
-msgid "Flip on Y_axis"
-msgstr ""
-
-#: appGUI/MainGUI.py:4268
-msgid "Copy Obj"
-msgstr ""
-
-#: appGUI/MainGUI.py:4268
-msgid "Open Tools Database"
-msgstr ""
-
-#: appGUI/MainGUI.py:4269
-msgid "Open Excellon File"
-msgstr ""
-
-#: appGUI/MainGUI.py:4269
-msgid "Open Gerber File"
-msgstr ""
-
-#: appGUI/MainGUI.py:4269
-msgid "New Project"
-msgstr ""
-
-#: appGUI/MainGUI.py:4270 app_Main.py:7223 app_Main.py:7226
-msgid "Open Project"
-msgstr ""
-
-#: appGUI/MainGUI.py:4270 appTools/ToolPDF.py:41
-msgid "PDF Import Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4270
-msgid "Save Project"
-msgstr ""
-
-#: appGUI/MainGUI.py:4270
-msgid "Toggle Plot Area"
-msgstr ""
-
-#: appGUI/MainGUI.py:4273
-msgid "Copy Obj_Name"
-msgstr ""
-
-#: appGUI/MainGUI.py:4274
-msgid "Toggle Code Editor"
-msgstr ""
-
-#: appGUI/MainGUI.py:4274
-msgid "Toggle the axis"
-msgstr ""
-
-#: appGUI/MainGUI.py:4274 appGUI/MainGUI.py:4475 appGUI/MainGUI.py:4562
-#: appGUI/MainGUI.py:4684
-msgid "Distance Minimum Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4275
-msgid "Open Preferences Window"
-msgstr ""
-
-#: appGUI/MainGUI.py:4276
-msgid "Rotate by 90 degree CCW"
-msgstr ""
-
-#: appGUI/MainGUI.py:4276
-msgid "Run a Script"
-msgstr ""
-
-#: appGUI/MainGUI.py:4276
-msgid "Toggle the workspace"
-msgstr ""
-
-#: appGUI/MainGUI.py:4276
-msgid "Skew on X axis"
-msgstr ""
-
-#: appGUI/MainGUI.py:4277
-msgid "Skew on Y axis"
-msgstr ""
-
-#: appGUI/MainGUI.py:4280
-msgid "2-Sided PCB Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4281
-msgid "Toggle Grid Lines"
-msgstr ""
-
-#: appGUI/MainGUI.py:4283
-msgid "Solder Paste Dispensing Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4284
-msgid "Film PCB Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4284
-msgid "Non-Copper Clearing Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4285
-msgid "Paint Area Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4285
-msgid "Rules Check Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4286
-msgid "View File Source"
-msgstr ""
-
-#: appGUI/MainGUI.py:4286
-msgid "Transformations Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4287
-msgid "Cutout PCB Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4287 appTools/ToolPanelize.py:35
-#: appTools/ToolPanelize.py:634
-msgid "Panelize PCB"
-msgstr ""
-
-#: appGUI/MainGUI.py:4288
-msgid "Enable all Plots"
-msgstr ""
-
-#: appGUI/MainGUI.py:4288
-msgid "Disable all Plots"
-msgstr ""
-
-#: appGUI/MainGUI.py:4288
-msgid "Disable Non-selected Plots"
-msgstr ""
-
-#: appGUI/MainGUI.py:4289
-msgid "Toggle Full Screen"
-msgstr ""
-
-#: appGUI/MainGUI.py:4292
-msgid "Abort current task (gracefully)"
-msgstr ""
-
-#: appGUI/MainGUI.py:4295
-msgid "Save Project As"
-msgstr ""
-
-#: appGUI/MainGUI.py:4296
-msgid ""
-"Paste Special. Will convert a Windows path style to the one required in Tcl "
-"Shell"
-msgstr ""
-
-#: appGUI/MainGUI.py:4299
-msgid "Open Online Manual"
-msgstr ""
-
-#: appGUI/MainGUI.py:4300
-msgid "Open Online Tutorials"
-msgstr ""
-
-#: appGUI/MainGUI.py:4300
-msgid "Refresh Plots"
-msgstr ""
-
-#: appGUI/MainGUI.py:4300 appTools/ToolSolderPaste.py:71
-msgid "Delete Object"
-msgstr ""
-
-#: appGUI/MainGUI.py:4300
-msgid "Alternate: Delete Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4301
-msgid "(left to Key_1)Toggle Notebook Area (Left Side)"
-msgstr ""
-
-#: appGUI/MainGUI.py:4301
-msgid "En(Dis)able Obj Plot"
-msgstr ""
-
-#: appGUI/MainGUI.py:4302
-msgid "Deselects all objects"
-msgstr ""
-
-#: appGUI/MainGUI.py:4316
-msgid "Editor Shortcut list"
-msgstr ""
-
-#: appGUI/MainGUI.py:4470
-msgid "GEOMETRY EDITOR"
-msgstr ""
-
-#: appGUI/MainGUI.py:4470
-msgid "Draw an Arc"
-msgstr ""
-
-#: appGUI/MainGUI.py:4470
-msgid "Copy Geo Item"
-msgstr ""
-
-#: appGUI/MainGUI.py:4471
-msgid "Within Add Arc will toogle the ARC direction: CW or CCW"
-msgstr ""
-
-#: appGUI/MainGUI.py:4471
-msgid "Polygon Intersection Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4472
-msgid "Geo Paint Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4472 appGUI/MainGUI.py:4561 appGUI/MainGUI.py:4681
-msgid "Jump to Location (x, y)"
-msgstr ""
-
-#: appGUI/MainGUI.py:4472
-msgid "Toggle Corner Snap"
-msgstr ""
-
-#: appGUI/MainGUI.py:4472
-msgid "Move Geo Item"
-msgstr ""
-
-#: appGUI/MainGUI.py:4473
-msgid "Within Add Arc will cycle through the ARC modes"
-msgstr ""
-
-#: appGUI/MainGUI.py:4473
-msgid "Draw a Polygon"
-msgstr ""
-
-#: appGUI/MainGUI.py:4473
-msgid "Draw a Circle"
-msgstr ""
-
-#: appGUI/MainGUI.py:4474
-msgid "Draw a Path"
-msgstr ""
-
-#: appGUI/MainGUI.py:4474
-msgid "Draw Rectangle"
-msgstr ""
-
-#: appGUI/MainGUI.py:4474
-msgid "Polygon Subtraction Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4474
-msgid "Add Text Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4475
-msgid "Polygon Union Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4475
-msgid "Flip shape on X axis"
-msgstr ""
-
-#: appGUI/MainGUI.py:4475
-msgid "Flip shape on Y axis"
-msgstr ""
-
-#: appGUI/MainGUI.py:4476
-msgid "Skew shape on X axis"
-msgstr ""
-
-#: appGUI/MainGUI.py:4476
-msgid "Skew shape on Y axis"
-msgstr ""
-
-#: appGUI/MainGUI.py:4476
-msgid "Editor Transformation Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4477
-msgid "Offset shape on X axis"
-msgstr ""
-
-#: appGUI/MainGUI.py:4477
-msgid "Offset shape on Y axis"
-msgstr ""
-
-#: appGUI/MainGUI.py:4478 appGUI/MainGUI.py:4564 appGUI/MainGUI.py:4686
-msgid "Save Object and Exit Editor"
-msgstr ""
-
-#: appGUI/MainGUI.py:4478
-msgid "Polygon Cut Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4479
-msgid "Rotate Geometry"
-msgstr ""
-
-#: appGUI/MainGUI.py:4479
-msgid "Finish drawing for certain tools"
-msgstr ""
-
-#: appGUI/MainGUI.py:4479 appGUI/MainGUI.py:4564 appGUI/MainGUI.py:4684
-msgid "Abort and return to Select"
-msgstr ""
-
-#: appGUI/MainGUI.py:4560
-msgid "EXCELLON EDITOR"
-msgstr ""
-
-#: appGUI/MainGUI.py:4560
-msgid "Copy Drill(s)"
-msgstr ""
-
-#: appGUI/MainGUI.py:4561
-msgid "Move Drill(s)"
-msgstr ""
-
-#: appGUI/MainGUI.py:4562
-msgid "Add a new Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4563
-msgid "Delete Drill(s)"
-msgstr ""
-
-#: appGUI/MainGUI.py:4563
-msgid "Alternate: Delete Tool(s)"
-msgstr ""
-
-#: appGUI/MainGUI.py:4680
-msgid "GERBER EDITOR"
-msgstr ""
-
-#: appGUI/MainGUI.py:4680
-msgid "Add Disc"
-msgstr ""
-
-#: appGUI/MainGUI.py:4680
-msgid "Add SemiDisc"
-msgstr ""
-
-#: appGUI/MainGUI.py:4682
-msgid "Within Track & Region Tools will cycle in REVERSE the bend modes"
-msgstr ""
-
-#: appGUI/MainGUI.py:4683
-msgid "Within Track & Region Tools will cycle FORWARD the bend modes"
-msgstr ""
-
-#: appGUI/MainGUI.py:4684
-msgid "Alternate: Delete Apertures"
-msgstr ""
-
-#: appGUI/MainGUI.py:4685
-msgid "Eraser Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4686
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:221
-msgid "Mark Area Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4686
-msgid "Poligonize Tool"
-msgstr ""
-
-#: appGUI/MainGUI.py:4686
-msgid "Transformation Tool"
-msgstr ""
-
-#: appGUI/ObjectUI.py:38
-msgid "App Object"
-msgstr ""
-
-#: appGUI/ObjectUI.py:78 appTools/ToolDrilling.py:2015
-#: appTools/ToolIsolation.py:2975 appTools/ToolMilling.py:1620
-msgid ""
-"BASIC is suitable for a beginner. Many parameters\n"
-"are hidden from the user in this mode.\n"
-"ADVANCED mode will make available all parameters.\n"
-"\n"
-"To change the application LEVEL, go to:\n"
-"Edit -> Preferences -> General and check:\n"
-"'APP. LEVEL' radio button."
-msgstr ""
-
-#: appGUI/ObjectUI.py:111 appGUI/ObjectUI.py:155
-msgid "Geometrical transformations of the current object."
-msgstr ""
-
-#: appGUI/ObjectUI.py:120
-msgid ""
-"Factor by which to multiply\n"
-"geometric features of this object.\n"
-"Expressions are allowed. E.g: 1/25.4"
-msgstr ""
-
-#: appGUI/ObjectUI.py:127
-msgid "Perform scaling operation."
-msgstr ""
-
-#: appGUI/ObjectUI.py:138
-msgid ""
-"Amount by which to move the object\n"
-"in the x and y axes in (x, y) format.\n"
-"Expressions are allowed. E.g: (1/3.2, 0.5*3)"
-msgstr ""
-
-#: appGUI/ObjectUI.py:145
-msgid "Perform the offset operation."
-msgstr ""
-
-#: appGUI/ObjectUI.py:188
-msgid "Gerber Object"
-msgstr ""
-
-#: appGUI/ObjectUI.py:197 appGUI/ObjectUI.py:523 appGUI/ObjectUI.py:833
-#: appGUI/ObjectUI.py:1796 appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:30
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:33
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:33
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:31
-msgid "Plot Options"
-msgstr ""
-
-#: appGUI/ObjectUI.py:202 appGUI/ObjectUI.py:526
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119
-#: appTools/ToolCopperThieving.py:1284
-msgid "Solid"
-msgstr ""
-
-#: appGUI/ObjectUI.py:204 appGUI/preferences/gerber/GerberGenPrefGroupUI.py:47
-msgid "Solid color polygons."
-msgstr ""
-
-#: appGUI/ObjectUI.py:209 appGUI/ObjectUI.py:532 appGUI/ObjectUI.py:839
-msgid "Multi-Color"
-msgstr ""
-
-#: appGUI/ObjectUI.py:211 appGUI/ObjectUI.py:534 appGUI/ObjectUI.py:841
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:56
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:49
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:54
-msgid "Draw polygons in different colors."
-msgstr ""
-
-#: appGUI/ObjectUI.py:226 appGUI/ObjectUI.py:608
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:40
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:40
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:38
-msgid "Plot"
-msgstr ""
-
-#: appGUI/ObjectUI.py:227 appGUI/ObjectUI.py:610 appGUI/ObjectUI.py:944
-#: appGUI/ObjectUI.py:1941 appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:42
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:40
-msgid "Plot (show) this object."
-msgstr ""
-
-#: appGUI/ObjectUI.py:244
-#, fuzzy
-#| msgid "Gerber Objects"
-msgid "Edit an Gerber object."
-msgstr "Gerber Objects"
-
-#: appGUI/ObjectUI.py:255 appGUI/ObjectUI.py:568 appGUI/ObjectUI.py:872
-#: appGUI/ObjectUI.py:1842
-msgid "PROPERTIES"
-msgstr ""
-
-#: appGUI/ObjectUI.py:257 appGUI/ObjectUI.py:570 appGUI/ObjectUI.py:874
-#: appGUI/ObjectUI.py:1844
-msgid "Show the Properties."
-msgstr ""
-
-#: appGUI/ObjectUI.py:291 appGUI/ObjectUI.py:603
-#: appGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:50
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:54
-msgid "Toggle the display of the Tools Table."
-msgstr ""
-
-#: appGUI/ObjectUI.py:300
-msgid "Mark All"
-msgstr ""
-
-#: appGUI/ObjectUI.py:302
-msgid ""
-"When checked it will display all the apertures.\n"
-"When unchecked, it will delete all mark shapes\n"
-"that are drawn on canvas."
-msgstr ""
-
-#: appGUI/ObjectUI.py:332
-msgid "Mark the aperture instances on canvas."
-msgstr ""
-
-#: appGUI/ObjectUI.py:339 appTools/ToolIsolation.py:3465
-msgid "Buffer Solid Geometry"
-msgstr ""
-
-#: appGUI/ObjectUI.py:341 appTools/ToolIsolation.py:3467
-msgid ""
-"This button is shown only when the Gerber file\n"
-"is loaded without buffering.\n"
-"Clicking this will create the buffered geometry\n"
-"required for isolation."
-msgstr ""
-
-#: appGUI/ObjectUI.py:357
-msgid "Isolation Routing"
-msgstr ""
-
-#: appGUI/ObjectUI.py:360 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:32
-#: appTools/ToolIsolation.py:2965
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut around polygons."
-msgstr ""
-
-#: appGUI/ObjectUI.py:375 appGUI/ObjectUI.py:1745 appTools/ToolNCC.py:4258
-msgid ""
-"Create the Geometry Object\n"
-"for non-copper routing."
-msgstr ""
-
-#: appGUI/ObjectUI.py:390
-msgid ""
-"Generate the geometry for\n"
-"the board cutout."
-msgstr ""
-
-#: appGUI/ObjectUI.py:407 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:32
-msgid "Non-copper regions"
-msgstr ""
-
-#: appGUI/ObjectUI.py:409 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:34
-msgid ""
-"Create polygons covering the\n"
-"areas without copper on the PCB.\n"
-"Equivalent to the inverse of this\n"
-"object. Can be used to remove all\n"
-"copper from a specified region."
-msgstr ""
-
-#: appGUI/ObjectUI.py:419 appGUI/ObjectUI.py:460
-#: appGUI/preferences/gerber/GerberOptPrefGroupUI.py:46
-#: appGUI/preferences/gerber/GerberOptPrefGroupUI.py:79
-msgid "Boundary Margin"
-msgstr ""
-
-#: appGUI/ObjectUI.py:421 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:48
-msgid ""
-"Specify the edge of the PCB\n"
-"by drawing a box around all\n"
-"objects with this minimum\n"
-"distance."
-msgstr ""
-
-#: appGUI/ObjectUI.py:438 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:63
-msgid "Resulting geometry will have rounded corners."
-msgstr ""
-
-#: appGUI/ObjectUI.py:441 appGUI/ObjectUI.py:481 appTools/ToolCutOut.py:2287
-#: appTools/ToolCutOut.py:2302 appTools/ToolIsolation.py:3444
-#: appTools/ToolNCC.py:4255 appTools/ToolPaint.py:3178
-msgid "Generate Geometry"
-msgstr ""
-
-#: appGUI/ObjectUI.py:452 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:73
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137
-#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:782
-msgid "Bounding Box"
-msgstr ""
-
-#: appGUI/ObjectUI.py:454
-msgid ""
-"Create a geometry surrounding the Gerber object.\n"
-"Square shape."
-msgstr ""
-
-#: appGUI/ObjectUI.py:462 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:81
-msgid ""
-"Distance of the edges of the box\n"
-"to the nearest polygon."
-msgstr ""
-
-#: appGUI/ObjectUI.py:475 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:94
-msgid ""
-"If the bounding box is \n"
-"to have rounded corners\n"
-"their radius is equal to\n"
-"the margin."
-msgstr ""
-
-#: appGUI/ObjectUI.py:484
-msgid "Generate the Geometry object."
-msgstr ""
-
-#: appGUI/ObjectUI.py:511
-msgid "Excellon Object"
-msgstr ""
-
-#: appGUI/ObjectUI.py:528
-msgid "Solid circles."
-msgstr ""
-
-#: appGUI/ObjectUI.py:557
-#, fuzzy
-#| msgid "Excellon Objects"
-msgid "Edit an Excellon object."
-msgstr "Excellon Objects"
-
-#: appGUI/ObjectUI.py:645 appTools/ToolDrilling.py:2067
-#: appTools/ToolMilling.py:1672
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn in the Machine Code.\n"
-"\n"
-"Here the tools are selected for G-code generation."
-msgstr ""
-
-#: appGUI/ObjectUI.py:650 appGUI/ObjectUI.py:968 appTools/ToolDrilling.py:2072
-#: appTools/ToolMilling.py:1677 appTools/ToolPaint.py:2827
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units) \n"
-"is the cut width into the material."
-msgstr ""
-
-#: appGUI/ObjectUI.py:653 appTools/ToolDrilling.py:2075
-#: appTools/ToolMilling.py:1680
-msgid ""
-"The number of Drill holes. Holes that are drilled with\n"
-"a drill bit."
-msgstr ""
-
-#: appGUI/ObjectUI.py:656 appTools/ToolDrilling.py:2078
-#: appTools/ToolMilling.py:1683
-msgid ""
-"The number of Slot holes. Holes that are created by\n"
-"milling them with an endmill bit."
-msgstr ""
-
-#: appGUI/ObjectUI.py:659
-msgid "Show the color of the drill holes when using multi-color."
-msgstr ""
-
-#: appGUI/ObjectUI.py:661
-msgid ""
-"Toggle display of the drills for the current tool.\n"
-"This does not select the tools for G-code generation."
-msgstr ""
-
-#: appGUI/ObjectUI.py:670
-#: appGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:55
-msgid "Auto load from DB"
-msgstr ""
-
-#: appGUI/ObjectUI.py:672
-#: appGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:57
-msgid ""
-"Automatic replacement of the tools from related application tools\n"
-"with tools from DB that have a close diameter value."
-msgstr ""
-
-#: appGUI/ObjectUI.py:698
-msgid "Generate GCode out of drill holes in an Excellon object."
-msgstr ""
-
-#: appGUI/ObjectUI.py:709
-msgid "Milling Tool"
-msgstr ""
-
-#: appGUI/ObjectUI.py:712
-msgid "Generate a Geometry for milling drills or slots in an Excellon object."
-msgstr ""
-
-#: appGUI/ObjectUI.py:738
-msgid "Milling Geometry"
-msgstr ""
-
-#: appGUI/ObjectUI.py:740
-msgid ""
-"Create Geometry for milling holes.\n"
-"Select from the Tools Table above the hole dias to be\n"
-"milled. Use the # column to make the selection."
-msgstr ""
-
-#: appGUI/ObjectUI.py:746
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80
-#: appTools/ToolMilling.py:1779
-msgid "Milling Diameter"
-msgstr ""
-
-#: appGUI/ObjectUI.py:748
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:101
-msgid "Diameter of the cutting tool."
-msgstr ""
-
-#: appGUI/ObjectUI.py:758
-msgid "Mill Drills"
-msgstr ""
-
-#: appGUI/ObjectUI.py:760
-#, fuzzy
-#| msgid ""
-#| "Create the Geometry Object\n"
-#| "for isolation routing containing\n"
-#| "only the exteriors geometry."
-msgid ""
-"Create the Geometry Object\n"
-"for milling drills."
-msgstr ""
-"Create the Geometry Object\n"
-"for isolation routing containing\n"
-"only the exteriors geometry."
-
-#: appGUI/ObjectUI.py:778
-msgid "Mill Slots"
-msgstr ""
-
-#: appGUI/ObjectUI.py:780
-#, fuzzy
-#| msgid ""
-#| "Create the Geometry Object\n"
-#| "for isolation routing containing\n"
-#| "only the exteriors geometry."
-msgid ""
-"Create the Geometry Object\n"
-"for milling slots."
-msgstr ""
-"Create the Geometry Object\n"
-"for isolation routing containing\n"
-"only the exteriors geometry."
-
-#: appGUI/ObjectUI.py:822
-msgid "Geometry Object"
-msgstr ""
-
-#: appGUI/ObjectUI.py:861
-#, fuzzy
-#| msgid "Geometry Objects"
-msgid "Edit an Geometry object."
-msgstr "Geometry Objects"
-
-#: appGUI/ObjectUI.py:925
-msgid ""
-"Tools in this Geometry object used for cutting.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V). \n"
-"When V-shaped is selected the 'Type' entry is automatically \n"
-"set to Isolation, the CutZ parameter in the UI form is\n"
-"grayed out and Cut Z is automatically calculated from the newly \n"
-"showed UI form entries named V-Tip Dia and V-Tip Angle."
-msgstr ""
-
-#: appGUI/ObjectUI.py:942 appGUI/ObjectUI.py:1939
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:40
-msgid "Plot Object"
-msgstr ""
-
-#: appGUI/ObjectUI.py:962
-msgid ""
-"This is the Tool Number.\n"
-"When ToolChange is checked, on toolchange event this value\n"
-"will be showed as a T1, T2 ... Tn"
-msgstr ""
-
-#: appGUI/ObjectUI.py:973
-msgid ""
-"The value for the Offset can be:\n"
-"- Path -> There is no offset, the tool cut will be done through the geometry "
-"line.\n"
-"- In(side) -> The tool cut will follow the geometry inside. It will create a "
-"'pocket'.\n"
-"- Out(side) -> The tool cut will follow the geometry line on the outside."
-msgstr ""
-
-#: appGUI/ObjectUI.py:980
-msgid ""
-"The (Operation) Type has only informative value. Usually the UI form "
-"values \n"
-"are choose based on the operation type and this will serve as a reminder.\n"
-"Can be 'Roughing', 'Finishing' or 'Isolation'.\n"
-"For Roughing we may choose a lower Feedrate and multiDepth cut.\n"
-"For Finishing we may choose a higher Feedrate, without multiDepth.\n"
-"For Isolation we need a lower Feedrate as it use a milling bit with a fine "
-"tip."
-msgstr ""
-
-#: appGUI/ObjectUI.py:989
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the "
-"cut width in material\n"
-"is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the UI form and enable two "
-"additional UI form\n"
-"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust "
-"the Z-Cut parameter such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter column of this table.\n"
-"Choosing the V-Shape Tool Type automatically will select the Operation Type "
-"as Isolation."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1001
-msgid ""
-"Plot column. It is visible only for MultiGeo geometries, meaning geometries "
-"that holds the geometry\n"
-"data into the tools. For those geometries, deleting the tool will delete the "
-"geometry data also,\n"
-"so be WARNED. From the checkboxes on each row it can be enabled/disabled the "
-"plot on canvas\n"
-"for the corresponding tool."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1016
-msgid ""
-"The value to offset the cut when \n"
-"the Offset type selected is 'Offset'.\n"
-"The value can be positive for 'outside'\n"
-"cut and negative for 'inside' cut."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1035 appTools/ToolIsolation.py:3087
-#: appTools/ToolNCC.py:66 appTools/ToolNCC.py:3855 appTools/ToolPaint.py:140
-#: appTools/ToolPaint.py:2878
-msgid "Add from DB"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1052 appTools/ToolCutOut.py:2071
-#: appTools/ToolIsolation.py:61 appTools/ToolIsolation.py:3122
-#: appTools/ToolNCC.py:3889 appTools/ToolPaint.py:2898
-msgid "Search and Add"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1055
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1059 appTools/ToolCutOut.py:2083
-#: appTools/ToolIsolation.py:65 appTools/ToolIsolation.py:3133
-#: appTools/ToolNCC.py:3900 appTools/ToolPaint.py:2909
-msgid "Pick from DB"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1062 appTools/ToolCutOut.py:2086
-#: appTools/ToolIsolation.py:3136 appTools/ToolNCC.py:3903
-#: appTools/ToolPaint.py:2912
-msgid ""
-"Add a new tool to the Tool Table\n"
-"from the Tools Database.\n"
-"Tools database administration in in:\n"
-"Menu: Options -> Tools Database"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1084
-msgid ""
-"Copy a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1091
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row in the Tool Table."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1128 appObjects/FlatCAMGeometry.py:388
-#: appObjects/FlatCAMGeometry.py:886 appObjects/FlatCAMGeometry.py:891
-#: appObjects/FlatCAMGeometry.py:925 appObjects/FlatCAMGeometry.py:950
-#: appObjects/FlatCAMGeometry.py:954 appTools/ToolDrilling.py:705
-#: appTools/ToolDrilling.py:711 appTools/ToolDrilling.py:754
-#: appTools/ToolDrilling.py:983 appTools/ToolDrilling.py:990
-#: appTools/ToolDrilling.py:1021 appTools/ToolDrilling.py:1033
-#: appTools/ToolDrilling.py:1037 appTools/ToolDrilling.py:2116
-#: appTools/ToolIsolation.py:531 appTools/ToolIsolation.py:639
-#: appTools/ToolIsolation.py:644 appTools/ToolIsolation.py:674
-#: appTools/ToolIsolation.py:697 appTools/ToolIsolation.py:710
-#: appTools/ToolIsolation.py:3166 appTools/ToolMilling.py:628
-#: appTools/ToolMilling.py:744 appTools/ToolMilling.py:749
-#: appTools/ToolMilling.py:779 appTools/ToolMilling.py:790
-#: appTools/ToolMilling.py:794 appTools/ToolMilling.py:1711
-#: appTools/ToolNCC.py:266 appTools/ToolNCC.py:271 appTools/ToolNCC.py:301
-#: appTools/ToolNCC.py:324 appTools/ToolNCC.py:337 appTools/ToolNCC.py:701
-#: appTools/ToolNCC.py:3933 appTools/ToolPaint.py:247 appTools/ToolPaint.py:252
-#: appTools/ToolPaint.py:282 appTools/ToolPaint.py:304
-#: appTools/ToolPaint.py:316 appTools/ToolPaint.py:655
-#: appTools/ToolPaint.py:2940
-msgid "Parameters for"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1131 appTools/ToolDrilling.py:2119
-#: appTools/ToolIsolation.py:3169 appTools/ToolMilling.py:1714
-#: appTools/ToolNCC.py:3936 appTools/ToolPaint.py:2943
-msgid ""
-"The data used for creating GCode.\n"
-"Each tool store it's own set of such data."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1138 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:89
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:72
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:78
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:85
-msgid "V-Tip Dia"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1141 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:91
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:74
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:80
-msgid "The tip diameter for V-Shape Tool"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1153 appGUI/preferences/tools/ToolsISOPrefGroupUI.py:101
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:84
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:91
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:99
-msgid "V-Tip Angle"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1156 appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:86
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:93
-msgid ""
-"The tip angle for V-Shape Tool.\n"
-"In degree."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1172
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61
-#: appObjects/FlatCAMGeometry.py:1374 appTools/ToolCutOut.py:2107
-msgid ""
-"Cutting depth (negative)\n"
-"below the copper surface."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1190
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:77
-#: appTools/ToolCutOut.py:2125 appTools/ToolDrilling.py:2164
-#: appTools/ToolMilling.py:1814
-msgid "Multi-Depth"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1218
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:104
-msgid ""
-"Height of the tool when\n"
-"moving without cutting."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1237
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:188
-#: appTools/ToolMilling.py:1862
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1251
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:203
-msgid ""
-"Cutting speed in the XY\n"
-"plane in units per minute.\n"
-"It is called also Plunge."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1266
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:69
-msgid ""
-"Cutting speed in the XY plane\n"
-"(in units per minute).\n"
-"This is for the rapid move G00.\n"
-"It is useful only for Marlin,\n"
-"ignore for any other cases."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1284
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:85
-#: appTools/ToolMilling.py:1914
-msgid "Re-cut"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1286 appGUI/ObjectUI.py:1298
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:87
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:99
-#: appTools/ToolMilling.py:1916 appTools/ToolMilling.py:1929
-msgid ""
-"In order to remove possible\n"
-"copper leftovers where first cut\n"
-"meet with last cut, we generate an\n"
-"extended cut over the first cut section."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1310
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:220
-msgid ""
-"Speed of the spindle in RPM (optional).\n"
-"If LASER preprocessor is used,\n"
-"this value is the power of laser."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1326
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:235
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:202
-#: appTools/ToolDrilling.py:2266 appTools/ToolMilling.py:1959
-msgid ""
-"Pause to allow the spindle to reach its\n"
-"speed before cutting."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1336
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:240
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:210
-#: appTools/ToolDrilling.py:2278 appTools/ToolMilling.py:1970
-msgid "Number of time units for spindle to dwell."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1344 appGUI/ObjectUI.py:2071
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:131
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:108
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:333
-#: appTools/ToolDrilling.py:2461 appTools/ToolMilling.py:2129
-msgid "Probe Z depth"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1346 appGUI/ObjectUI.py:2073
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:133
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:110
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:335
-#: appTools/ToolDrilling.py:2463 appTools/ToolMilling.py:2131
-msgid ""
-"The maximum depth that the probe is allowed\n"
-"to probe. Negative value, in current units."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1361
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:123
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:346
-#: appTools/ToolDrilling.py:2480 appTools/ToolMilling.py:2148
-msgid "Feedrate Probe"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1363 appGUI/ObjectUI.py:2086
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:146
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:125
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:348
-#: appTools/ToolDrilling.py:2482 appTools/ToolMilling.py:2150
-msgid "The feedrate used while the probe is probing."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1390 appTools/ToolDrilling.py:2364
-#: appTools/ToolIsolation.py:3265 appTools/ToolMilling.py:2042
-#: appTools/ToolNCC.py:4094 appTools/ToolPaint.py:3049
-msgid "Apply parameters to all tools"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1393 appTools/ToolDrilling.py:2367
-#: appTools/ToolIsolation.py:3268 appTools/ToolMilling.py:2045
-#: appTools/ToolNCC.py:4097 appTools/ToolPaint.py:3052
-msgid ""
-"The parameters in the current form will be applied\n"
-"on all the tools from the Tool Table."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1404 appTools/ToolDrilling.py:2378
-#: appTools/ToolIsolation.py:3279 appTools/ToolMilling.py:2056
-#: appTools/ToolNCC.py:4108 appTools/ToolPaint.py:3063
-msgid "Common Parameters"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1406 appTools/ToolDrilling.py:2380
-#: appTools/ToolIsolation.py:3281 appTools/ToolMilling.py:2058
-#: appTools/ToolNCC.py:4110 appTools/ToolPaint.py:3065
-msgid "Parameters that are common for all tools."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1411 appTools/ToolDrilling.py:2394
-#: appTools/ToolMilling.py:2063
-msgid "Tool change Z"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1414
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:125
-msgid ""
-"Include tool-change sequence\n"
-"in the Machine Code (Pause for tool change)."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1422
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:135
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:126
-#: appTools/ToolDrilling.py:2396 appTools/ToolMilling.py:2072
-msgid ""
-"Z-axis position (height) for\n"
-"tool change."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1450
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:154
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:142
-#: appTools/ToolDrilling.py:2427 appTools/ToolMilling.py:2098
-msgid "End move Z"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1452
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:156
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:144
-#: appTools/ToolDrilling.py:2429 appTools/ToolMilling.py:2100
-msgid ""
-"Height of the tool after\n"
-"the last move at the end of the job."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1469
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:174
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:159
-#: appTools/ToolDrilling.py:2447 appTools/ToolMilling.py:2117
-msgid "End move X,Y"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1471
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:176
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:161
-#: appTools/ToolDrilling.py:2449 appTools/ToolMilling.py:2119
-msgid ""
-"End move X,Y position. In format (x,y).\n"
-"If no value is entered then there is no move\n"
-"on X,Y plane at the end of the job."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1476 appTools/ToolDrilling.py:2454
-#: appTools/ToolMilling.py:2124
-msgid "X,Y coordinates"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1484
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:257
-msgid ""
-"The Preprocessor file that dictates\n"
-"the Machine Code (like GCode, RML, HPGL) output."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1500 appTools/ToolDrilling.py:2515
-#: appTools/ToolMilling.py:2194
-msgid "Add exclusion areas"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1503
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:210
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:410
-#: appTools/ToolDrilling.py:2518 appTools/ToolMilling.py:2197
-msgid ""
-"Include exclusion areas.\n"
-"In those areas the travel of the tools\n"
-"is forbidden."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1524 appGUI/ObjectUI.py:1543
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:430
-#: appTools/ToolDrilling.py:2540 appTools/ToolDrilling.py:2559
-#: appTools/ToolMilling.py:2218 appTools/ToolMilling.py:2237
-msgid "Strategy"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1524 appGUI/ObjectUI.py:1555
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:242
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:442
-#: appTools/ToolDrilling.py:2540 appTools/ToolDrilling.py:2572
-#: appTools/ToolMilling.py:2218 appTools/ToolMilling.py:2249
-msgid "Over Z"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1526 appTools/ToolDrilling.py:2542
-#: appTools/ToolMilling.py:2220
-msgid "This is the Area ID."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1528 appTools/ToolDrilling.py:2544
-#: appTools/ToolMilling.py:2222
-msgid "Type of the object where the exclusion area was added."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1530 appTools/ToolDrilling.py:2546
-#: appTools/ToolMilling.py:2224
-msgid ""
-"The strategy used for exclusion area. Go around the exclusion areas or over "
-"it."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1532 appTools/ToolDrilling.py:2548
-#: appTools/ToolMilling.py:2226
-msgid ""
-"If the strategy is to go over the area then this is the height at which the "
-"tool will go to avoid the exclusion area."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1544
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:231
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:431
-#: appTools/ToolDrilling.py:2560 appTools/ToolMilling.py:2238
-msgid ""
-"The strategy followed when encountering an exclusion area.\n"
-"Can be:\n"
-"- Over -> when encountering the area, the tool will go to a set height\n"
-"- Around -> will avoid the exclusion area by going around the area"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1548
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:235
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:435
-#: appTools/ToolDrilling.py:2564 appTools/ToolMilling.py:2242
-msgid "Over"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1549
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:436
-#: appTools/ToolDrilling.py:2565 appTools/ToolMilling.py:2243
-msgid "Around"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1556
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:243
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:443
-#: appTools/ToolDrilling.py:2573 appTools/ToolMilling.py:2250
-msgid ""
-"The height Z to which the tool will rise in order to avoid\n"
-"an interdiction area."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1566 appTools/ToolDrilling.py:2584
-#: appTools/ToolMilling.py:2260
-msgid "Add area:"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1567 appTools/ToolDrilling.py:2585
-#: appTools/ToolMilling.py:2261
-msgid "Add an Exclusion Area."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1573
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:220
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:420
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:305
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:324
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:288
-#: appTools/ToolDrilling.py:2591 appTools/ToolIsolation.py:3427
-#: appTools/ToolMilling.py:2267 appTools/ToolNCC.py:4238
-#: appTools/ToolPaint.py:3165
-msgid "The kind of selection shape used for area selection."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1583
-#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:32
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:42
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:32
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:32
-#: appTools/ToolDrilling.py:2602 appTools/ToolMilling.py:2277
-msgid "Delete All"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1584 appTools/ToolDrilling.py:2603
-#: appTools/ToolMilling.py:2278
-msgid "Delete all exclusion areas."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1587 appTools/ToolDrilling.py:2606
-#: appTools/ToolMilling.py:2281
-msgid "Delete Selected"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1588 appTools/ToolDrilling.py:2607
-#: appTools/ToolMilling.py:2282
-msgid "Delete all exclusion areas that are selected in the table."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1598
-msgid "Add Polish"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1600
-msgid ""
-"Will add a Paint section at the end of the GCode.\n"
-"A metallic brush will clean the material after milling."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1608
-#, fuzzy
-#| msgid "Diameter for the new tool."
-msgid "Diameter for the polishing tool."
-msgstr "Diameter for the new tool."
-
-#: appGUI/ObjectUI.py:1619
-msgid "Pressure"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1621
-msgid ""
-"Negative value. The higher the absolute value\n"
-"the stronger the pressure of the brush on the material."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1650
-#, fuzzy
-#| msgid ""
-#| "Algorithm for non-copper clearing:<BR><B>Standard</B>: Fixed step inwards."
-#| "<BR><B>Seed-based</B>: Outwards from seed.<BR><B>Line-based</B>: Parallel "
-#| "lines."
-msgid ""
-"Algorithm for polishing:\n"
-"- Standard: Fixed step inwards.\n"
-"- Seed-based: Outwards from seed.\n"
-"- Line-based: Parallel lines."
-msgstr ""
-"Algorithm for non-copper clearing:<BR><B>Standard</B>: Fixed step inwards."
-"<BR><B>Seed-based</B>: Outwards from seed.<BR><B>Line-based</B>: Parallel "
-"lines."
-
-#: appGUI/ObjectUI.py:1694 appTools/ToolDrilling.py:2629
-#: appTools/ToolMilling.py:2304
-msgid "Generate CNCJob object"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1697
-#, fuzzy
-#| msgid "Generate CNCJob"
-msgid "Generate CNCJob object."
-msgstr "Generate CNCJob"
-
-#: appGUI/ObjectUI.py:1699
-msgid ""
-"Add / Select at least one tool in the tool-table.\n"
-"Click the # header to select all, or Ctrl + LMB\n"
-"for custom selection of tools."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1718
-msgid "Launch Paint Tool in Tools Tab."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1727 appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:35
-msgid ""
-"Creates tool paths to cover the\n"
-"whole area of a polygon (remove\n"
-"all copper). You will be asked\n"
-"to click on the desired polygon."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1783
-msgid "CNC Job Object"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1799 appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:54
-msgid ""
-"This selects the kind of geometries on the canvas to plot.\n"
-"Those can be either of type 'Travel' which means the moves\n"
-"above the work piece or it can be of type 'Cut',\n"
-"which means the moves that cut into the material."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1808 appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:62
-msgid "Travel"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1831
-msgid "Edit an GCode object."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1868 appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:71
-msgid "Display Annotation"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1870 appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:73
-msgid ""
-"This selects if to display text annotation on the plot.\n"
-"When checked it will display numbers in order for each end\n"
-"of a travel line."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1882 appObjects/FlatCAMObj.py:861
-#: appTools/ToolProperties.py:562
-msgid "Travelled distance"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1884
-msgid ""
-"This is the total travelled distance on X-Y plane.\n"
-"In current units."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1895
-msgid "Estimated time"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1897
-msgid ""
-"This is the estimated time to do the routing/drilling,\n"
-"without the time spent in ToolChange events."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1921
-msgid "CNC Tools Table"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1924
-msgid ""
-"Tools in this CNCJob object used for cutting.\n"
-"The tool diameter is used for plotting on canvas.\n"
-"The 'Offset' entry will set an offset for the cut.\n"
-"'Offset' can be inside, outside, on path (none) and custom.\n"
-"'Type' entry is only informative and it allow to know the \n"
-"intent of using the current tool. \n"
-"It can be Rough(ing), Finish(ing) or Iso(lation).\n"
-"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n"
-"ball(B), or V-Shaped(V)."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1952 appGUI/ObjectUI.py:1963
-msgid "P"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1973
-msgid "Update Plot"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1975
-msgid "Update the plot."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1985
-msgid "Use CNC Code Snippets"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1987
-msgid ""
-"When selected, it will include CNC Code snippets (append and prepend)\n"
-"defined in the Preferences."
-msgstr ""
-
-#: appGUI/ObjectUI.py:1993
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:64
-msgid "Autolevelling"
-msgstr ""
-
-#: appGUI/ObjectUI.py:1995
-msgid "Enable the autolevelling feature."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2012
-msgid "Probe Points Table"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2013
-msgid "Generate GCode that will obtain the height map"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2015
-msgid "Show"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2016
-msgid "Toggle the display of the Probe Points table."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2029
-#, fuzzy
-#| msgid "Coordinates decimals"
-msgid "X-Y Coordinates"
-msgstr "Coordinates decimals"
-
-#: appGUI/ObjectUI.py:2029
-msgid "Height"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2033
-msgid "Plot probing points"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2035
-msgid ""
-"Plot the probing points in the table.\n"
-"If a Voronoi method is used then\n"
-"the Voronoi areas are also plotted."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2050
-msgid "Probe GCode Generation"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2052
-msgid ""
-"Will create a GCode which will be sent to the controller,\n"
-"either through a file or directly, with the intent to get the height map\n"
-"that is to modify the original GCode to level the cutting height."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2059
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:119
-msgid "Probe Z travel"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2061
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:121
-msgid "The safe Z for probe travelling between probe points."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2084
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:144
-msgid "Probe Feedrate"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2101
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:71
-msgid "Mode"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2102
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:72
-msgid ""
-"Choose a mode for height map generation.\n"
-"- Manual: will pick a selection of probe points by clicking on canvas\n"
-"- Grid: will automatically generate a grid of probe points"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2108
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:78
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74
-#: appTools/ToolCutOut.py:2324 appTools/ToolFiducials.py:801
-msgid "Manual"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2109
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79
-msgid "Grid"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2116
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:86
-msgid ""
-"Choose a method for approximation of heights from autolevelling data.\n"
-"- Voronoi: will generate a Voronoi diagram\n"
-"- Bilinear: will use bilinear interpolation. Usable only for grid mode."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2122
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:92
-msgid "Voronoi"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2123
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:93
-msgid "Bilinear"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2136
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:101
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:77
-#: appTools/ToolPanelize.py:787
-msgid "Columns"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2138
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:103
-msgid "The number of grid columns."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2147
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:111
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:89
-#: appTools/ToolPanelize.py:797
-msgid "Rows"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2149
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113
-msgid "The number of gird rows."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2154
-msgid "Add Probe Points"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2162
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:160
-msgid "Controller"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2164
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:162
-msgid ""
-"The kind of controller for which to generate\n"
-"height map gcode."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2210 appGUI/ObjectUI.py:2225
-#: appObjects/FlatCAMCNCJob.py:1293 appObjects/FlatCAMCNCJob.py:1315
-msgid "Control"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2220 appGUI/ObjectUI.py:2227
-#: appObjects/FlatCAMCNCJob.py:1295 appObjects/FlatCAMCNCJob.py:1317
-msgid "Sender"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2241
-msgid "COM list"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2243 appGUI/ObjectUI.py:2258
-msgid "Lists the available serial ports."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2247
-msgid "Search"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2249
-msgid "Search for the available serial ports."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2256
-msgid "Baud rates"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2275
-msgid "New, custom baudrate."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2283
-msgid "Add the specified custom baudrate to the list."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2289
-msgid "Delete selected baudrate"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2293
-msgid "Reset"
-msgstr "Reset"
-
-#: appGUI/ObjectUI.py:2295
-msgid "Software reset of the controller."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2301 appObjects/FlatCAMCNCJob.py:1309
-msgid "Disconnected"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2303
-msgid "Connect to the selected port with the selected baud rate."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2328
-msgid "Jog"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2336
-msgid "Zero Axes"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2369
-msgid "Pause/Resume"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2391
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:172
-msgid "Step"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2393
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:174
-msgid "Each jog action will move the axes with this value."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2405
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:185
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:89
-#: appObjects/FlatCAMObj.py:828 appTools/ToolProperties.py:529
-msgid "Feedrate"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2407
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:187
-msgid "Feedrate when jogging."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2427
-msgid "Send Command"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2429 appGUI/ObjectUI.py:2439
-msgid "Send a custom command to GRBL."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2434
-msgid "Type GRBL command ..."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2437
-msgid "Send"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2445
-#, fuzzy
-#| msgid "GCode Parameters"
-msgid "Get Config parameter"
-msgstr "GCode Parameters"
-
-#: appGUI/ObjectUI.py:2447
-msgid "A GRBL configuration parameter."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2452
-msgid "Type GRBL parameter ..."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2455
-msgid "Get"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2457
-msgid "Get the value of a specified GRBL parameter."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2465
-msgid "Get Report"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2467
-msgid "Print in shell the GRBL report."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2473
-msgid "Apply AutoLevelling"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2475
-msgid ""
-"Will send the probing GCode to the GRBL controller,\n"
-"wait for the Z probing data and then apply this data\n"
-"over the original GCode therefore doing autolevelling."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2484
-msgid "Will save the GRBL height map."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2494
-#, fuzzy
-#| msgid "Starting G-Code..."
-msgid "Save Probing GCode"
-msgstr "Starting G-Code..."
-
-#: appGUI/ObjectUI.py:2496
-#, fuzzy
-#| msgid "Starting G-Code..."
-msgid "Will save the probing GCode."
-msgstr "Starting G-Code..."
-
-#: appGUI/ObjectUI.py:2505
-msgid "View/Edit the probing GCode."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2512 appObjects/FlatCAMCNCJob.py:1726
-#: appObjects/FlatCAMCNCJob.py:1730
-msgid "Import Height Map"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2514
-msgid ""
-"Import the file that has the Z heights\n"
-"obtained through probing and then apply this data\n"
-"over the original GCode therefore\n"
-"doing autolevelling."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2532
-msgid "Export CNC Code"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2534
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:37
-#: appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:33
-msgid ""
-"Export and save G-Code to\n"
-"make this object to a file."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2543
-msgid "Save CNC Code"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2546
-msgid ""
-"Opens dialog to save G-Code\n"
-"file."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2553
-msgid "Review CNC Code."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2614
-msgid "Script Object"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2634 appGUI/ObjectUI.py:2708
-msgid "Auto Completer"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2636
-msgid "This selects if the auto completer is enabled in the Script Editor."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2681
-msgid "Document Object"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2710
-msgid "This selects if the auto completer is enabled in the Document Editor."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2728
-msgid "Font Type"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2745
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:189
-msgid "Font Size"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2781
-msgid "Alignment"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2786
-msgid "Align Left"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2791 app_Main.py:4993
-msgid "Center"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2796
-msgid "Align Right"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2801
-msgid "Justify"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2808
-msgid "Font Color"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2810
-msgid "Set the font color for the selected text"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2824
-msgid "Selection Color"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2826
-msgid "Set the selection color when doing text selection."
-msgstr ""
-
-#: appGUI/ObjectUI.py:2840
-msgid "Tab Size"
-msgstr ""
-
-#: appGUI/ObjectUI.py:2842
-msgid "Set the tab size. In pixels. Default value is 80 pixels."
-msgstr ""
-
-#: appGUI/PlotCanvas.py:236 appGUI/PlotCanvasLegacy.py:345
-msgid "Axis enabled."
-msgstr ""
-
-#: appGUI/PlotCanvas.py:242 appGUI/PlotCanvasLegacy.py:352
-msgid "Axis disabled."
-msgstr ""
-
-#: appGUI/PlotCanvas.py:260 appGUI/PlotCanvasLegacy.py:372
-msgid "HUD enabled."
-msgstr ""
-
-#: appGUI/PlotCanvas.py:268 appGUI/PlotCanvasLegacy.py:378
-msgid "HUD disabled."
-msgstr ""
-
-#: appGUI/PlotCanvas.py:276 appGUI/PlotCanvasLegacy.py:451
-msgid "Grid enabled."
-msgstr ""
-
-#: appGUI/PlotCanvas.py:280 appGUI/PlotCanvasLegacy.py:459
-msgid "Grid disabled."
-msgstr ""
-
-#: appGUI/PlotCanvasLegacy.py:1530
-msgid ""
-"Could not annotate due of a difference between the number of text elements "
-"and the number of text positions."
-msgstr ""
-
-#: appGUI/preferences/PreferencesUIManager.py:905
-msgid "Preferences applied."
-msgstr ""
-
-#: appGUI/preferences/PreferencesUIManager.py:925
-msgid "Are you sure you want to continue?"
-msgstr ""
-
-#: appGUI/preferences/PreferencesUIManager.py:926
-msgid "Application will restart"
-msgstr ""
-
-#: appGUI/preferences/PreferencesUIManager.py:1024
-msgid "Preferences closed without saving."
-msgstr ""
-
-#: appGUI/preferences/PreferencesUIManager.py:1036
-msgid "Preferences default values are restored."
-msgstr ""
-
-#: appGUI/preferences/PreferencesUIManager.py:1067 app_Main.py:2622
-#: app_Main.py:2690
-msgid "Failed to write defaults to file."
-msgstr ""
-
-#: appGUI/preferences/PreferencesUIManager.py:1071
-#: appGUI/preferences/PreferencesUIManager.py:1185
-msgid "Preferences saved."
-msgstr ""
-
-#: appGUI/preferences/PreferencesUIManager.py:1121
-msgid "Preferences edited but not saved."
-msgstr ""
-
-#: appGUI/preferences/PreferencesUIManager.py:1170
-msgid ""
-"One or more values are changed.\n"
-"Do you want to save the Preferences?"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:27
-msgid "CNC Job Adv. Options"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:35
-#: appGUI/preferences/cncjob/CNCJobEditorPrefGroupUI.py:31
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:30
-#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:31
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:31
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:37
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:36
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:36
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:36
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:31
-#: appGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:31
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:36
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:31
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:30
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:31
-#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:35
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:32
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:31
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:31
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:30
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:31
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:31
-#: 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:1182
-#: appTools/ToolCorners.py:377 appTools/ToolEtchCompensation.py:356
-#: appTools/ToolFiducials.py:763 appTools/ToolInvertGerber.py:228
-#: appTools/ToolQRCode.py:695
-msgid "Parameters"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:43
-msgid "Annotation Size"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:45
-msgid "The font size of the annotation text. In pixels."
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:54
-msgid "Annotation Color"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:56
-msgid "Set the font color for the annotation texts."
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:66
-#, fuzzy
-#| msgid "Diameter for the new tool."
-msgid "Parameters for the autolevelling."
-msgstr "Diameter for the new tool."
-
-#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:200
-msgid "Safe height (Z) distance when jogging to origin."
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobEditorPrefGroupUI.py:27
-msgid "CNC Job Editor"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobEditorPrefGroupUI.py:33
-#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:33
-#, fuzzy
-#| msgid "Paint Tool. Reading parameters."
-msgid "A list of Editor parameters."
-msgstr "Paint Tool. Reading parameters."
-
-#: appGUI/preferences/cncjob/CNCJobEditorPrefGroupUI.py:46
-msgid "Prepend to G-Code"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobEditorPrefGroupUI.py:48
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to add at the beginning of the G-Code file."
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobEditorPrefGroupUI.py:55
-msgid ""
-"Type here any G-Code commands you would like to add at the beginning of the "
-"G-Code file."
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobEditorPrefGroupUI.py:62
-msgid "Append to G-Code"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobEditorPrefGroupUI.py:64
-msgid ""
-"Type here any G-Code commands you would\n"
-"like to append to the generated file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobEditorPrefGroupUI.py:72
-msgid ""
-"Type here any G-Code commands you would like to append to the generated "
-"file.\n"
-"I.e.: M2 (End of program)"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:26
-msgid "CNC Job General"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:47
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:59
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:59
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:45
-msgid "Circle Steps"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:49
-msgid ""
-"The number of circle steps for <b>GCode</b> \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:58
-msgid "Travel dia"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:60
-msgid ""
-"The width of the travel lines to be\n"
-"rendered in the plot."
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:73
-msgid "G-code Decimals"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:76
-#: appTools/ToolFiducials.py:682
-msgid "Coordinates"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:78
-msgid ""
-"The number of decimals to be used for \n"
-"the X, Y, Z coordinates in CNC code (GCODE, etc.)"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:91
-msgid ""
-"The number of decimals to be used for \n"
-"the Feedrate parameter in CNC code (GCODE, etc.)"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:102
-msgid "Coordinates type"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:104
-msgid ""
-"The type of coordinates to be used in Gcode.\n"
-"Can be:\n"
-"- Absolute G90 -> the reference is the origin x=0, y=0\n"
-"- Incremental G91 -> the reference is the previous position"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:110
-msgid "Absolute G90"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:111
-msgid "Incremental G91"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:121
-msgid "Force Windows style line-ending"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:123
-msgid ""
-"When checked will force a Windows style line-ending\n"
-"(\\r\\n) on non-Windows OS's."
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:135
-msgid "Travel Line Color"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:139
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:180
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:275
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:154
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:195
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:158
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:169
-#: appTools/ToolRulesCheck.py:1288
-msgid "Outline"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:141
-msgid "Set the travel line color for plotted objects."
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:149
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:190
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:285
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:163
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:205
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:179
-msgid "Fill"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:151
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:192
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:287
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:181
-msgid ""
-"Set the fill color for plotted objects.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:161
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:297
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:176
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:218
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:191
-msgid "Alpha"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:163
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:299
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:193
-msgid "Set the fill transparency for plotted objects."
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:176
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:271
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:154
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:165
-msgid "Object Color"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:182
-msgid "Set the color for plotted objects."
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:27
-msgid "CNC Job Options"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:31
-msgid "Export G-Code"
-msgstr ""
-
-#: appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:52
-msgid "Plot kind"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:27
-msgid "Excellon Adv. Options"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:34
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:34
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:31
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:276
-msgid "Advanced Options"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:36
-msgid ""
-"A list of Excellon advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonAdvOptPrefGroupUI.py:48
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:52
-msgid "Table Show/Hide"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:32
-msgid "A list of Excellon Editor parameters."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:40
-#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:41
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:41
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:172
-msgid "Selection limit"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:42
-msgid ""
-"Set the number of selected Excellon geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:55
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:134
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:117
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:123
-msgid "New Dia"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:80
-msgid "Linear Drill Array"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:84
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:232
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:121
-msgid "Linear Direction"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:126
-msgid "Circular Drill Array"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:130
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:280
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:165
-msgid "Circular Direction"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:132
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:282
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:167
-msgid ""
-"Direction for circular array.\n"
-"Can be CW = clockwise or CCW = counter clockwise."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:143
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:293
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:178
-msgid "Circular Angle"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:196
-msgid ""
-"Angle at which the slot is placed.\n"
-"The precision is of max 2 decimals.\n"
-"Min value is: -359.99 degrees.\n"
-"Max value is:  360.00 degrees."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:215
-msgid "Linear Slot Array"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:276
-msgid "Circular Slot Array"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:26
-msgid "Excellon Export"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:30
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:31
-msgid "Export Options"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:32
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Excellon menu entry."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:41
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:172
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:39
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:42
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:82
-#: appTools/ToolDistance.py:562 appTools/ToolDistanceMin.py:237
-#: appTools/ToolPcbWizard.py:455 appTools/ToolProperties.py:157
-msgid "Units"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:43
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:49
-msgid "The units used in the Excellon file."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:46
-#: 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 appTools/ToolPcbWizard.py:453
-msgid "INCH"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:47
-#: 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 appTools/ToolPcbWizard.py:454
-msgid "MM"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:55
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:56
-msgid "Int/Decimals"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:57
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:69
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:104
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:133
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Excellon coordinates."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:82
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:117
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:146
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Excellon coordinates."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:91
-msgid "Format"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:93
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:103
-msgid ""
-"Select the kind of coordinates format used.\n"
-"Coordinates can be saved with decimal point or without.\n"
-"When there is no decimal point, it is required to specify\n"
-"the number of digits for integer part and the number of decimals.\n"
-"Also it will have to be specified if LZ = leading zeros are kept\n"
-"or TZ = trailing zeros are kept."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:100
-msgid "Decimal"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:101
-msgid "No-Decimal"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:114
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:154
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:96
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:97
-msgid "Zeros"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:117
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:124
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:167
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:106
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:107
-#: appTools/ToolPcbWizard.py:439
-msgid "LZ"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:125
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:168
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:107
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:108
-#: appTools/ToolPcbWizard.py:440
-msgid "TZ"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:127
-msgid ""
-"This sets the default type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:137
-msgid "Slot type"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:140
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:150
-msgid ""
-"This sets how the slots will be exported.\n"
-"If ROUTED then the slots will be routed\n"
-"using M15/M16 commands.\n"
-"If DRILLED(G85) the slots will be exported\n"
-"using the Drilled slot command (G85)."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:147
-msgid "Routed"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonExpPrefGroupUI.py:148
-msgid "Drilled(G85)"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:29
-msgid "Excellon General"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:54
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:47
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:52
-msgid "M-Color"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:71
-msgid "Excellon Format"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:73
-msgid ""
-"The NC drill files, usually named Excellon files\n"
-"are files that can be found in different formats.\n"
-"Here we set the format used when the provided\n"
-"coordinates are not using period.\n"
-"\n"
-"Possible presets:\n"
-"\n"
-"PROTEUS 3:3 MM LZ\n"
-"DipTrace 5:2 MM TZ\n"
-"DipTrace 4:3 MM LZ\n"
-"\n"
-"EAGLE 3:3 MM TZ\n"
-"EAGLE 4:3 MM TZ\n"
-"EAGLE 2:5 INCH TZ\n"
-"EAGLE 3:5 INCH TZ\n"
-"\n"
-"ALTIUM 2:4 INCH LZ\n"
-"Sprint Layout 2:4 INCH LZ\n"
-"KiCAD 3:5 INCH TZ"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:97
-msgid "Default values for INCH are 2:4"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:125
-msgid "METRIC"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:126
-msgid "Default values for METRIC are 3:3"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:157
-msgid ""
-"This sets the type of Excellon zeros.\n"
-"If LZ then Leading Zeros are kept and\n"
-"Trailing Zeros are removed.\n"
-"If TZ is checked then Trailing Zeros are kept\n"
-"and Leading Zeros are removed.\n"
-"\n"
-"This is used when there is no information\n"
-"stored in the Excellon file."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:175
-msgid ""
-"This sets the default units of Excellon files.\n"
-"If it is not detected in the parsed file the value here\n"
-"will be used.Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:185
-msgid ""
-"This sets the units of Excellon files.\n"
-"Some Excellon files don't have an header\n"
-"therefore this parameter will be used."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:193
-msgid "Update Export settings"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:210
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:91
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:110
-#: appTools/ToolPanelize.py:821
-#, fuzzy
-#| msgid "Optimization Time"
-msgid "Path Optimization"
-msgstr "Optimization Time"
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:213
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:94
-msgid "Algorithm:"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:215
-msgid ""
-"This sets the optimization type for the Excellon drill path.\n"
-"If <<MetaHeuristic>> is checked then Google OR-Tools algorithm with\n"
-"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
-"If <<Basic>> is checked then Google OR-Tools Basic algorithm is used.\n"
-"If <<TSA>> is checked then Travelling Salesman algorithm is used for\n"
-"drill path optimization.\n"
-"\n"
-"Some options are disabled when FlatCAM works in 32bit mode."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:225
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:310
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:314
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:109
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:171
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:175
-msgid "MetaHeuristic"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:226
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:310
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:314
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:104
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:110
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:171
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:175
-#: appObjects/FlatCAMExcellon.py:154 appObjects/FlatCAMGeometry.py:565
-#: appObjects/FlatCAMGerber.py:171 appTools/ToolDrilling.py:306
-#: appTools/ToolIsolation.py:246 appTools/ToolMilling.py:294
-msgid "Basic"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:227
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:111
-msgid "TSA"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:233
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:117
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:238
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:209
-msgid "Duration"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:236
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:119
-msgid ""
-"When OR-Tools Metaheuristic (MH) is enabled there is a\n"
-"maximum threshold for how much time is spent doing the\n"
-"path optimization. This max duration is set here.\n"
-"In seconds."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:255
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:138
-#, fuzzy
-#| msgid "&Options"
-msgid "Join Option"
-msgstr "&Options"
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:258
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:141
-#, fuzzy
-#| msgid "Meas. Tool"
-msgid "Fuse Tools"
-msgstr "Meas. Tool"
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:260
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:143
-msgid ""
-"When checked the joined (merged) object tools\n"
-"will be merged also but only if they share some of their attributes."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:277
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:160
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:171
-msgid "Set the line color for plotted objects."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:29
-msgid "Excellon Options"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:33
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:35
-msgid "Create CNC Job"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:35
-msgid ""
-"Parameters used to create a CNC Job object\n"
-"for this drill object."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:48
-#: appTools/ToolMilling.py:1740
-msgid ""
-"Operation type:\n"
-"- Drilling -> will drill the drills/slots associated with this tool\n"
-"- Milling -> will mill the drills/slots"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:64
-#: appTools/ToolMilling.py:1762
-msgid ""
-"Milling type:\n"
-"- Drills -> will mill the drills associated with this tool\n"
-"- Slots -> will mill the slots associated with this tool\n"
-"- Both -> will mill both drills and mills or whatever is available"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:73
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199
-#: appTools/ToolFilm.py:1105 appTools/ToolMilling.py:1771
-msgid "Both"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:82
-#: appTools/ToolMilling.py:1781
-msgid "The diameter of the tool who will do the milling"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:93
-msgid "Mill Holes"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:95
-msgid "Create Geometry for milling holes."
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:99
-msgid "Drill Tool dia"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:110
-msgid "Slot Tool dia"
-msgstr ""
-
-#: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:112
-msgid ""
-"Diameter of the cutting tool\n"
-"when milling slots."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:28
-#: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:74
-msgid "App Settings"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:49
-msgid "Grid Settings"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53
-msgid "X value"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:55
-msgid "This is the Grid snap value on X axis."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65
-msgid "Y value"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:67
-msgid "This is the Grid snap value on Y axis."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:77
-msgid "Snap Max"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:92
-msgid "Workspace Settings"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:95
-msgid "Active"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:105
-msgid ""
-"Select the type of rectangle to be used on canvas,\n"
-"as valid workspace."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:171
-msgid "Orientation"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:172
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:228
-#: appTools/ToolFilm.py:1270
-msgid ""
-"Can be:\n"
-"- Portrait\n"
-"- Landscape"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:176
-#: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:168
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232
-#: appTools/ToolFilm.py:1274
-msgid "Portrait"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:177
-#: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:169
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233
-#: appTools/ToolFilm.py:1275
-msgid "Landscape"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:193
-msgid "Notebook"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:195
-msgid ""
-"This sets the font size for the elements found in the Notebook.\n"
-"The notebook is the collapsible area in the left side of the GUI,\n"
-"and include the Project, Selected and Tool tabs."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:214
-#: appTools/ToolDblSided.py:673 appTools/ToolDblSided.py:847
-msgid "Axis"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:216
-msgid "This sets the font size for canvas axis."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:233
-msgid "Textbox"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:235
-msgid ""
-"This sets the font size for the Textbox GUI\n"
-"elements that are used in the application."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253
-msgid "HUD"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:255
-msgid "This sets the font size for the Heads Up Display."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:280
-msgid "Mouse Settings"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:284
-msgid "Cursor Shape"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:286
-msgid ""
-"Choose a mouse cursor shape.\n"
-"- Small -> with a customizable size.\n"
-"- Big -> Infinite lines"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:292
-#: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:207
-msgid "Small"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:293
-#: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:208
-msgid "Big"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:300
-msgid "Cursor Size"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:302
-msgid "Set the size of the mouse cursor, in pixels."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:313
-msgid "Cursor Width"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:315
-msgid "Set the line width of the mouse cursor, in pixels."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:326
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:333
-msgid "Cursor Color"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:328
-msgid "Check this box to color mouse cursor."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:335
-msgid "Set the color of the mouse cursor."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:350
-msgid "Pan Button"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:352
-msgid ""
-"Select the mouse button to use for panning:\n"
-"- MMB --> Middle Mouse Button\n"
-"- RMB --> Right Mouse Button"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:356
-#: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:240
-msgid "MMB"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:357
-#: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:241
-msgid "RMB"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:363
-msgid "Multiple Selection"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:365
-msgid "Select the key used for multiple selection."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:367
-#: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:247
-msgid "CTRL"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:368
-#: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:248
-msgid "SHIFT"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:379
-msgid "Delete object confirmation"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:381
-msgid ""
-"When checked the application will ask for user confirmation\n"
-"whenever the Delete object(s) event is triggered, either by\n"
-"menu shortcut or key shortcut."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:387
-msgid "Allow Edit"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:389
-msgid ""
-"When cheched, the user can edit the objects in the Project Tab\n"
-"by using the left mouse button click on the object name.\n"
-"Active after restart."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:396
-msgid "\"Open\" behavior"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:398
-msgid ""
-"When checked the path for the last saved file is used when saving files,\n"
-"and the path for the last opened file is used when opening files.\n"
-"\n"
-"When unchecked the path for opening files is the one used last: either the\n"
-"path for saving files or the path for opening files."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:407
-msgid "Enable ToolTips"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:409
-msgid ""
-"Check this box if you want to have toolTips displayed\n"
-"when hovering with mouse over items throughout the App."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:416
-msgid "Allow Machinist Unsafe Settings"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:418
-msgid ""
-"If checked, some of the application settings will be allowed\n"
-"to have values that are usually unsafe to use.\n"
-"Like Z travel negative values or Z Cut positive values.\n"
-"It will applied at the next application start.\n"
-"<<WARNING>>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:430
-msgid "Bookmarks limit"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:432
-msgid ""
-"The maximum number of bookmarks that may be installed in the menu.\n"
-"The number of bookmarks in the bookmark manager may be greater\n"
-"but the menu will hold only so much."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:441
-msgid "Activity Icon"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:443
-msgid "Select the GIF that show activity when FlatCAM is active."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:29
-msgid "App Preferences"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:40
-msgid ""
-"The default value for FlatCAM units.\n"
-"Whatever is selected here is set every time\n"
-"FlatCAM is started."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:44
-msgid "IN"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:50
-msgid "Precision MM"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:52
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in METRIC system.\n"
-"Any change here require an application restart."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:64
-msgid "Precision INCH"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:66
-msgid ""
-"The number of decimals used throughout the application\n"
-"when the set units are in INCH system.\n"
-"Any change here require an application restart."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:78
-msgid "Graphic Engine"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:79
-msgid ""
-"Choose what graphic engine to use in FlatCAM.\n"
-"Legacy(2D) -> reduced functionality, slow performance but enhanced "
-"compatibility.\n"
-"OpenGL(3D) -> full functionality, high performance\n"
-"Some graphic cards are too old and do not work in OpenGL(3D) mode, like:\n"
-"Intel HD3000 or older. In this case the plot area will be black therefore\n"
-"use the Legacy(2D) mode."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:85
-msgid "Legacy(2D)"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:86
-msgid "OpenGL(3D)"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:98
-msgid "APPLICATION LEVEL"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:99
-msgid ""
-"Choose the default level of usage for FlatCAM.\n"
-"BASIC level -> reduced functionality, best for beginner's.\n"
-"ADVANCED level -> full functionality.\n"
-"\n"
-"The choice here will influence the parameters in\n"
-"the Selected Tab for all kinds of FlatCAM objects."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:105
-#: appObjects/FlatCAMExcellon.py:163 appObjects/FlatCAMGeometry.py:586
-#: appObjects/FlatCAMGerber.py:179 appTools/ToolDrilling.py:310
-#: appTools/ToolIsolation.py:273 appTools/ToolMilling.py:305
-msgid "Advanced"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:111
-msgid "Portable app"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:112
-msgid ""
-"Choose if the application should run as portable.\n"
-"\n"
-"If Checked the application will run portable,\n"
-"which means that the preferences files will be saved\n"
-"in the application folder, in the lib\\config subfolder."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:125
-msgid "Languages"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:126
-msgid "Set the language used throughout FlatCAM."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:132
-msgid "Apply Language"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:133
-msgid ""
-"Set the language used throughout FlatCAM.\n"
-"The app will restart after click."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:147
-msgid "Startup Settings"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:151
-msgid "Splash Screen"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:153
-msgid "Enable display of the splash screen at application startup."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:165
-msgid "Sys Tray Icon"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:167
-msgid "Enable display of FlatCAM icon in Sys Tray."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:172
-msgid "Show Shell"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:174
-msgid ""
-"Check this box if you want the shell to\n"
-"start automatically at startup."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:181
-msgid "Show Project"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:183
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"to be shown automatically at startup."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:189
-msgid "Version Check"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:191
-msgid ""
-"Check this box if you want to check\n"
-"for a new version automatically at startup."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:198
-msgid "Send Statistics"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:200
-msgid ""
-"Check this box if you agree to send anonymous\n"
-"stats automatically at startup, to help improve FlatCAM."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:214
-msgid "Workers number"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:216
-msgid ""
-"The number of Qthreads made available to the App.\n"
-"A bigger number may finish the jobs more quickly but\n"
-"depending on your computer speed, may make the App\n"
-"unresponsive. Can have a value between 2 and 16.\n"
-"Default value is 2.\n"
-"After change, it will be applied at next App start."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:230
-msgid "Geo Tolerance"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:232
-msgid ""
-"This value can counter the effect of the Circle Steps\n"
-"parameter. Default value is 0.005.\n"
-"A lower value will increase the detail both in image\n"
-"and in Gcode for the circles, with a higher cost in\n"
-"performance. Higher value will provide more\n"
-"performance at the expense of level of detail."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:252
-msgid "Save Settings"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:256
-msgid "Save Compressed Project"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:258
-msgid ""
-"Whether to save a compressed or uncompressed project.\n"
-"When checked it will save a compressed FlatCAM project."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:267
-msgid "Compression"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:269
-msgid ""
-"The level of compression used when saving\n"
-"a FlatCAM project. Higher value means better compression\n"
-"but require more RAM usage and more processing time."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:280
-msgid "Enable Auto Save"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:282
-msgid ""
-"Check to enable the autosave feature.\n"
-"When enabled, the application will try to save a project\n"
-"at the set interval."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:292
-msgid "Interval"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:294
-msgid ""
-"Time interval for autosaving. In milliseconds.\n"
-"The application will try to save periodically but only\n"
-"if the project was saved manually at least once.\n"
-"While active, some operations may block this feature."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:310
-msgid "Text to PDF parameters"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:312
-msgid "Used when saving text in Code Editor or in FlatCAM Document objects."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:321
-msgid "Top Margin"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:323
-msgid "Distance between text body and the top of the PDF file."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:334
-msgid "Bottom Margin"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:336
-msgid "Distance between text body and the bottom of the PDF file."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:347
-msgid "Left Margin"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:349
-msgid "Distance between text body and the left of the PDF file."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:360
-msgid "Right Margin"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralAppPrefGroupUI.py:362
-msgid "Distance between text body and the right of the PDF file."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:26
-msgid "GUI Preferences"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:36
-msgid "Theme"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:38
-msgid ""
-"Select a theme for the application.\n"
-"It will theme the plot area."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:43
-msgid "Light"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:44
-msgid "Dark"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:51
-msgid "Use Gray Icons"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:53
-msgid ""
-"Check this box to use a set of icons with\n"
-"a lighter (gray) color. To be used when a\n"
-"full dark theme is applied."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:73
-msgid "Layout"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:75
-msgid ""
-"Select a layout for the application.\n"
-"It is applied immediately."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:95
-msgid "Style"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:97
-msgid ""
-"Select a style for the application.\n"
-"It will be applied at the next app start."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:111
-msgid "HDPI Support"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:113
-msgid ""
-"Enable High DPI support for the application.\n"
-"It will be applied at the next app start."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:127
-#, fuzzy
-#| msgid "Sel. Shape"
-msgid "Hover Shape"
-msgstr "Sel. Shape"
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:129
-msgid ""
-"Enable display of a hover shape for the application objects.\n"
-"It is displayed whenever the mouse cursor is hovering\n"
-"over any kind of not-selected object."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:136
-#, fuzzy
-#| msgid "Sel. Shape"
-msgid "Selection Shape"
-msgstr "Sel. Shape"
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:138
-msgid ""
-"Enable the display of a selection shape for the application objects.\n"
-"It is displayed whenever the mouse selects an object\n"
-"either by clicking or dragging mouse from left to right or\n"
-"right to left."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:151
-msgid "Left-Right Selection Color"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:156
-msgid "Set the line color for the 'left to right' selection box."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:165
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from left to right.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:178
-msgid "Set the fill transparency for the 'left to right' selection box."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:191
-msgid "Right-Left Selection Color"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:197
-msgid "Set the line color for the 'right to left' selection box."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:207
-msgid ""
-"Set the fill color for the selection box\n"
-"in case that the selection is done from right to left.\n"
-"First 6 digits are the color and the last 2\n"
-"digits are for alpha (transparency) level."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:220
-msgid "Set the fill transparency for selection 'right to left' box."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:236
-msgid "Editor Color"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:240
-msgid "Drawing"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:242
-msgid "Set the color for the shape."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:252
-msgid "Set the color of the shape when selected."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:268
-msgid "Project Items Color"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:272
-msgid "Enabled"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:274
-msgid "Set the color of the items in Project Tab Tree."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:281
-msgid "Disabled"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:283
-msgid ""
-"Set the color of the items in Project Tab Tree,\n"
-"for the case when the items are disabled."
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:292
-msgid "Project AutoHide"
-msgstr ""
-
-#: appGUI/preferences/general/GeneralGUIPrefGroupUI.py:294
-msgid ""
-"Check this box if you want the project/selected/tool tab area to\n"
-"hide automatically when there are no objects loaded and\n"
-"to show whenever a new object is created."
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:28
-msgid "Geometry Adv. Options"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:36
-msgid ""
-"A list of Geometry advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:46
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:112
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:134
-#: appTools/ToolCalibration.py:820 appTools/ToolSolderPaste.py:1312
-msgid "Toolchange X-Y"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:48
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:298
-msgid "Toolchange X,Y position."
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:58
-msgid ""
-"Height of the tool just after starting the work.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:137
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:358
-msgid "Spindle direction"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:139
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:360
-msgid ""
-"This sets the direction that the spindle is rotating.\n"
-"It can be either:\n"
-"- CW = clockwise or\n"
-"- CCW = counter clockwise"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:151
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:371
-msgid "Fast Plunge"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:153
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:373
-msgid ""
-"By checking this, the vertical move from\n"
-"Z_Toolchange to Z_move is done with G0,\n"
-"meaning the fastest speed available.\n"
-"WARNING: the move is done at Toolchange X,Y coords."
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:161
-msgid "Segment X size"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:163
-msgid ""
-"The size of the trace segment on the X axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the X axis."
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:177
-msgid "Segment Y size"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:179
-msgid ""
-"The size of the trace segment on the Y axis.\n"
-"Useful for auto-leveling.\n"
-"A value of 0 means no segmentation on the Y axis."
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:200
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:400
-msgid "Area Exclusion"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:202
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:402
-#, fuzzy
-#| msgid "Paint Tool. Reading parameters."
-msgid "Area exclusion parameters."
-msgstr "Paint Tool. Reading parameters."
-
-#: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:207
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:407
-msgid "Exclusion areas"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:43
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:174
-msgid ""
-"Set the number of selected geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:58
-msgid ""
-"Milling type:\n"
-"- climb / best for precision milling and to reduce tool usage\n"
-"- conventional / useful when there is no backlash compensation"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:29
-msgid "Geometry General"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:61
-msgid ""
-"The number of circle steps for <b>Geometry</b> \n"
-"circle and arc shapes linear approximation."
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:75
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:41
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:41
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:48
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:42
-msgid "Tools Dia"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:77
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:108
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:43
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:43
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:50
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:44
-msgid ""
-"Diameters of the tools, separated by comma.\n"
-"The value of the diameter has to use the dot decimals separator.\n"
-"Valid values: 0.3, 1.0"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:96
-msgid ""
-"This sets the path optimization algorithm.\n"
-"- Rtre -> Rtree algorithm\n"
-"- MetaHeuristic -> Google OR-Tools algorithm with\n"
-"MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
-"- Basic -> Using Google OR-Tools Basic algorithm\n"
-"- TSA -> Using Travelling Salesman algorithm\n"
-"\n"
-"Some options are disabled when FlatCAM works in 32bit mode."
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:108
-msgid "Rtree"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:29
-msgid "Geometry Options"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:37
-msgid ""
-"Create a CNC Job object\n"
-"tracing the contours of this\n"
-"Geometry object."
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:81
-msgid "Depth/Pass"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:83
-msgid ""
-"The depth to cut on each pass,\n"
-"when multidepth is enabled.\n"
-"It has positive value although\n"
-"it is a fraction from the depth\n"
-"which has negative value."
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:122
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:116
-#: appTools/ToolDrilling.py:2385
-msgid "Tool change"
-msgstr ""
-
-#: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:233
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:200
-msgid "Enable Dwell"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:27
-msgid "Gerber Adv. Options"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:33
-msgid ""
-"A list of Gerber advanced parameters.\n"
-"Those parameters are available only for\n"
-"Advanced App. Level."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:43
-msgid "\"Follow\""
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64
-#: appObjects/FlatCAMGerber.py:367 appTools/ToolCopperThieving.py:581
-#: appTools/ToolCopperThieving.py:770 appTools/ToolCopperThieving.py:782
-#: appTools/ToolIsolation.py:1353 appTools/ToolNCC.py:1744
-#: appTools/ToolNCC.py:1771 appTools/ToolNCC.py:1879 appTools/ToolNCC.py:1892
-#: appTools/ToolNCC.py:2738 appTools/ToolNCC.py:2843 appTools/ToolNCC.py:2858
-#: appTools/ToolNCC.py:3124 appTools/ToolNCC.py:3225 appTools/ToolNCC.py:3240
-#: camlib.py:1113
-msgid "Buffering"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:66
-msgid ""
-"Buffering type:\n"
-"- None --> best performance, fast file loading but no so good display\n"
-"- Full --> slow file loading but good visuals. This is the default.\n"
-"<<WARNING>>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:71
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196
-#: appObjects/FlatCAMObj.py:752 appObjects/FlatCAMObj.py:755
-#: appObjects/FlatCAMObj.py:758 appObjects/FlatCAMObj.py:786
-#: appObjects/FlatCAMObj.py:793 appObjects/FlatCAMObj.py:796
-#: appTools/ToolFiducials.py:815 appTools/ToolFilm.py:1102
-#: appTools/ToolProperties.py:453 appTools/ToolProperties.py:456
-#: appTools/ToolProperties.py:459 appTools/ToolProperties.py:487
-#: appTools/ToolProperties.py:494 appTools/ToolProperties.py:497
-msgid "None"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:77
-msgid "Delayed Buffering"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:79
-msgid "When checked it will do the buffering in background."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:84
-msgid "Simplify"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:86
-msgid ""
-"When checked all the Gerber polygons will be\n"
-"loaded with simplification having a set tolerance.\n"
-"<<WARNING>>: Don't change this unless you know what you are doing !!!"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:93
-msgid "Tolerance"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:94
-msgid "Tolerance for polygon simplification."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:33
-msgid "A list of Gerber Editor parameters."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:43
-msgid ""
-"Set the number of selected Gerber geometry\n"
-"items above which the utility geometry\n"
-"becomes just a selection rectangle.\n"
-"Increases the performance when moving a\n"
-"large number of geometric elements."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:56
-msgid "New Aperture code"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:69
-msgid "New Aperture size"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:71
-msgid "Size for the new aperture"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:82
-msgid "New Aperture type"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:84
-msgid ""
-"Type for the new aperture.\n"
-"Can be 'C', 'R' or 'O'."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:106
-msgid "Aperture Dimensions"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:117
-msgid "Linear Pad Array"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:161
-msgid "Circular Pad Array"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:197
-msgid "Distance at which to buffer the Gerber element."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:206
-msgid "Scale Tool"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:212
-msgid "Factor to scale the Gerber element."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:225
-msgid "Threshold low"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:227
-msgid "Threshold value under which the apertures are not marked."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:237
-msgid "Threshold high"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberEditorPrefGroupUI.py:239
-msgid "Threshold value over which the apertures are not marked."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:27
-msgid "Gerber Export"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:33
-msgid ""
-"The parameters set here are used in the file exported\n"
-"when using the File -> Export -> Export Gerber menu entry."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:44
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:50
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:84
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:90
-msgid "The units used in the Gerber file."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:58
-msgid ""
-"The number of digits in the whole part of the number\n"
-"and in the fractional part of the number."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:71
-msgid ""
-"This numbers signify the number of digits in\n"
-"the whole part of Gerber coordinates."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:87
-msgid ""
-"This numbers signify the number of digits in\n"
-"the decimal part of Gerber coordinates."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:99
-#: appGUI/preferences/gerber/GerberExpPrefGroupUI.py:109
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:100
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:110
-msgid ""
-"This sets the type of Gerber zeros.\n"
-"If LZ then Leading Zeros are removed and\n"
-"Trailing Zeros are kept.\n"
-"If TZ is checked then Trailing Zeros are removed\n"
-"and Leading Zeros are kept."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:27
-msgid "Gerber General"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:61
-msgid ""
-"The number of circle steps for Gerber \n"
-"circular aperture linear approximation."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:73
-msgid "Default Values"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:75
-msgid ""
-"Those values will be used as fallback values\n"
-"in case that they are not found in the Gerber file."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:126
-msgid "Clean Apertures"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:128
-msgid ""
-"Will remove apertures that do not have geometry\n"
-"thus lowering the number of apertures in the Gerber object."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:134
-msgid "Polarity change buffer"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:136
-msgid ""
-"Will apply extra buffering for the\n"
-"solid geometry when we have polarity changes.\n"
-"May help loading Gerber files that otherwise\n"
-"do not load correctly."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:144
-msgid "Store colors"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:146
-msgid ""
-"It will store the set colors for Gerber objects.\n"
-"Those will be used each time the application is started."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:152
-#, fuzzy
-#| msgid "Clear areas"
-msgid "Clear Colors"
-msgstr "Clear areas"
-
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:155
-msgid "Reset the colors associated with Gerber objects."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:229
-msgid "Stored colors for Gerber objects are deleted."
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberOptPrefGroupUI.py:29
-msgid "Gerber Options"
-msgstr ""
-
-#: appGUI/preferences/gerber/GerberOptPrefGroupUI.py:61
-#: appGUI/preferences/gerber/GerberOptPrefGroupUI.py:92
-msgid "Rounded Geo"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:27
-msgid "Copper Thieving Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:39
-msgid ""
-"A tool to generate a Copper Thieving that can be added\n"
-"to a selected Gerber file."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:47
-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:1189 appTools/ToolCopperThieving.py:1524
-msgid "Clearance"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:59
-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 ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: appTools/ToolCopperThieving.py:1218 appTools/ToolNCC.py:1302
-#: appTools/ToolNCC.py:1618 appTools/ToolNCC.py:1682 appTools/ToolNCC.py:2602
-#: appTools/ToolNCC.py:2611 appTools/ToolNCC.py:4193 appTools/ToolNCC.py:4319
-#: defaults.py:475 tclCommands/TclCommandCopperClear.py:190
-msgid "Itself"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: appTools/ToolCopperThieving.py:1219 appTools/ToolIsolation.py:819
-#: appTools/ToolIsolation.py:1435 appTools/ToolIsolation.py:3378
-#: appTools/ToolNCC.py:1316 appTools/ToolNCC.py:1634 appTools/ToolNCC.py:1689
-#: appTools/ToolNCC.py:4193 appTools/ToolNCC.py:4329 appTools/ToolPaint.py:1061
-#: appTools/ToolPaint.py:3127 appTools/ToolPaint.py:3249
-msgid "Area Selection"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: appTools/ToolCopperThieving.py:1220 appTools/ToolDblSided.py:764
-#: appTools/ToolIsolation.py:1475 appTools/ToolIsolation.py:3378
-#: appTools/ToolNCC.py:1335 appTools/ToolNCC.py:1640 appTools/ToolNCC.py:1697
-#: appTools/ToolNCC.py:2075 appTools/ToolNCC.py:2309 appTools/ToolNCC.py:2647
-#: appTools/ToolNCC.py:4193 appTools/ToolPaint.py:1080
-#: appTools/ToolPaint.py:3127 appTools/ToolPaint.py:3232
-#: tclCommands/TclCommandCopperClear.py:192 tclCommands/TclCommandPaint.py:166
-msgid "Reference Object"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90
-#: appTools/ToolCopperThieving.py:1222
-msgid "Reference:"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:92
-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"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:101
-#: 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:1264 appTools/ToolExtractDrills.py:494
-#: appTools/ToolExtractDrills.py:632 appTools/ToolPunchGerber.py:767
-#: appTools/ToolPunchGerber.py:922
-msgid "Rectangular"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102
-#: appTools/ToolCopperThieving.py:1265
-msgid "Minimal"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104
-#: appTools/ToolCopperThieving.py:1267 appTools/ToolFilm.py:954
-msgid "Box Type:"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106
-#: appTools/ToolCopperThieving.py:1269
-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:1285
-msgid "Dots Grid"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121
-#: appTools/ToolCopperThieving.py:1286
-msgid "Squares Grid"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122
-#: appTools/ToolCopperThieving.py:1287
-msgid "Lines Grid"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124
-#: appTools/ToolCopperThieving.py:1289
-msgid "Fill Type:"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126
-#: appTools/ToolCopperThieving.py:1291
-msgid ""
-"- '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."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134
-#: appTools/ToolCopperThieving.py:1310
-msgid "Dots Grid Parameters"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140
-#: appTools/ToolCopperThieving.py:1316
-msgid "Dot diameter in Dots Grid."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153
-#: appTools/ToolCopperThieving.py:1329
-msgid "Distance between each two dots in Dots Grid."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163
-#: appTools/ToolCopperThieving.py:1350
-msgid "Squares Grid Parameters"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169
-#: appTools/ToolCopperThieving.py:1356
-msgid "Square side size in Squares Grid."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182
-#: appTools/ToolCopperThieving.py:1369
-msgid "Distance between each two squares in Squares Grid."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192
-#: appTools/ToolCopperThieving.py:1390
-msgid "Lines Grid Parameters"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198
-#: appTools/ToolCopperThieving.py:1396
-msgid "Line thickness size in Lines Grid."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211
-#: appTools/ToolCopperThieving.py:1409
-msgid "Distance between each two lines in Lines Grid."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221
-#: appTools/ToolCopperThieving.py:1447
-msgid "Robber Bar Parameters"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223
-#: appTools/ToolCopperThieving.py:1449
-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:1457
-msgid "Bounding box margin for robber bar."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242
-#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42
-#: appTools/ToolCopperThieving.py:1468 appTools/ToolCorners.py:384
-#: appTools/ToolEtchCompensation.py:370
-msgid "Thickness"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244
-#: appTools/ToolCopperThieving.py:1470
-msgid "The robber bar thickness."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254
-#: appTools/ToolCopperThieving.py:1501
-msgid "Pattern Plating Mask"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256
-#: appTools/ToolCopperThieving.py:1503
-msgid "Generate a mask for pattern plating."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263
-#: appTools/ToolCopperThieving.py:1526
-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/Tools2CalPrefGroupUI.py:27
-msgid "Calibration Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:38
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:38
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38
-#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37
-#: appTools/ToolCopperThieving.py:1184 appTools/ToolCorners.py:379
-#: appTools/ToolFiducials.py:765
-msgid "Parameters used for this tool."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:43
-#: appTools/ToolCalibration.py:876
-msgid "Source Type"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:44
-#: appTools/ToolCalibration.py:877
-msgid ""
-"The source of calibration points.\n"
-"It can be:\n"
-"- Object -> click a hole geo for Excellon or a pad for Gerber\n"
-"- Free -> click freely on canvas to acquire the calibration points"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:49
-#: appTools/ToolCalibration.py:882
-msgid "Free"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:63
-#: appTools/ToolCalibration.py:771
-msgid "Height (Z) for travelling between the points."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:75
-#: appTools/ToolCalibration.py:783
-msgid "Verification Z"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:77
-#: appTools/ToolCalibration.py:785
-msgid "Height (Z) for checking the point."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:89
-#: appTools/ToolCalibration.py:797
-msgid "Zero Z tool"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:91
-#: appTools/ToolCalibration.py:799
-msgid ""
-"Include a sequence to zero the height (Z)\n"
-"of the verification tool."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:100
-#: appTools/ToolCalibration.py:808
-msgid "Height (Z) for mounting the verification probe."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:114
-#: appTools/ToolCalibration.py:822
-msgid ""
-"Toolchange X,Y position.\n"
-"If no value is entered then the current\n"
-"(x, y) point will be used,"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:125
-#: appTools/ToolCalibration.py:848
-msgid "Second point"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:127
-#: appTools/ToolCalibration.py:850
-msgid ""
-"Second point in the Gcode verification can be:\n"
-"- top-left -> the user will align the PCB vertically\n"
-"- bottom-right -> the user will align the PCB horizontally"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:131
-#: appTools/ToolCalibration.py:854 app_Main.py:4990
-msgid "Top-Left"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:132
-#: appTools/ToolCalibration.py:855 app_Main.py:4991
-msgid "Bottom-Right"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:27
-msgid "Extract Drills Options"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42
-#: appTools/ToolExtractDrills.py:460 appTools/ToolPunchGerber.py:729
-msgid "Processed Pads Type"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44
-#: appTools/ToolExtractDrills.py:462 appTools/ToolPunchGerber.py:731
-msgid ""
-"The type of pads shape to be processed.\n"
-"If the PCB has many SMD pads with rectangular pads,\n"
-"disable the Rectangular aperture."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54
-#: appTools/ToolExtractDrills.py:472 appTools/ToolPunchGerber.py:745
-msgid "Process Circular Pads."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:60
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164
-#: appTools/ToolExtractDrills.py:478 appTools/ToolExtractDrills.py:606
-#: appTools/ToolPunchGerber.py:751 appTools/ToolPunchGerber.py:896
-msgid "Oblong"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62
-#: appTools/ToolExtractDrills.py:480 appTools/ToolPunchGerber.py:753
-msgid "Process Oblong Pads."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70
-#: appTools/ToolExtractDrills.py:488 appTools/ToolPunchGerber.py:761
-msgid "Process Square Pads."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78
-#: appTools/ToolExtractDrills.py:496 appTools/ToolPunchGerber.py:769
-msgid "Process Rectangular Pads."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:84
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203
-#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:502
-#: appTools/ToolExtractDrills.py:645 appTools/ToolProperties.py:175
-#: appTools/ToolPunchGerber.py:775 appTools/ToolPunchGerber.py:935
-msgid "Others"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86
-#: appTools/ToolExtractDrills.py:504 appTools/ToolPunchGerber.py:777
-msgid "Process pads not in the categories above."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:99
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125
-#: appTools/ToolExtractDrills.py:531 appTools/ToolExtractDrills.py:548
-#: appTools/ToolPunchGerber.py:804 appTools/ToolPunchGerber.py:838
-msgid "Fixed Diameter"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:100
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142
-#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:584
-#: appTools/ToolPunchGerber.py:805 appTools/ToolPunchGerber.py:868
-msgid "Fixed Annular Ring"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102
-#: appTools/ToolExtractDrills.py:533 appTools/ToolPunchGerber.py:806
-msgid "Proportional"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107
-#: appTools/ToolExtractDrills.py:522
-msgid ""
-"The method for processing pads. Can be:\n"
-"- Fixed Diameter -> all holes will have a set size\n"
-"- Fixed Annular Ring -> all holes will have a set annular ring\n"
-"- Proportional -> each hole size will be a fraction of the pad size"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135
-#: appTools/ToolExtractDrills.py:558 appTools/ToolPunchGerber.py:848
-msgid "Fixed hole diameter."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144
-#: appTools/ToolExtractDrills.py:586 appTools/ToolPunchGerber.py:870
-msgid ""
-"The size of annular ring.\n"
-"The copper sliver between the hole exterior\n"
-"and the margin of the copper pad."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153
-#: appTools/ToolExtractDrills.py:595 appTools/ToolPunchGerber.py:885
-msgid "The size of annular ring for circular pads."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166
-#: appTools/ToolExtractDrills.py:608 appTools/ToolPunchGerber.py:898
-msgid "The size of annular ring for oblong pads."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179
-#: appTools/ToolExtractDrills.py:621 appTools/ToolPunchGerber.py:911
-msgid "The size of annular ring for square pads."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192
-#: appTools/ToolExtractDrills.py:634 appTools/ToolPunchGerber.py:924
-msgid "The size of annular ring for rectangular pads."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205
-#: appTools/ToolExtractDrills.py:647 appTools/ToolPunchGerber.py:937
-msgid "The size of annular ring for other pads."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215
-#: appTools/ToolExtractDrills.py:668 appTools/ToolPunchGerber.py:953
-msgid "Proportional Diameter"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:222
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:224
-msgid "Factor"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226
-#: appTools/ToolExtractDrills.py:679 appTools/ToolPunchGerber.py:964
-msgid ""
-"Proportional Diameter.\n"
-"The hole diameter will be a fraction of the pad size."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:27
-msgid "Fiducials Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45
-#: appTools/ToolFiducials.py:772
-msgid ""
-"This set the fiducial diameter if fiducial type is circular,\n"
-"otherwise is the size of the fiducial.\n"
-"The soldermask opening is double than that."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73
-#: appTools/ToolFiducials.py:800
-msgid "Auto"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76
-#: appTools/ToolFiducials.py:803
-msgid "Mode:"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:78
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-"- 'Manual' - manual placement of fiducials."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86
-#: appTools/ToolFiducials.py:813
-msgid "Up"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87
-#: appTools/ToolFiducials.py:814
-msgid "Down"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90
-#: appTools/ToolFiducials.py:817
-msgid "Second fiducial"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92
-#: appTools/ToolFiducials.py:819
-msgid ""
-"The position for the second fiducial.\n"
-"- 'Up' - the order is: bottom-left, top-left, top-right.\n"
-"- 'Down' - the order is: bottom-left, bottom-right, top-right.\n"
-"- 'None' - there is no second fiducial. The order is: bottom-left, top-right."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108
-#: appTools/ToolFiducials.py:835
-msgid "Cross"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109
-#: appTools/ToolFiducials.py:836
-msgid "Chess"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112
-#: appTools/ToolFiducials.py:838
-msgid "Fiducial Type"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114
-#: appTools/ToolFiducials.py:840
-msgid ""
-"The type of fiducial.\n"
-"- 'Circular' - this is the regular fiducial.\n"
-"- 'Cross' - cross lines fiducial.\n"
-"- 'Chess' - chess pattern fiducial."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123
-#: appTools/ToolFiducials.py:849
-msgid "Line thickness"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:27
-msgid "Invert Gerber Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:33
-msgid ""
-"A tool to invert Gerber geometry from positive to negative\n"
-"and in revers."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:47
-#: appTools/ToolInvertGerber.py:236
-msgid ""
-"Distance by which to avoid\n"
-"the edges of the Gerber object."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:58
-#: appTools/ToolInvertGerber.py:247
-msgid "Lines Join Style"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:60
-#: appTools/ToolInvertGerber.py:249
-msgid ""
-"The way that the lines in the object outline will be joined.\n"
-"Can be:\n"
-"- rounded -> an arc is added between two joining lines\n"
-"- square -> the lines meet in 90 degrees angle\n"
-"- bevel -> the lines are joined by a third line"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:69
-msgid "Bevel"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:27
-msgid "Optimal Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:33
-msgid ""
-"A tool to find the minimum distance between\n"
-"every two Gerber geometric elements"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:48
-#: appTools/ToolOptimal.py:434
-msgid "Precision"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2OptimalPrefGroupUI.py:50
-msgid "Number of decimals for the distances and coordinates in this tool."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:27
-msgid "Punch Gerber Options"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:108
-#: appTools/ToolPunchGerber.py:795
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon Object-> the Excellon object drills center will serve as "
-"reference.\n"
-"- Fixed Diameter -> will try to use the pads center as reference adding "
-"fixed diameter holes.\n"
-"- Fixed Annular Ring -> will try to keep a set annular ring.\n"
-"- Proportional -> will make a Gerber punch hole having the diameter a "
-"percentage of the pad diameter."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:27
-msgid "QRCode Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:33
-msgid ""
-"A tool to create a QRCode that can be inserted\n"
-"into a selected Gerber file, or it can be exported as a file."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45
-#: appTools/ToolQRCode.py:702
-msgid "Version"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47
-#: appTools/ToolQRCode.py:704
-msgid ""
-"QRCode version can have values from 1 (21x21 boxes)\n"
-"to 40 (177x177 boxes)."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58
-#: appTools/ToolQRCode.py:715
-msgid "Error correction"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71
-#: appTools/ToolQRCode.py:717 appTools/ToolQRCode.py:728
-#, python-format
-msgid ""
-"Parameter that controls the error correction used for the QR Code.\n"
-"L = maximum 7%% errors can be corrected\n"
-"M = maximum 15%% errors can be corrected\n"
-"Q = maximum 25%% errors can be corrected\n"
-"H = maximum 30%% errors can be corrected."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81
-#: appTools/ToolQRCode.py:738
-msgid "Box Size"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83
-#: appTools/ToolQRCode.py:740
-msgid ""
-"Box size control the overall size of the QRcode\n"
-"by adjusting the size of each box in the code."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94
-#: appTools/ToolQRCode.py:751
-msgid "Border Size"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96
-#: appTools/ToolQRCode.py:753
-msgid ""
-"Size of the QRCode border. How many boxes thick is the border.\n"
-"Default value is 4. The width of the clearance around the QRCode."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107
-#: appTools/ToolQRCode.py:673
-msgid "QRCode Data"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109
-#: appTools/ToolQRCode.py:675
-msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113
-#: appTools/ToolQRCode.py:679
-msgid "Add here the text to be included in the QRCode..."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119
-#: appTools/ToolQRCode.py:764
-msgid "Polarity"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121
-#: appTools/ToolQRCode.py:766
-msgid ""
-"Choose the polarity of the QRCode.\n"
-"It can be drawn in a negative way (squares are clear)\n"
-"or in a positive way (squares are opaque)."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125
-#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:770
-msgid "Negative"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126
-#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:771
-msgid "Positive"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128
-#: appTools/ToolQRCode.py:773
-msgid ""
-"Choose the type of QRCode to be created.\n"
-"If added on a Silkscreen Gerber file the QRCode may\n"
-"be added as positive. If it is added to a Copper Gerber\n"
-"file then perhaps the QRCode can be added as negative."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145
-#: appTools/ToolQRCode.py:784 appTools/ToolQRCode.py:790
-msgid ""
-"The bounding box, meaning the empty space that surrounds\n"
-"the QRCode geometry, can have a rounded or a square shape."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152
-#: appTools/ToolQRCode.py:818
-msgid "Fill Color"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154
-#: appTools/ToolQRCode.py:820
-msgid "Set the QRCode fill color (squares color)."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162
-#: appTools/ToolQRCode.py:842
-msgid "Back Color"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164
-#: appTools/ToolQRCode.py:844
-msgid "Set the QRCode background color."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:27
-msgid "Check Rules Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:32
-msgid ""
-"A tool to check if Gerber files are within a set\n"
-"of Manufacturing Rules."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:42
-#: appTools/ToolRulesCheck.py:428 appTools/ToolRulesCheck.py:1367
-msgid "Trace Size"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:44
-#: appTools/ToolRulesCheck.py:1369
-msgid "This checks if the minimum size for traces is met."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:54
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:74
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:94
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:114
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:134
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:154
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:174
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:194
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:216
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:236
-#: appTools/ToolRulesCheck.py:1379 appTools/ToolRulesCheck.py:1401
-#: appTools/ToolRulesCheck.py:1424 appTools/ToolRulesCheck.py:1447
-#: appTools/ToolRulesCheck.py:1470 appTools/ToolRulesCheck.py:1493
-#: appTools/ToolRulesCheck.py:1516 appTools/ToolRulesCheck.py:1539
-#: appTools/ToolRulesCheck.py:1564 appTools/ToolRulesCheck.py:1587
-msgid "Min value"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:56
-#: appTools/ToolRulesCheck.py:1381
-msgid "Minimum acceptable trace size."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:61
-#: appTools/ToolRulesCheck.py:656 appTools/ToolRulesCheck.py:686
-#: appTools/ToolRulesCheck.py:1388
-msgid "Copper to Copper clearance"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:63
-#: appTools/ToolRulesCheck.py:1390
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features is met."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:76
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:96
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:116
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:136
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:156
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:176
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:238
-#: appTools/ToolRulesCheck.py:1403 appTools/ToolRulesCheck.py:1426
-#: appTools/ToolRulesCheck.py:1449 appTools/ToolRulesCheck.py:1472
-#: appTools/ToolRulesCheck.py:1495 appTools/ToolRulesCheck.py:1518
-#: appTools/ToolRulesCheck.py:1566
-msgid "Minimum acceptable clearance value."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:81
-#: appTools/ToolRulesCheck.py:716 appTools/ToolRulesCheck.py:722
-#: appTools/ToolRulesCheck.py:735 appTools/ToolRulesCheck.py:742
-#: appTools/ToolRulesCheck.py:1411
-msgid "Copper to Outline clearance"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:83
-#: appTools/ToolRulesCheck.py:1413
-msgid ""
-"This checks if the minimum clearance between copper\n"
-"features and the outline is met."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:101
-#: appTools/ToolRulesCheck.py:1434
-msgid "Silk to Silk Clearance"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:103
-#: appTools/ToolRulesCheck.py:1436
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and silkscreen features is met."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:121
-#: appTools/ToolRulesCheck.py:825 appTools/ToolRulesCheck.py:831
-#: appTools/ToolRulesCheck.py:849 appTools/ToolRulesCheck.py:1457
-msgid "Silk to Solder Mask Clearance"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:123
-#: appTools/ToolRulesCheck.py:1459
-msgid ""
-"This checks if the minimum clearance between silkscreen\n"
-"features and soldermask features is met."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:141
-#: appTools/ToolRulesCheck.py:879 appTools/ToolRulesCheck.py:885
-#: appTools/ToolRulesCheck.py:899 appTools/ToolRulesCheck.py:906
-#: appTools/ToolRulesCheck.py:1480
-msgid "Silk to Outline Clearance"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:143
-#: appTools/ToolRulesCheck.py:1482
-msgid ""
-"This checks if the minimum clearance between silk\n"
-"features and the outline is met."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:161
-#: appTools/ToolRulesCheck.py:917 appTools/ToolRulesCheck.py:944
-#: appTools/ToolRulesCheck.py:1503
-msgid "Minimum Solder Mask Sliver"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:163
-#: appTools/ToolRulesCheck.py:1505
-msgid ""
-"This checks if the minimum clearance between soldermask\n"
-"features and soldermask features is met."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:181
-#: appTools/ToolRulesCheck.py:982 appTools/ToolRulesCheck.py:988
-#: appTools/ToolRulesCheck.py:1004 appTools/ToolRulesCheck.py:1011
-#: appTools/ToolRulesCheck.py:1526
-msgid "Minimum Annular Ring"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:183
-#: appTools/ToolRulesCheck.py:1528
-msgid ""
-"This checks if the minimum copper ring left by drilling\n"
-"a hole into a pad is met."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:196
-#: appTools/ToolRulesCheck.py:1541
-msgid "Minimum acceptable ring value."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:203
-#: appTools/ToolRulesCheck.py:372 appTools/ToolRulesCheck.py:1551
-msgid "Hole to Hole Clearance"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:205
-#: appTools/ToolRulesCheck.py:1553
-msgid ""
-"This checks if the minimum clearance between a drill hole\n"
-"and another drill hole is met."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:218
-#: appTools/ToolRulesCheck.py:1589
-msgid "Minimum acceptable drill size."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:223
-#: appTools/ToolRulesCheck.py:346 appTools/ToolRulesCheck.py:1574
-msgid "Hole Size"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2RulesCheckPrefGroupUI.py:225
-#: appTools/ToolRulesCheck.py:1576
-msgid ""
-"This checks if the drill holes\n"
-"sizes are above the threshold."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:27
-msgid "2Sided Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:33
-msgid ""
-"A tool to help in creating a double sided\n"
-"PCB using alignment holes."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:47
-msgid "Drill dia"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49
-#: appTools/ToolDblSided.py:833 appTools/ToolDblSided.py:838
-msgid "Diameter of the drill for the alignment holes."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:56
-msgid "Align Axis"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71
-#: appTools/ToolDblSided.py:674 appTools/ToolDblSided.py:849
-msgid "Mirror vertically (X) or horizontally (Y)."
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:69
-msgid "Mirror Axis:"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:86
-#: appTools/ToolDblSided.py:700
-msgid "Box"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:87
-#: appTools/ToolDblSided.py:701
-msgid "Hole Snap"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:90
-msgid "Axis Ref"
-msgstr ""
-
-#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:92
-msgid ""
-"The coordinates used as reference for the mirror operation.\n"
-"Can be:\n"
-"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
-"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
-"bounding box of another object selected below\n"
-"- Hole Snap-> a point defined by the center of a drill hone in a Excellon "
-"object"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:27
-msgid "Calculators Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:31
-#: appTools/ToolCalculators.py:152
-msgid "V-Shape Tool Calculator"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:33
-msgid ""
-"Calculate the tool diameter for a given V-shape tool,\n"
-"having the tip diameter, tip angle and\n"
-"depth-of-cut as parameters."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:50
-#: appTools/ToolCalculators.py:220
-msgid "Tip Diameter"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:52
-#: appTools/ToolCalculators.py:228
-msgid ""
-"This is the tool tip diameter.\n"
-"It is specified by manufacturer."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:64
-#: appTools/ToolCalculators.py:231
-msgid "Tip Angle"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:66
-msgid ""
-"This is the angle on the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:80
-msgid ""
-"This is depth to cut into material.\n"
-"In the CNCJob object it is the CutZ parameter."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:87
-#: appTools/ToolCalculators.py:154
-msgid "ElectroPlating Calculator"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:89
-#: appTools/ToolCalculators.py:284
-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
-msgid "Board Length"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:102
-#: appTools/ToolCalculators.py:299
-msgid "This is the board length. In centimeters."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:112
-#: appTools/ToolCalculators.py:301
-msgid "Board Width"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:114
-#: appTools/ToolCalculators.py:307
-msgid "This is the board width.In centimeters."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:119
-#: appTools/ToolCalculators.py:309
-msgid "Current Density"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:125
-#: appTools/ToolCalculators.py:316
-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
-msgid "Copper Growth"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCalculatorsPrefGroupUI.py:137
-#: appTools/ToolCalculators.py:326
-msgid ""
-"How thick the copper growth is intended to be.\n"
-"In microns."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:27
-msgid "Corner Markers Options"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44
-#: appTools/ToolCorners.py:386
-msgid "The thickness of the line that makes the corner marker."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58
-#: appTools/ToolCorners.py:400
-msgid "The length of the line that makes the corner marker."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:28
-msgid "Cutout Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:34
-msgid ""
-"Create toolpaths to cut around\n"
-"the PCB and separate it from\n"
-"the original board."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45
-#: appTools/ToolCutOut.py:2062
-msgid ""
-"Diameter of the tool used to cutout\n"
-"the PCB shape out of the surrounding material."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:100
-msgid "Object kind"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102
-#: appTools/ToolCutOut.py:1995
-msgid ""
-"Choice of what kind the object we want to cutout is.<BR>- <B>Single</B>: "
-"contain a single PCB Gerber outline object.<BR>- <B>Panel</B>: a panel PCB "
-"Gerber object, which is made\n"
-"out of many individual PCB outlines."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109
-#: appTools/ToolCutOut.py:2001
-msgid "Single"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110
-#: appTools/ToolCutOut.py:2002
-msgid "Panel"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:211
-msgid ""
-"Number of gaps used for the cutout.\n"
-"There can be maximum 8 bridges/gaps.\n"
-"The choices are:\n"
-"- None  - no gaps\n"
-"- lr    - left + right\n"
-"- tb    - top + bottom\n"
-"- 4     - left + right +top + bottom\n"
-"- 2lr   - 2*left + 2*right\n"
-"- 2tb  - 2*top + 2*bottom\n"
-"- 8     - 2*left + 2*right +2*top + 2*bottom"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:240
-#: appTools/ToolCutOut.py:2333
-msgid "Big cursor"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:242
-#: appTools/ToolCutOut.py:2335
-msgid "Use a big cursor when adding manual gaps."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:27
-#, fuzzy
-#| msgid "Drills Tool dia:"
-msgid "Drilling Tool Options"
-msgstr "Drills Tool dia:"
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:33
-#: appTools/ToolDrilling.py:2006 appTools/ToolMilling.py:1611
-msgid "Create CNCJob with toolpaths for drilling or milling holes."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:41
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:54
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:142
-#: appTools/ToolDrilling.py:2082 appTools/ToolIsolation.py:3058
-#: appTools/ToolMilling.py:1687 appTools/ToolNCC.py:3820
-#: appTools/ToolPaint.py:2843
-msgid "Tool order"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:42
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:55
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:157
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:143
-#: appTools/ToolDrilling.py:2083 appTools/ToolIsolation.py:3059
-#: appTools/ToolMilling.py:1688 appTools/ToolNCC.py:3821
-#: appTools/ToolNCC.py:3831 appTools/ToolPaint.py:2844
-#: appTools/ToolPaint.py:2854
-msgid ""
-"This set the way that the tools in the tools table are used.\n"
-"'No' --> means that the used order is the one in the tool table\n"
-"'Forward' --> means that the tools will be ordered from small to big\n"
-"'Reverse' --> means that the tools will ordered from big to small\n"
-"\n"
-"WARNING: using rest machining will automatically set the order\n"
-"in reverse and disable this control."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:50
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:63
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:151
-#: appTools/ToolDrilling.py:2091 appTools/ToolIsolation.py:3067
-#: appTools/ToolMilling.py:1696 appTools/ToolNCC.py:3829
-#: appTools/ToolPaint.py:2852
-msgid "Forward"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:51
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:64
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:152
-#: appTools/ToolDrilling.py:2092 appTools/ToolIsolation.py:3068
-#: appTools/ToolMilling.py:1697 appTools/ToolNCC.py:3830
-#: appTools/ToolPaint.py:2853
-msgid "Reverse"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:118
-#: appTools/ToolDrilling.py:2387 appTools/ToolMilling.py:2065
-msgid ""
-"Include tool-change sequence\n"
-"in G-Code (Pause for tool change)."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:223
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:239
-msgid "Drilling Slots"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:278
-#, fuzzy
-#| msgid "Paint Tool. Reading parameters."
-msgid "A list of advanced parameters."
-msgstr "Paint Tool. Reading parameters."
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:296
-msgid "Toolchange X,Y"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:308
-#: appTools/ToolDrilling.py:2417 appTools/ToolMilling.py:2089
-msgid ""
-"Height of the tool just after start.\n"
-"Delete the value if you don't need this feature."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:380
-msgid "Fast Retract"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:382
-msgid ""
-"Exit hole strategy.\n"
-" - When uncheked, while exiting the drilled hole the drill bit\n"
-"will travel slow, with set feedrate (G1), up to zero depth and then\n"
-"travel as fast as possible (G0) to the Z Move (travel height).\n"
-" - When checked the travel from Z cut (cut depth) to Z_move\n"
-"(travel height) is done as fast as possible (G0) in one move."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:27
-msgid "Film Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:33
-msgid ""
-"Create a PCB film from a Gerber or Geometry object.\n"
-"The file is saved in SVG format."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:43
-msgid "Film Type"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:45
-#: appTools/ToolFilm.py:1148
-msgid ""
-"Generate a Positive black film or a Negative film.\n"
-"Positive means that it will print the features\n"
-"with black on a white canvas.\n"
-"Negative means that it will print the features\n"
-"with white on a black canvas.\n"
-"The Film format is SVG."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:56
-msgid "Film Color"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:58
-msgid "Set the film color when positive film is selected."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:71
-#: appTools/ToolFilm.py:1164
-msgid "Border"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:73
-#: appTools/ToolFilm.py:1166
-msgid ""
-"Specify a border around the object.\n"
-"Only for negative film.\n"
-"It helps if we use as a Box Object the same \n"
-"object as in Film Object. It will create a thick\n"
-"black bar around the actual print allowing for a\n"
-"better delimitation of the outline features which are of\n"
-"white color like the rest and which may confound with the\n"
-"surroundings if not for this border."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:90
-#: appTools/ToolFilm.py:1133
-msgid "Scale Stroke"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:92
-#: appTools/ToolFilm.py:1135
-msgid ""
-"Scale the line stroke thickness of each feature in the SVG file.\n"
-"It means that the line that envelope each SVG feature will be thicker or "
-"thinner,\n"
-"therefore the fine features may be more affected by this parameter."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:99 appTools/ToolFilm.py:977
-msgid "Film Adjustments"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:101
-#: appTools/ToolFilm.py:979
-msgid ""
-"Sometime the printers will distort the print shape, especially the Laser "
-"types.\n"
-"This section provide the tools to compensate for the print distortions."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:108
-#: appTools/ToolFilm.py:986
-msgid "Scale Film geometry"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:110
-#: appTools/ToolFilm.py:988
-msgid ""
-"A value greater than 1 will stretch the film\n"
-"while a value less than 1 will jolt it."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:139
-#: appTools/ToolFilm.py:1030
-msgid "Skew Film geometry"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:141
-#: appTools/ToolFilm.py:1032
-msgid ""
-"Positive values will skew to the right\n"
-"while negative values will skew to the left."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:171
-#: appTools/ToolFilm.py:1062
-msgid ""
-"The reference point to be used as origin for the skew.\n"
-"It can be one of the four points of the geometry bounding box."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174
-#: appTools/ToolCorners.py:342 appTools/ToolFiducials.py:694
-#: appTools/ToolFilm.py:1065
-msgid "Bottom Left"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175
-#: appTools/ToolCorners.py:350 appTools/ToolFilm.py:1066
-msgid "Top Left"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176
-#: appTools/ToolCorners.py:346 appTools/ToolFilm.py:1067
-msgid "Bottom Right"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:177
-#: appTools/ToolFilm.py:1068
-msgid "Top right"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:185
-#: appTools/ToolFilm.py:1091
-msgid "Mirror Film geometry"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:187
-#: appTools/ToolFilm.py:1093
-msgid "Mirror the film geometry on the selected axis or on both."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:201
-#: appTools/ToolFilm.py:1107
-msgid "Mirror axis"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:211
-#: appTools/ToolFilm.py:1253
-msgid "SVG"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:212
-#: appTools/ToolFilm.py:1254
-msgid "PNG"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:213
-#: appTools/ToolFilm.py:1255
-msgid "PDF"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:216
-#: appTools/ToolFilm.py:1146 appTools/ToolFilm.py:1258
-msgid "Film Type:"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:218
-#: appTools/ToolFilm.py:1260
-msgid ""
-"The file type of the saved film. Can be:\n"
-"- 'SVG' -> open-source vectorial format\n"
-"- 'PNG' -> raster image\n"
-"- 'PDF' -> portable document format"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:227
-#: appTools/ToolFilm.py:1269
-msgid "Page Orientation"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:240
-#: appTools/ToolFilm.py:1282
-msgid "Page Size"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:241
-#: appTools/ToolFilm.py:1283
-msgid "A selection of standard ISO 216 page sizes."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:308
-#: appTools/ToolFilm.py:1352
-msgid "Default value is 96 DPI. Change this value to scale the PNG file."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:26
-msgid "Isolation Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:48
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:49
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:57
-msgid "Comma separated values"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:72
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:80
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:55
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:63
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:64
-msgid ""
-"Default tool type:\n"
-"- 'V-shape'\n"
-"- Circular"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:77
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:60
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:69
-msgid "V-shape"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:103
-msgid ""
-"The tip angle for V-Shape Tool.\n"
-"In degrees."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:117
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:126
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:100
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:109
-msgid ""
-"Depth of cut into material. Negative value.\n"
-"In FlatCAM units."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:136
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:119
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:125
-#: appTools/ToolPaint.py:2884
-msgid ""
-"Diameter for the new tool to add in the Tool Table.\n"
-"If the tool is V-shape type then this value is automatically\n"
-"calculated from the other parameters."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:243
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:288
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:244
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:245
-#: appTools/ToolIsolation.py:3286 appTools/ToolNCC.py:4115
-#: appTools/ToolPaint.py:3069
-msgid "Rest"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:246
-#: appTools/ToolIsolation.py:3289
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will isolate outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to isolate the copper features that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper features to isolate or there are no more tools.\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:258
-#: appTools/ToolIsolation.py:3311
-msgid "Combine"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:260
-#: appTools/ToolIsolation.py:3313
-msgid "Combine all passes into one object"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:267
-#: appTools/ToolIsolation.py:3330
-msgid "Except"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:268
-#: appTools/ToolIsolation.py:3331
-msgid ""
-"When the isolation geometry is generated,\n"
-"by checking this, the area of the object below\n"
-"will be subtracted from the isolation geometry."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:275
-#: appTools/ToolIsolation.py:3320
-msgid "Check validity"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:277
-#: appTools/ToolIsolation.py:3322
-msgid ""
-"If checked then the tools diameters are verified\n"
-"if they will provide a complete isolation."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:287
-#: appTools/ToolIsolation.py:3370
-msgid ""
-"Isolation scope. Choose what to isolate:\n"
-"- 'All' -> Isolate all the polygons in the object\n"
-"- 'Area Selection' -> Isolate polygons within a selection area.\n"
-"- 'Polygon Selection' -> Isolate a selection of polygons.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:280
-#: appTools/ToolIsolation.py:831 appTools/ToolIsolation.py:1454
-#: appTools/ToolIsolation.py:3378 appTools/ToolPaint.py:1038
-#: appTools/ToolPaint.py:3127 appTools/ToolPaint.py:3243
-#: tclCommands/TclCommandPaint.py:164
-msgid "Polygon Selection"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:315
-#: appTools/ToolIsolation.py:3414
-#, fuzzy
-#| msgid "Interior"
-msgid "Interiors"
-msgstr "Interior"
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:317
-#: appTools/ToolIsolation.py:3416
-msgid ""
-"When checked the user can select interiors of a polygon.\n"
-"(holes in the polygon)."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:322
-#: appTools/ToolIsolation.py:3301
-msgid "Forced Rest"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:324
-#: appTools/ToolIsolation.py:3303
-msgid ""
-"When checked the isolation will be done with the current tool even if\n"
-"interiors of a polygon (holes in the polygon) could not be isolated.\n"
-"Works when 'rest machining' is used."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:337
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:339
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303
-msgid "Normal"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:338
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:340
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:304
-msgid "Progressive"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:339
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:305
-#: appObjects/AppObject.py:439 appObjects/FlatCAMObj.py:266
-#: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313
-#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1038
-#: appTools/ToolCorners.py:263 appTools/ToolFiducials.py:530
-#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:463 app_Main.py:4676
-msgid "Plotting"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:341
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:343
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:307
-msgid ""
-"- 'Normal' -  normal plotting, done at the end of the job\n"
-"- 'Progressive' - each shape is plotted after it is generated"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:27
-msgid "NCC Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:33
-msgid ""
-"Create a Geometry object with\n"
-"toolpaths to cut all non-copper regions."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:266
-msgid "Offset value"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:268
-msgid ""
-"If used, it will add an offset to the copper features.\n"
-"The copper clearing will finish to a distance\n"
-"from the copper features.\n"
-"The value can be between 0.0 and 9999.9 FlatCAM units."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:290 appTools/ToolNCC.py:4119
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:313 appTools/ToolNCC.py:4199
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Itself' - the processing extent is based on the object that is "
-"processed.\n"
-" - 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:27
-msgid "Paint Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:33
-msgid "<b>Parameters:</b>"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:107
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:116
-msgid ""
-"Depth of cut into material. Negative value.\n"
-"In application units."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:247
-#: appTools/ToolPaint.py:3072
-msgid ""
-"If checked, use 'rest machining'.\n"
-"Basically it will clear copper outside PCB features,\n"
-"using the biggest tool and continue with the next tools,\n"
-"from bigger to smaller, to clear areas of copper that\n"
-"could not be cleared by previous tool, until there is\n"
-"no more copper to clear or there are no more tools.\n"
-"\n"
-"If not checked, use the standard algorithm."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:260
-#: appTools/ToolPaint.py:3099
-msgid ""
-"Selection of area to be processed.\n"
-"- 'Polygon Selection' - left mouse click to add/remove polygons to be "
-"processed.\n"
-"- 'Area Selection' - left mouse click to start selection of the area to be "
-"processed.\n"
-"Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-"areas.\n"
-"- 'All Polygons' - the process will start after click.\n"
-"- 'Reference Object' - will process the area specified by another object."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:27
-msgid "Panelize Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:33
-msgid ""
-"Create an object that contains an array of (x, y) elements,\n"
-"each element is a copy of the source object spaced\n"
-"at a X distance, Y distance of each other."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:50
-#: appTools/ToolPanelize.py:764
-msgid "Spacing cols"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:52
-#: appTools/ToolPanelize.py:766
-msgid ""
-"Spacing between columns of the desired panel.\n"
-"In current units."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:64
-#: appTools/ToolPanelize.py:776
-msgid "Spacing rows"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:66
-#: appTools/ToolPanelize.py:778
-msgid ""
-"Spacing between rows of the desired panel.\n"
-"In current units."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:79
-#: appTools/ToolPanelize.py:789
-msgid "Number of columns of the desired panel"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:91
-#: appTools/ToolPanelize.py:799
-msgid "Number of rows of the desired panel"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:97
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:76
-#: appTools/ToolAlignObjects.py:398 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:1237 appTools/ToolCopperThieving.py:1251
-#: appTools/ToolCutOut.py:2009 appTools/ToolDblSided.py:528
-#: appTools/ToolDblSided.py:772 appTools/ToolFilm.py:928
-#: appTools/ToolFilm.py:951 appTools/ToolImage.py:117 appTools/ToolImage.py:138
-#: appTools/ToolImage.py:191 appTools/ToolIsolation.py:802
-#: appTools/ToolIsolation.py:3339 appTools/ToolIsolation.py:3391
-#: appTools/ToolNCC.py:793 appTools/ToolNCC.py:3742 appTools/ToolNCC.py:4216
-#: appTools/ToolPaint.py:167 appTools/ToolPaint.py:3143
-#: appTools/ToolPanelize.py:147 appTools/ToolPanelize.py:167
-#: appTools/ToolPanelize.py:715 appTools/ToolPanelize.py:809
-#: appTools/ToolTransform.py:126 appTools/ToolTransform.py:585 defaults.py:566
-msgid "Gerber"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:98
-#: appTools/ToolPanelize.py:810
-msgid "Geo"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:99
-#: appTools/ToolPanelize.py:811
-msgid "Panel Type"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:101
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Gerber\n"
-"- Geometry"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112
-#: appTools/ToolPanelize.py:823
-msgid ""
-"Active only for Geometry panel type.\n"
-"When checked the application will find\n"
-"any two overlapping Line elements in the panel\n"
-"and remove the overlapping parts, keeping only one of them."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:120
-msgid "Constrain within"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:122
-#: appTools/ToolPanelize.py:833
-msgid ""
-"Area define by DX and DY within to constrain the panel.\n"
-"DX and DY values are in current units.\n"
-"Regardless of how many columns and rows are desired,\n"
-"the final panel will have as many columns and rows as\n"
-"they fit completely within selected area."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:135
-#: appTools/ToolPanelize.py:845
-msgid "Width (DX)"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:137
-#: appTools/ToolPanelize.py:847
-msgid ""
-"The width (DX) within which the panel must fit.\n"
-"In current units."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:148
-#: appTools/ToolPanelize.py:856
-msgid "Height (DY)"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:150
-#: appTools/ToolPanelize.py:858
-msgid ""
-"The height (DY)within which the panel must fit.\n"
-"In current units."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:27
-msgid "SolderPaste Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:33
-msgid ""
-"A tool to create GCode for dispensing\n"
-"solder paste onto a PCB."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:54
-msgid "New Nozzle Dia"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:56
-#: appTools/ToolSolderPaste.py:1188
-msgid "Diameter for the new Nozzle tool to add in the Tool Table"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:72
-#: appTools/ToolSolderPaste.py:1255
-msgid "Z Dispense Start"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:74
-#: appTools/ToolSolderPaste.py:1257
-msgid "The height (Z) when solder paste dispensing starts."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:85
-#: appTools/ToolSolderPaste.py:1267
-msgid "Z Dispense"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:87
-#: appTools/ToolSolderPaste.py:1269
-msgid "The height (Z) when doing solder paste dispensing."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:98
-#: appTools/ToolSolderPaste.py:1279
-msgid "Z Dispense Stop"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:100
-#: appTools/ToolSolderPaste.py:1281
-msgid "The height (Z) when solder paste dispensing stops."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:111
-#: appTools/ToolSolderPaste.py:1291
-msgid "Z Travel"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:113
-#: appTools/ToolSolderPaste.py:1293
-msgid ""
-"The height (Z) for travel between pads\n"
-"(without dispensing solder paste)."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:125
-#: appTools/ToolSolderPaste.py:1304
-msgid "Z Toolchange"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:127
-#: appTools/ToolSolderPaste.py:1306
-msgid "The height (Z) for tool (nozzle) change."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:136
-#: appTools/ToolSolderPaste.py:1314
-msgid ""
-"The X,Y location for tool (nozzle) change.\n"
-"The format is (x, y) where x and y are real numbers."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:150
-#: appTools/ToolSolderPaste.py:1327
-msgid "Feedrate (speed) while moving on the X-Y plane."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:163
-#: appTools/ToolSolderPaste.py:1339
-msgid ""
-"Feedrate (speed) while moving vertically\n"
-"(on Z plane)."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:175
-#: appTools/ToolSolderPaste.py:1350
-msgid "Feedrate Z Dispense"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:177
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-"to Dispense position (on Z plane)."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:188
-#: appTools/ToolSolderPaste.py:1362
-msgid "Spindle Speed FWD"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:190
-#: appTools/ToolSolderPaste.py:1364
-msgid ""
-"The dispenser speed while pushing solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:202
-#: appTools/ToolSolderPaste.py:1375
-msgid "Dwell FWD"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:204
-#: appTools/ToolSolderPaste.py:1377
-msgid "Pause after solder dispensing."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:214
-#: appTools/ToolSolderPaste.py:1386
-msgid "Spindle Speed REV"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:216
-#: appTools/ToolSolderPaste.py:1388
-msgid ""
-"The dispenser speed while retracting solder paste\n"
-"through the dispenser nozzle."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:228
-#: appTools/ToolSolderPaste.py:1399
-msgid "Dwell REV"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:230
-#: appTools/ToolSolderPaste.py:1401
-msgid ""
-"Pause after solder paste dispenser retracted,\n"
-"to allow pressure equilibrium."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:239
-#: appTools/ToolSolderPaste.py:1409
-msgid "Files that control the GCode generation."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:27
-msgid "Substractor Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:33
-msgid ""
-"A tool to substract one Gerber or Geometry object\n"
-"from another of the same type."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:38 appTools/ToolSub.py:731
-msgid "Close paths"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:39
-msgid ""
-"Checking this will close the paths cut by the Geometry substractor object."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:27
-msgid "Transform Tool Options"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:33
-msgid ""
-"Various transformations that can be applied\n"
-"on a application object."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:46
-#: appTools/ToolTransform.py:549
-msgid ""
-"The reference point for Rotate, Skew, Scale, Mirror.\n"
-"Can be:\n"
-"- Origin -> it is the 0, 0 point\n"
-"- Selection -> the center of the bounding box of the selected objects\n"
-"- Point -> a custom point defined by X,Y coordinates\n"
-"- Object -> the center of the bounding box of a specific object"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:72
-#: appTools/ToolTransform.py:581
-msgid "The type of object used as reference."
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:107
-msgid "Skew"
-msgstr ""
-
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:126
-#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:140
-#: appTools/ToolCalibration.py:1200 appTools/ToolCalibration.py:1213
-msgid ""
-"Angle for Skew action, in degrees.\n"
-"Float number between -360 and 359."
-msgstr ""
-
-#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:27
-msgid "Autocompleter Keywords"
-msgstr ""
-
-#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:30
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:40
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:30
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:30
-msgid "Restore"
-msgstr ""
-
-#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:31
-msgid "Restore the autocompleter keywords list to the default state."
-msgstr ""
-
-#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:33
-msgid "Delete all autocompleter keywords from the list."
-msgstr ""
-
-#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:41
-msgid "Keywords list"
-msgstr ""
-
-#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:43
-msgid ""
-"List of keywords used by\n"
-"the autocompleter in FlatCAM.\n"
-"The autocompleter is installed\n"
-"in the Code Editor and for the Tcl Shell."
-msgstr ""
-
-#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:64
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:73
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:63
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:62
-msgid "Extension"
-msgstr ""
-
-#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:65
-msgid "A keyword to be added or deleted to the list."
-msgstr ""
-
-#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:73
-msgid "Add keyword"
-msgstr ""
-
-#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:74
-msgid "Add a keyword to the list"
-msgstr ""
-
-#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:75
-msgid "Delete keyword"
-msgstr ""
-
-#: appGUI/preferences/utilities/AutoCompletePrefGroupUI.py:76
-msgid "Delete a keyword from the list"
-msgstr ""
-
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:27
-msgid "Excellon File associations"
-msgstr ""
-
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:41
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:31
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:31
-msgid "Restore the extension list to the default state."
-msgstr ""
-
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:43
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:33
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:33
-msgid "Delete all extensions from the list."
-msgstr ""
-
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:51
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:41
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:41
-msgid "Extensions list"
-msgstr ""
-
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:53
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:43
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:43
-msgid ""
-"List of file extensions to be\n"
-"associated with FlatCAM."
-msgstr ""
-
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:74
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:64
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:63
-msgid "A file extension to be added or deleted to the list."
-msgstr ""
-
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:82
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:72
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:71
-msgid "Add Extension"
-msgstr ""
-
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:83
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:73
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:72
-msgid "Add a file extension to the list"
-msgstr ""
-
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:84
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:74
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:73
-msgid "Delete Extension"
-msgstr ""
-
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:85
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:75
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:74
-msgid "Delete a file extension from the list"
-msgstr ""
-
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:92
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:82
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:81
-msgid "Apply Association"
-msgstr ""
-
-#: appGUI/preferences/utilities/FAExcPrefGroupUI.py:93
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:83
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:82
-msgid ""
-"Apply the file associations between\n"
-"FlatCAM and the files with above extensions.\n"
-"They will be active after next logon.\n"
-"This work only in Windows."
-msgstr ""
-
-#: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:27
-msgid "GCode File associations"
-msgstr ""
-
-#: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:27
-msgid "Gerber File associations"
-msgstr ""
-
-#: appObjects/AppObject.py:157
-#, python-brace-format
-msgid ""
-"Object ({kind}) failed because: {error} \n"
-"\n"
-msgstr ""
-
-#: appObjects/AppObject.py:176
-msgid "Converting units to "
-msgstr ""
-
-#: appObjects/AppObject.py:248 appObjects/FlatCAMGeometry.py:128
-#: appObjects/FlatCAMGeometry.py:519 appObjects/FlatCAMGeometry.py:1053
-#: appObjects/FlatCAMGerber.py:539 appObjects/FlatCAMGerber.py:682
-#: appTools/ToolCutOut.py:448 appTools/ToolIsolation.py:1623
-#: appTools/ToolIsolation.py:1785 appTools/ToolIsolation.py:1978 camlib.py:1231
-#: camlib.py:1292
-msgid "Rough"
-msgstr ""
-
-#: appObjects/AppObject.py:302
-msgid "CREATE A NEW FLATCAM TCL SCRIPT"
-msgstr ""
-
-#: appObjects/AppObject.py:303
-msgid "TCL Tutorial is here"
-msgstr ""
-
-#: appObjects/AppObject.py:305
-msgid "FlatCAM commands list"
-msgstr ""
-
-#: appObjects/AppObject.py:306
-msgid ""
-"Type >help< followed by Run Code for a list of FlatCAM Tcl Commands "
-"(displayed in Tcl Shell)."
-msgstr ""
-
-#: appObjects/AppObject.py:357 appObjects/AppObject.py:363
-#: appObjects/AppObject.py:369 appObjects/AppObject.py:375
-#: appObjects/AppObject.py:381 appObjects/AppObject.py:387
-msgid "created/selected"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:636 appObjects/FlatCAMDocument.py:71
-#: appObjects/FlatCAMScript.py:82
-msgid "<span style=\"color:green;\"><b>Basic</b></span>"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:643 appObjects/FlatCAMDocument.py:75
-#: appObjects/FlatCAMScript.py:86
-msgid "<span style=\"color:red;\"><b>Advanced</b></span>"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:803
-msgid "Click on canvas to add a Probe Point..."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:999
-msgid "Point is not within the object area. Choose another point."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1019
-msgid ""
-"Added a Probe Point... Click again to add another or right click to "
-"finish ..."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1041
-msgid "Finished adding Probe Points..."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1251
-msgid "COM list updated ..."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1287
-msgid "Connected"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1298
-msgid "Port connected"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1302
-msgid "Could not connect to GRBL on port"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1319
-msgid "Port is connected. Disconnecting"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1321
-msgid "Could not connect to port"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1351 appObjects/FlatCAMCNCJob.py:1781
-#, fuzzy
-#| msgid "Starting G-Code..."
-msgid "Sending GCode..."
-msgstr "Starting G-Code..."
-
-#: appObjects/FlatCAMCNCJob.py:1480
-msgid "GRBL is doing a home cycle."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1486
-msgid "GRBL software reset was sent."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1494
-msgid "GRBL resumed."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1498
-msgid "GRBL paused."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1640 appObjects/FlatCAMCNCJob.py:1830
-#: appObjects/FlatCAMCNCJob.py:1915 appTools/ToolSolderPaste.py:1066
-msgid "Export cancelled ..."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1664 appObjects/FlatCAMCNCJob.py:1951
-#: appObjects/FlatCAMScript.py:134 app_Main.py:7824
-msgid "Loading..."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1668
-msgid "There is nothing to view"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1674
-msgid "Code Viewer"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1712
-msgid "Loaded Machine Code into Code Viewer"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1757
-#, fuzzy
-#| msgid "Failed to parse factory defaults file."
-msgid "Failed to open height map file"
-msgstr "Failed to parse factory defaults file."
-
-#: appObjects/FlatCAMCNCJob.py:1807
-msgid "Finished probing. Doing the autolevelling."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1812
-msgid "Sending probing GCode to the GRBL controller."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1853
-msgid "Empty GRBL heightmap."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1857
-msgid "Finished autolevelling."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1871
-msgid "Plotting..."
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1941
-msgid "File saved to"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:1965
-msgid "Code Review"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:2148
-msgid "This CNCJob object can't be processed because it is a"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:2150
-msgid "CNCJob object"
-msgstr ""
-
-#: appObjects/FlatCAMCNCJob.py:2260
-msgid ""
-"G-code does not have a G94 code.\n"
-"Append Code snippet will not be used.."
-msgstr ""
-
-#: appObjects/FlatCAMDocument.py:173
-msgid "Document Editor"
-msgstr ""
-
-#: appObjects/FlatCAMExcellon.py:872 appObjects/FlatCAMExcellon.py:980
-#: appTools/ToolDrilling.py:1612 appTools/ToolMilling.py:1038
-#: appTools/ToolMilling.py:1154 appTools/ToolMilling.py:1340
-msgid "Please select one or more tools from the list and try again."
-msgstr ""
-
-#: appObjects/FlatCAMExcellon.py:877 appTools/ToolMilling.py:1045
-msgid "Milling tool for DRILLS is larger than hole size. Cancelled."
-msgstr ""
-
-#: appObjects/FlatCAMExcellon.py:900 appObjects/FlatCAMExcellon.py:1000
-#: appTools/ToolDrilling.py:1762 appTools/ToolDrilling.py:1827
-#: appTools/ToolMilling.py:1071 appTools/ToolMilling.py:1175
-#: appTools/ToolMilling.py:1360 tclCommands/TclCommandDrillcncjob.py:195
-msgid "Tool_nr"
-msgstr ""
-
-#: appObjects/FlatCAMExcellon.py:900 appObjects/FlatCAMExcellon.py:1000
-#: appTools/ToolDrilling.py:1762 appTools/ToolDrilling.py:1827
-#: appTools/ToolMilling.py:1071 appTools/ToolMilling.py:1175
-#: appTools/ToolMilling.py:1360 tclCommands/TclCommandDrillcncjob.py:195
-msgid "Drills_Nr"
-msgstr ""
-
-#: appObjects/FlatCAMExcellon.py:900 appObjects/FlatCAMExcellon.py:1000
-#: appTools/ToolDrilling.py:1762 appTools/ToolDrilling.py:1827
-#: appTools/ToolMilling.py:1071 appTools/ToolMilling.py:1175
-#: appTools/ToolMilling.py:1360 tclCommands/TclCommandDrillcncjob.py:195
-msgid "Slots_Nr"
-msgstr ""
-
-#: appObjects/FlatCAMExcellon.py:989 appTools/ToolMilling.py:1163
-msgid "Milling tool for SLOTS is larger than hole size. Cancelled."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:128 appObjects/FlatCAMGeometry.py:1434
-#: appObjects/FlatCAMGeometry.py:1435 appObjects/FlatCAMGeometry.py:1444
-msgid "Iso"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:128
-msgid "Finish"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:388 appObjects/FlatCAMGeometry.py:891
-#: appObjects/FlatCAMGeometry.py:954 appTools/ToolDrilling.py:705
-#: appTools/ToolDrilling.py:990 appTools/ToolDrilling.py:1037
-#: appTools/ToolIsolation.py:531 appTools/ToolIsolation.py:644
-#: appTools/ToolIsolation.py:710 appTools/ToolMilling.py:628
-#: appTools/ToolMilling.py:749 appTools/ToolMilling.py:794
-#: appTools/ToolNCC.py:271 appTools/ToolNCC.py:337 appTools/ToolNCC.py:701
-#: appTools/ToolPaint.py:252 appTools/ToolPaint.py:316
-#: appTools/ToolPaint.py:655
-msgid "Multiple Tools"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:554
-msgid "Add from Tool DB"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:886 appObjects/FlatCAMGeometry.py:925
-#: appTools/ToolDrilling.py:754 appTools/ToolDrilling.py:983
-#: appTools/ToolDrilling.py:1021 appTools/ToolIsolation.py:639
-#: appTools/ToolIsolation.py:674 appTools/ToolMilling.py:744
-#: appTools/ToolMilling.py:779 appTools/ToolNCC.py:266 appTools/ToolNCC.py:301
-#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2188
-msgid "No Tool Selected"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1072
-msgid "Tool added in Tool Table."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1181 appObjects/FlatCAMGeometry.py:1190
-msgid "Failed. Select a tool to copy."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1219
-msgid "Tool was copied in Tool Table."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1249
-msgid "Tool was edited in Tool Table."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1278 appObjects/FlatCAMGeometry.py:1287
-msgid "Failed. Select a tool to delete."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1311
-msgid "Tool was deleted in Tool Table."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1348 appObjects/FlatCAMGeometry.py:1357
-msgid ""
-"Disabled because the tool is V-shape.\n"
-"For V-shape tools the depth of cut is\n"
-"calculated from other parameters like:\n"
-"- 'V-tip Angle' -> angle at the tip of the tool\n"
-"- 'V-tip Dia' -> diameter at the tip of the tool \n"
-"- Tool Dia -> 'Dia' column found in the Tool Table\n"
-"NB: a value of zero means that Tool Dia = 'V-tip Dia'"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1776 appTools/ToolDrilling.py:1256
-#: appTools/ToolMilling.py:1256
-msgid "Focus Z"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1795 appTools/ToolDrilling.py:1278
-#: appTools/ToolMilling.py:1275
-msgid "Laser Power"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1848
-msgid "This Geometry can't be processed because it is"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1848
-msgid "geometry"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1879
-msgid "Failed. No tool selected in the tool table ..."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:1980 appObjects/FlatCAMGeometry.py:2135
-msgid ""
-"Tool Offset is selected in Tool Table but no value is provided.\n"
-"Add a Tool Offset or change the Offset Type."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2048 appObjects/FlatCAMGeometry.py:2198
-msgid "G-Code parsing in progress..."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2050 appObjects/FlatCAMGeometry.py:2200
-msgid "G-Code parsing finished..."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2058
-msgid "Finished G-Code processing"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2060 appObjects/FlatCAMGeometry.py:2212
-msgid "G-Code processing failed with error"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2104 appTools/ToolSolderPaste.py:866
-msgid "Cancelled. Empty file, it has no geometry"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2210 appObjects/FlatCAMGeometry.py:2380
-msgid "Finished G-Code processing..."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2229 appObjects/FlatCAMGeometry.py:2233
-#: appObjects/FlatCAMGeometry.py:2385 appTools/ToolDrilling.py:1960
-#: appTools/ToolMilling.py:1417
-msgid "Generating CNC Code"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2231 appObjects/FlatCAMGeometry.py:2235
-#: appObjects/FlatCAMGeometry.py:2387
-msgid "CNCjob created"
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2418 appObjects/FlatCAMGeometry.py:2427
-#: appParsers/ParseGerber.py:1956 appParsers/ParseGerber.py:1966
-msgid "Scale factor has to be a number: integer or float."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2490
-msgid "Geometry Scale done."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2507 appParsers/ParseGerber.py:2082
-msgid ""
-"An (x,y) pair of values are needed. Probable you entered only one value in "
-"the Offset field."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2563
-msgid "Geometry Offset done."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2592
-msgid ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
-"y)\n"
-"but now there is only one value, not two."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2695 appTools/ToolDrilling.py:1376
-#: appTools/ToolMilling.py:1488
-msgid "Delete failed. There are no exclusion areas to delete."
-msgstr ""
-
-#: appObjects/FlatCAMGeometry.py:2712 appTools/ToolDrilling.py:1393
-#: appTools/ToolMilling.py:1505
-msgid "Delete failed. Nothing is selected."
-msgstr ""
-
-#: appObjects/FlatCAMGerber.py:364 appTools/ToolIsolation.py:1337
-msgid "Buffering solid geometry"
-msgstr ""
-
-#: appObjects/FlatCAMGerber.py:371 appTools/ToolIsolation.py:1359
-msgid "Done"
-msgstr ""
-
-#: appObjects/FlatCAMGerber.py:397 appObjects/FlatCAMGerber.py:423
-msgid "Operation could not be done."
-msgstr ""
-
-#: appObjects/FlatCAMGerber.py:555 appObjects/FlatCAMGerber.py:629
-#: appTools/ToolIsolation.py:1583 appTools/ToolIsolation.py:1951
-#: appTools/ToolNCC.py:1807 appTools/ToolNCC.py:2772 appTools/ToolNCC.py:3151
-msgid "Isolation geometry could not be generated."
-msgstr ""
-
-#: appObjects/FlatCAMGerber.py:580 appObjects/FlatCAMGerber.py:707
-#: appTools/ToolIsolation.py:1650 appTools/ToolIsolation.py:1846
-#: appTools/ToolIsolation.py:2035
-msgid "Isolation geometry created"
-msgstr ""
-
-#: appObjects/FlatCAMGerber.py:989
-msgid "Plotting Apertures"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:252
-msgid "Name changed from"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:252
-msgid "to"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:263
-msgid "Offsetting..."
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:277 appObjects/FlatCAMObj.py:282
-msgid "Scaling could not be executed."
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:286 appObjects/FlatCAMObj.py:294
-msgid "Scale done."
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:292
-msgid "Scaling..."
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:310
-msgid "Skewing..."
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:487 appTools/ToolProperties.py:156
-msgid "Dimensions"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:510 appTools/ToolProperties.py:199
-msgid "Calculating dimensions ... Please wait."
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:721 appObjects/FlatCAMObj.py:789
-#: appTools/ToolProperties.py:422 appTools/ToolProperties.py:490
-msgid "Drills number"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:722 appObjects/FlatCAMObj.py:791
-#: appTools/ToolProperties.py:423 appTools/ToolProperties.py:492
-msgid "Slots number"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:724 appTools/ToolProperties.py:425
-msgid "Drills total number:"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:725 appTools/ToolProperties.py:426
-msgid "Slots total number:"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:752 appObjects/FlatCAMObj.py:755
-#: appObjects/FlatCAMObj.py:758 appObjects/FlatCAMObj.py:786
-#: appObjects/FlatCAMObj.py:793 appObjects/FlatCAMObj.py:796
-#: appTools/ToolProperties.py:453 appTools/ToolProperties.py:456
-#: appTools/ToolProperties.py:459 appTools/ToolProperties.py:487
-#: appTools/ToolProperties.py:494 appTools/ToolProperties.py:497
-msgid "Present"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:753 appObjects/FlatCAMObj.py:787
-#: appTools/ToolProperties.py:454 appTools/ToolProperties.py:488
-msgid "Solid Geometry"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:756 appObjects/FlatCAMObj.py:794
-#: appTools/ToolProperties.py:457 appTools/ToolProperties.py:495
-msgid "GCode Text"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:759 appObjects/FlatCAMObj.py:797
-#: appTools/ToolProperties.py:460 appTools/ToolProperties.py:498
-msgid "GCode Geometry"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:767 appObjects/FlatCAMObj.py:840
-#: appTools/ToolProperties.py:468 appTools/ToolProperties.py:541
-#, fuzzy
-#| msgid "Tool Dia:"
-msgid "Tool Data"
-msgstr "Tool Dia:"
-
-#: appObjects/FlatCAMObj.py:804 appTools/ToolProperties.py:505
-msgid "Depth of Cut"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:816 appTools/ToolProperties.py:517
-msgid "Clearance Height"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:854 appTools/ToolProperties.py:555
-msgid "Routing time"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:879 appTools/ToolProperties.py:580
-msgid "Width"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:885 appObjects/FlatCAMObj.py:893
-#: appTools/ToolProperties.py:586 appTools/ToolProperties.py:594
-msgid "Box Area"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:888 appObjects/FlatCAMObj.py:896
-#: appTools/ToolProperties.py:589 appTools/ToolProperties.py:597
-msgid "Convex_Hull Area"
-msgstr ""
-
-#: appObjects/FlatCAMObj.py:903 appObjects/FlatCAMObj.py:906
-#: appTools/ToolProperties.py:604 appTools/ToolProperties.py:607
-msgid "Copper Area"
-msgstr ""
-
-#: appObjects/FlatCAMScript.py:160
-msgid "Script Editor"
-msgstr ""
-
-#: appObjects/ObjectCollection.py:519
-#, python-brace-format
-msgid "Object renamed from <b>{old}</b> to <b>{new}</b>"
-msgstr ""
-
-#: appObjects/ObjectCollection.py:933 appObjects/ObjectCollection.py:939
-#: appObjects/ObjectCollection.py:945 appObjects/ObjectCollection.py:951
-#: appObjects/ObjectCollection.py:957 appObjects/ObjectCollection.py:963
-#: app_Main.py:6701 app_Main.py:6707 app_Main.py:6713 app_Main.py:6719
-msgid "selected"
-msgstr ""
-
-#: appObjects/ObjectCollection.py:994
-msgid "Cause of error"
-msgstr ""
-
-#: appObjects/ObjectCollection.py:1195
-msgid "All objects are selected."
-msgstr ""
-
-#: appObjects/ObjectCollection.py:1205
-msgid "Objects selection is cleared."
-msgstr ""
-
-#: appParsers/ParseExcellon.py:292
-msgid "This is GCODE mark"
-msgstr ""
-
-#: appParsers/ParseExcellon.py:436
-msgid ""
-"No tool diameter info's. See shell.\n"
-"A tool change event: T"
-msgstr ""
-
-#: appParsers/ParseExcellon.py:439
-msgid ""
-"was found but the Excellon file have no informations regarding the tool "
-"diameters therefore the application will try to load it by using some 'fake' "
-"diameters.\n"
-"The user needs to edit the resulting Excellon object and change the "
-"diameters to reflect the real diameters."
-msgstr ""
-
-#: appParsers/ParseExcellon.py:975
-msgid ""
-"Excellon Parser error.\n"
-"Parsing Failed. Line"
-msgstr ""
-
-#: appParsers/ParseFont.py:303
-msgid "Font not supported, try another one."
-msgstr ""
-
-#: appParsers/ParseGerber.py:426
-msgid "Gerber processing. Parsing"
-msgstr ""
-
-#: appParsers/ParseGerber.py:426 appParsers/ParseHPGL2.py:201
-msgid "lines"
-msgstr ""
-
-#: appParsers/ParseGerber.py:1037 appParsers/ParseGerber.py:1137
-#: appParsers/ParseHPGL2.py:294 appParsers/ParseHPGL2.py:308
-#: appParsers/ParseHPGL2.py:327 appParsers/ParseHPGL2.py:351
-#: appParsers/ParseHPGL2.py:386
-msgid "Coordinates missing, line ignored"
-msgstr ""
-
-#: appParsers/ParseGerber.py:1039 appParsers/ParseGerber.py:1139
-msgid "GERBER file might be CORRUPT. Check the file !!!"
-msgstr ""
-
-#: appParsers/ParseGerber.py:1093
-msgid ""
-"Region does not have enough points. File will be processed but there are "
-"parser errors. Line number"
-msgstr ""
-
-#: appParsers/ParseGerber.py:1523 appParsers/ParseHPGL2.py:421
-msgid "Gerber processing. Joining polygons"
-msgstr ""
-
-#: appParsers/ParseGerber.py:1541
-msgid "Gerber processing. Applying Gerber polarity."
-msgstr ""
-
-#: appParsers/ParseGerber.py:1601
-msgid "Gerber Line"
-msgstr ""
-
-#: appParsers/ParseGerber.py:1601
-msgid "Gerber Line Content"
-msgstr ""
-
-#: appParsers/ParseGerber.py:1603
-msgid "Gerber Parser ERROR"
-msgstr ""
-
-#: appParsers/ParseGerber.py:2046
-msgid "Gerber Scale done."
-msgstr ""
-
-#: appParsers/ParseGerber.py:2138
-msgid "Gerber Offset done."
-msgstr ""
-
-#: appParsers/ParseGerber.py:2214
-msgid "Gerber Mirror done."
-msgstr ""
-
-#: appParsers/ParseGerber.py:2288
-msgid "Gerber Skew done."
-msgstr ""
-
-#: appParsers/ParseGerber.py:2350
-msgid "Gerber Rotate done."
-msgstr ""
-
-#: appParsers/ParseGerber.py:2507
-msgid "Gerber Buffer done."
-msgstr ""
-
-#: appParsers/ParseHPGL2.py:201
-msgid "HPGL2 processing. Parsing"
-msgstr ""
-
-#: appParsers/ParseHPGL2.py:433
-msgid "HPGL2 Line"
-msgstr ""
-
-#: appParsers/ParseHPGL2.py:433
-msgid "HPGL2 Line Content"
-msgstr ""
-
-#: appParsers/ParseHPGL2.py:434
-msgid "HPGL2 Parser ERROR"
-msgstr ""
-
-#: appProcess.py:172
-msgid "processes running."
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:32 appTools/ToolAlignObjects.py:360
-msgid "Align Objects"
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:104
-msgid "Align Tool"
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:149
-msgid "There is no aligned FlatCAM object selected..."
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:159
-msgid "There is no aligner FlatCAM object selected..."
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:181 appTools/ToolAlignObjects.py:245
-msgid "First Point"
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:181 appTools/ToolAlignObjects.py:260
-msgid "Click on the START point."
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:240 appTools/ToolCalibration.py:276
-#: appTools/ToolDblSided.py:285
-msgid "Cancelled by user request."
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:245 appTools/ToolAlignObjects.py:267
-msgid "Click on the DESTINATION point."
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:245 appTools/ToolAlignObjects.py:260
-#: appTools/ToolAlignObjects.py:267
-msgid "Or right click to cancel."
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:260 appTools/ToolAlignObjects.py:267
-#: appTools/ToolFiducials.py:718
-msgid "Second Point"
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:386
-msgid "MOVING object"
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:390
-msgid ""
-"Specify the type of object to be aligned.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:411
-msgid "Object to be aligned."
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:423
-msgid "DESTINATION object"
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:425
-msgid ""
-"Specify the type of object to be aligned to.\n"
-"It can be of type: Gerber or Excellon.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:447
-msgid "Object to be aligned to. Aligner."
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:460
-msgid "Alignment Type"
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:462
-msgid ""
-"The type of alignment can be:\n"
-"- Single Point -> it require a single point of sync, the action will be a "
-"translation\n"
-"- Dual Point -> it require two points of sync, the action will be "
-"translation followed by rotation"
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:468
-msgid "Single Point"
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:469
-msgid "Dual Point"
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:481
-msgid "Align Object"
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:483
-msgid ""
-"Align the specified object to the aligner object.\n"
-"If only one point is used then it assumes translation.\n"
-"If tho points are used it assume translation and rotation."
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:498 appTools/ToolCalculators.py:372
-#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1577
-#: appTools/ToolCorners.py:444 appTools/ToolCutOut.py:2394
-#: appTools/ToolDblSided.py:947 appTools/ToolDrilling.py:2649
-#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:702
-#: appTools/ToolFiducials.py:932 appTools/ToolFilm.py:1383
-#: appTools/ToolInvertGerber.py:286 appTools/ToolIsolation.py:3477
-#: appTools/ToolMilling.py:2324 appTools/ToolNCC.py:4271
-#: appTools/ToolOptimal.py:593 appTools/ToolPaint.py:3194
-#: appTools/ToolPanelize.py:889 appTools/ToolPunchGerber.py:993
-#: appTools/ToolQRCode.py:904 appTools/ToolRulesCheck.py:1618
-#: appTools/ToolSolderPaste.py:1557 appTools/ToolSub.py:752
-#: appTools/ToolTransform.py:920
-msgid "Reset Tool"
-msgstr ""
-
-#: appTools/ToolAlignObjects.py:501 appTools/ToolCalculators.py:375
-#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1580
-#: appTools/ToolCorners.py:447 appTools/ToolCutOut.py:2397
-#: appTools/ToolDblSided.py:950 appTools/ToolDrilling.py:2652
-#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:705
-#: appTools/ToolFiducials.py:935 appTools/ToolFilm.py:1386
-#: appTools/ToolInvertGerber.py:289 appTools/ToolIsolation.py:3480
-#: appTools/ToolMilling.py:2327 appTools/ToolNCC.py:4274
-#: appTools/ToolOptimal.py:596 appTools/ToolPaint.py:3197
-#: appTools/ToolPanelize.py:892 appTools/ToolPunchGerber.py:996
-#: appTools/ToolQRCode.py:907 appTools/ToolRulesCheck.py:1621
-#: appTools/ToolSolderPaste.py:1560 appTools/ToolSub.py:755
-#: appTools/ToolTransform.py:923
-msgid "Will reset the tool parameters."
-msgstr ""
-
-#: appTools/ToolCalculators.py:77
-msgid "Calc. Tool"
-msgstr ""
-
-#: appTools/ToolCalculators.py:151
-msgid "Calculators"
-msgstr ""
-
-#: appTools/ToolCalculators.py:153
-msgid "Units Calculator"
-msgstr ""
-
-#: appTools/ToolCalculators.py:196
-msgid "Here you enter the value to be converted from INCH to MM"
-msgstr ""
-
-#: appTools/ToolCalculators.py:201
-msgid "Here you enter the value to be converted from MM to INCH"
-msgstr ""
-
-#: appTools/ToolCalculators.py:237
-msgid ""
-"This is the angle of the tip of the tool.\n"
-"It is specified by manufacturer."
-msgstr ""
-
-#: appTools/ToolCalculators.py:246
-msgid ""
-"This is the depth to cut into the material.\n"
-"In the CNCJob is the CutZ parameter."
-msgstr ""
-
-#: appTools/ToolCalculators.py:254
-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
-msgid "Calculate"
-msgstr ""
-
-#: appTools/ToolCalculators.py:268
-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"
-msgstr ""
-
-#: appTools/ToolCalculators.py:338
-msgid ""
-"This is the current intensity value\n"
-"to be set on the Power Supply. In Amps."
-msgstr ""
-
-#: appTools/ToolCalculators.py:342
-msgid "Time"
-msgstr ""
-
-#: appTools/ToolCalculators.py:349
-msgid ""
-"This is the calculated time required for the procedure.\n"
-"In minutes."
-msgstr ""
-
-#: appTools/ToolCalculators.py:364
-msgid ""
-"Calculate the current intensity value and the procedure time,\n"
-"depending on the parameters above"
-msgstr ""
-
-#: appTools/ToolCalibration.py:156
-msgid "Tool initialized"
-msgstr ""
-
-#: appTools/ToolCalibration.py:194
-msgid "There is no source FlatCAM object selected..."
-msgstr ""
-
-#: appTools/ToolCalibration.py:215
-msgid "Get First calibration point. Bottom Left..."
-msgstr ""
-
-#: appTools/ToolCalibration.py:282
-msgid "Get Second calibration point. Bottom Right (Top Left)..."
-msgstr ""
-
-#: appTools/ToolCalibration.py:286
-msgid "Get Third calibration point. Top Left (Bottom Right)..."
-msgstr ""
-
-#: appTools/ToolCalibration.py:290
-msgid "Get Forth calibration point. Top Right..."
-msgstr ""
-
-#: appTools/ToolCalibration.py:294
-msgid "Done. All four points have been acquired."
-msgstr ""
-
-#: appTools/ToolCalibration.py:325
-msgid "Verification GCode for FlatCAM Calibration Tool"
-msgstr ""
-
-#: appTools/ToolCalibration.py:337 appTools/ToolCalibration.py:423
-msgid "Gcode Viewer"
-msgstr ""
-
-#: appTools/ToolCalibration.py:353
-msgid "Cancelled. Four points are needed for GCode generation."
-msgstr ""
-
-#: appTools/ToolCalibration.py:603 appTools/ToolCalibration.py:699
-msgid "There is no FlatCAM object selected..."
-msgstr ""
-
-#: appTools/ToolCalibration.py:764
-msgid "Parameters used when creating the GCode in this tool."
-msgstr ""
-
-#: appTools/ToolCalibration.py:868
-msgid "STEP 1: Acquire Calibration Points"
-msgstr ""
-
-#: appTools/ToolCalibration.py:870
-msgid ""
-"Pick four points by clicking on canvas.\n"
-"Those four points should be in the four\n"
-"(as much as possible) corners of the object."
-msgstr ""
-
-#: appTools/ToolCalibration.py:888 appTools/ToolImage.py:196
-#: appTools/ToolPanelize.py:676 appTools/ToolProperties.py:180
-msgid "Object Type"
-msgstr ""
-
-#: appTools/ToolCalibration.py:905
-msgid "Source object selection"
-msgstr ""
-
-#: appTools/ToolCalibration.py:907
-msgid "FlatCAM Object to be used as a source for reference points."
-msgstr ""
-
-#: appTools/ToolCalibration.py:913
-msgid "Calibration Points"
-msgstr ""
-
-#: appTools/ToolCalibration.py:915
-msgid ""
-"Contain the expected calibration points and the\n"
-"ones measured."
-msgstr ""
-
-#: appTools/ToolCalibration.py:930 appTools/ToolSub.py:652
-#: appTools/ToolSub.py:707
-msgid "Target"
-msgstr ""
-
-#: appTools/ToolCalibration.py:931
-msgid "Found Delta"
-msgstr ""
-
-#: appTools/ToolCalibration.py:943
-msgid "Bot Left X"
-msgstr ""
-
-#: appTools/ToolCalibration.py:952
-msgid "Bot Left Y"
-msgstr ""
-
-#: appTools/ToolCalibration.py:970
-msgid "Bot Right X"
-msgstr ""
-
-#: appTools/ToolCalibration.py:980
-msgid "Bot Right Y"
-msgstr ""
-
-#: appTools/ToolCalibration.py:995
-msgid "Top Left X"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1004
-msgid "Top Left Y"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1019
-msgid "Top Right X"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1029
-msgid "Top Right Y"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1062
-msgid "Get Points"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1064
-msgid ""
-"Pick four points by clicking on canvas if the source choice\n"
-"is 'free' or inside the object geometry if the source is 'object'.\n"
-"Those four points should be in the four squares of\n"
-"the object."
-msgstr ""
-
-#: appTools/ToolCalibration.py:1085
-msgid "STEP 2: Verification GCode"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1087 appTools/ToolCalibration.py:1100
-msgid ""
-"Generate GCode file to locate and align the PCB by using\n"
-"the four points acquired above.\n"
-"The points sequence is:\n"
-"- first point -> set the origin\n"
-"- second point -> alignment point. Can be: top-left or bottom-right.\n"
-"- third point -> check point. Can be: top-left or bottom-right.\n"
-"- forth point -> final verification point. Just for evaluation."
-msgstr ""
-
-#: appTools/ToolCalibration.py:1098 appTools/ToolSolderPaste.py:1420
-msgid "Generate GCode"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1124
-msgid "STEP 3: Adjustments"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1126 appTools/ToolCalibration.py:1135
-msgid ""
-"Calculate Scale and Skew factors based on the differences (delta)\n"
-"found when checking the PCB pattern. The differences must be filled\n"
-"in the fields Found (Delta)."
-msgstr ""
-
-#: appTools/ToolCalibration.py:1133
-msgid "Calculate Factors"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1155
-msgid "STEP 4: Adjusted GCode"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1157
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors above."
-msgstr ""
-
-#: appTools/ToolCalibration.py:1162
-msgid "Scale Factor X:"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1164
-msgid "Factor for Scale action over X axis."
-msgstr ""
-
-#: appTools/ToolCalibration.py:1174
-msgid "Scale Factor Y:"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1176
-msgid "Factor for Scale action over Y axis."
-msgstr ""
-
-#: appTools/ToolCalibration.py:1186
-msgid "Apply Scale Factors"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1188
-msgid "Apply Scale factors on the calibration points."
-msgstr ""
-
-#: appTools/ToolCalibration.py:1198
-msgid "Skew Angle X:"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1211
-msgid "Skew Angle Y:"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1224
-msgid "Apply Skew Factors"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1226
-msgid "Apply Skew factors on the calibration points."
-msgstr ""
-
-#: appTools/ToolCalibration.py:1295
-msgid "Generate Adjusted GCode"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1297
-msgid ""
-"Generate verification GCode file adjusted with\n"
-"the factors set above.\n"
-"The GCode parameters can be readjusted\n"
-"before clicking this button."
-msgstr ""
-
-#: appTools/ToolCalibration.py:1318
-msgid "STEP 5: Calibrate FlatCAM Objects"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1320
-msgid ""
-"Adjust the FlatCAM objects\n"
-"with the factors determined and verified above."
-msgstr ""
-
-#: appTools/ToolCalibration.py:1332
-msgid "Adjusted object type"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1333
-msgid "Type of the FlatCAM Object to be adjusted."
-msgstr ""
-
-#: appTools/ToolCalibration.py:1346
-msgid "Adjusted object selection"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1348
-msgid "The FlatCAM Object to be adjusted."
-msgstr ""
-
-#: appTools/ToolCalibration.py:1355
-msgid "Calibrate"
-msgstr ""
-
-#: appTools/ToolCalibration.py:1357
-msgid ""
-"Adjust (scale and/or skew) the objects\n"
-"with the factors determined above."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:184 appTools/ToolCopperThieving.py:209
-msgid "Lines Grid works only for 'itself' reference ..."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:195
-msgid "Solid fill selected."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:200
-msgid "Dots grid fill selected."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:205
-msgid "Squares grid fill selected."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:308
-#: appTools/ToolCopperThieving.py:910 appTools/ToolCorners.py:120
-#: appTools/ToolDblSided.py:304 appTools/ToolExtractDrills.py:141
-#: appTools/ToolFiducials.py:187 appTools/ToolFiducials.py:464
-#: appTools/ToolOptimal.py:138 appTools/ToolPunchGerber.py:188
-#: appTools/ToolQRCode.py:158
-msgid "There is no Gerber object loaded ..."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:838
-msgid "Append geometry"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:871
-#: appTools/ToolCopperThieving.py:1016
-msgid "Append source file"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:291 appTools/ToolCopperThieving.py:879
-msgid "Copper Thieving Tool done."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:318 appTools/ToolCopperThieving.py:351
-#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:917
-#: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582
-#: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99
-#: appTools/ToolIsolation.py:908 appTools/ToolIsolation.py:1345
-#: appTools/ToolIsolation.py:1372 appTools/ToolMilling.py:424
-#: appTools/ToolMilling.py:639 appTools/ToolMilling.py:1322
-#: appTools/ToolNCC.py:830 appTools/ToolNCC.py:1262 appTools/ToolNCC.py:1308
-#: appTools/ToolNCC.py:1341 appTools/ToolPaint.py:1086
-#: appTools/ToolPanelize.py:191 appTools/ToolPanelize.py:205
-#: appTools/ToolSub.py:157 appTools/ToolSub.py:170 appTools/ToolSub.py:359
-#: appTools/ToolSub.py:372 tclCommands/TclCommandCopperClear.py:97
-#: tclCommands/TclCommandPaint.py:99
-msgid "Could not retrieve object"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:379
-msgid "Click the end point of the filling area."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:507 appTools/ToolCopperThieving.py:511
-#: appTools/ToolCopperThieving.py:572
-msgid "Thieving"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:518
-msgid "Copper Thieving Tool started. Reading parameters."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:543
-msgid "Copper Thieving Tool. Preparing isolation polygons."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:588
-msgid "Copper Thieving Tool. Preparing areas to fill with copper."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:599 appTools/ToolFilm.py:631
-#: appTools/ToolFilm.py:879 appTools/ToolIsolation.py:916
-#: appTools/ToolNCC.py:837 appTools/ToolOptimal.py:145
-#: appTools/ToolPanelize.py:612 appTools/ToolRulesCheck.py:626
-msgid "Working..."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:626
-msgid "Geometry not supported for bounding box"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1632
-#: appTools/ToolNCC.py:1687 appTools/ToolNCC.py:2627 appTools/ToolPaint.py:2457
-msgid "No object available."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1657
-#: appTools/ToolNCC.py:1710 appTools/ToolNCC.py:2669
-msgid "The reference object type is not supported."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:674
-msgid "Copper Thieving Tool. Appending new geometry and buffering."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:690
-msgid "Create geometry"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:890 appTools/ToolCopperThieving.py:894
-msgid "P-Plating Mask"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:916
-msgid "Append PP-M geometry"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1034
-msgid "Generating Pattern Plating Mask done."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1106
-msgid "Copper Thieving Tool exit."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1165 appTools/ToolFiducials.py:875
-msgid "Gerber Object to which will be added a copper thieving."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1191
-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:1224
-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"
-"- 'Reference Object' - will do copper thieving within the area specified by "
-"another object."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1231 appTools/ToolIsolation.py:3385
-#: appTools/ToolNCC.py:4210 appTools/ToolPaint.py:3137
-msgid "Ref. Type"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1233
-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:1242 appTools/ToolIsolation.py:3396
-#: appTools/ToolNCC.py:4220 appTools/ToolPaint.py:3147
-msgid "Ref. Object"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1244 appTools/ToolIsolation.py:3398
-#: appTools/ToolNCC.py:4222 appTools/ToolPaint.py:3149
-msgid "The FlatCAM object to be used as non copper clearing reference."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1420
-msgid "Insert Copper thieving"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1422
-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:1481
-msgid "Insert Robber Bar"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1483
-msgid ""
-"Will add a polygon with a defined thickness\n"
-"that will surround the actual Gerber object\n"
-"at a certain distance.\n"
-"Required when doing holes pattern plating."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1507
-msgid "Select Soldermask object"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1509
-msgid ""
-"Gerber Object with the soldermask.\n"
-"It will be used as a base for\n"
-"the pattern plating mask."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1538
-msgid "Plated area"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1540
-msgid ""
-"The area to be plated by pattern plating.\n"
-"Basically is made from the openings in the plating mask.\n"
-"\n"
-"<<WARNING>> - the calculated area is actually a bit larger\n"
-"due of the fact that the soldermask openings are by design\n"
-"a bit larger than the copper pads, and this area is\n"
-"calculated from the soldermask openings."
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1551
-msgid "mm"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1553
-msgid "in"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1560
-msgid "Generate pattern plating mask"
-msgstr ""
-
-#: appTools/ToolCopperThieving.py:1562
-msgid ""
-"Will add to the soldermask gerber geometry\n"
-"the geometries of the copper thieving and/or\n"
-"the robber bar if those were generated."
-msgstr ""
-
-#: appTools/ToolCorners.py:87
-msgid "Corners Tool"
-msgstr ""
-
-#: appTools/ToolCorners.py:157
-msgid "Please select at least a location"
-msgstr ""
-
-#: appTools/ToolCorners.py:292
-msgid "Corners Tool exit."
-msgstr ""
-
-#: appTools/ToolCorners.py:319
-msgid "The Gerber object to which will be added corner markers."
-msgstr ""
-
-#: appTools/ToolCorners.py:335
-msgid "Locations"
-msgstr ""
-
-#: appTools/ToolCorners.py:337
-msgid "Locations where to place corner markers."
-msgstr ""
-
-#: appTools/ToolCorners.py:354 appTools/ToolFiducials.py:706
-msgid "Top Right"
-msgstr ""
-
-#: appTools/ToolCorners.py:363
-msgid "Toggle ALL"
-msgstr ""
-
-#: appTools/ToolCorners.py:429
-msgid "Add Marker"
-msgstr ""
-
-#: appTools/ToolCorners.py:431
-msgid "Will add corner markers to the selected Gerber file."
-msgstr ""
-
-#: appTools/ToolCutOut.py:281 appTools/ToolIsolation.py:791
-#: appTools/ToolIsolation.py:1049 appTools/ToolIsolation.py:1185
-#: appTools/ToolNCC.py:458 appTools/ToolNCC.py:946 appTools/ToolNCC.py:1084
-#: appTools/ToolPaint.py:395 appTools/ToolPaint.py:686
-#: appTools/ToolPaint.py:823 appTools/ToolSolderPaste.py:131
-#: appTools/ToolSolderPaste.py:464 app_Main.py:4490
-msgid "Please enter a tool diameter with non-zero value, in Float format."
-msgstr ""
-
-#: appTools/ToolCutOut.py:357 appTools/ToolIsolation.py:1130
-#: appTools/ToolNCC.py:1029 appTools/ToolPaint.py:767
-msgid "Tool not in Tools Database. Adding a default tool."
-msgstr ""
-
-#: appTools/ToolCutOut.py:364 appTools/ToolDrilling.py:955
-#: appTools/ToolIsolation.py:1137 appTools/ToolNCC.py:1036
-#: appTools/ToolPaint.py:775
-msgid ""
-"Cancelled.\n"
-"Multiple tools for one tool diameter found in Tools Database."
-msgstr ""
-
-#: appTools/ToolCutOut.py:388
-#, fuzzy
-#| msgid "Add Tool from Tools DB"
-msgid "Updated tool from Tools Database."
-msgstr "Add Tool from Tools DB"
-
-#: appTools/ToolCutOut.py:457
-msgid "Default tool added."
-msgstr ""
-
-#: appTools/ToolCutOut.py:466 appTools/ToolIsolation.py:2577
-#: appTools/ToolNCC.py:3602 appTools/ToolPaint.py:2620
-msgid "Selected tool can't be used here. Pick another."
-msgstr ""
-
-#: appTools/ToolCutOut.py:489
-#, fuzzy
-#| msgid "Add Tool from Tools DB"
-msgid "Tool updated from Tools Database."
-msgstr "Add Tool from Tools DB"
-
-#: appTools/ToolCutOut.py:549
-msgid ""
-"There is no object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-
-#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:926
-#: appTools/ToolCutOut.py:1300 appTools/ToolCutOut.py:1431
-#: tclCommands/TclCommandGeoCutout.py:184
-msgid "Tool Diameter is zero value. Change it to a positive real number."
-msgstr ""
-
-#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:940
-msgid "Number of gaps value is missing. Add it and retry."
-msgstr ""
-
-#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:944
-msgid ""
-"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. "
-"Fill in a correct value and retry. "
-msgstr ""
-
-#: appTools/ToolCutOut.py:891 appTools/ToolCutOut.py:1260
-#: appTools/ToolCutOut.py:1615
-msgid "Mouse bites failed."
-msgstr ""
-
-#: appTools/ToolCutOut.py:899
-msgid "Any form CutOut operation finished."
-msgstr ""
-
-#: appTools/ToolCutOut.py:921 appTools/ToolDrilling.py:1586
-#: appTools/ToolEtchCompensation.py:158 appTools/ToolInvertGerber.py:105
-#: appTools/ToolIsolation.py:912 appTools/ToolIsolation.py:1349
-#: appTools/ToolIsolation.py:1376 appTools/ToolMilling.py:1326
-#: appTools/ToolNCC.py:834 appTools/ToolNCC.py:1266 appTools/ToolPaint.py:1003
-#: appTools/ToolPanelize.py:196 tclCommands/TclCommandBbox.py:71
-#: tclCommands/TclCommandNregions.py:71
-msgid "Object not found"
-msgstr ""
-
-#: appTools/ToolCutOut.py:1114 appTools/ToolCutOut.py:1187
-msgid "Rectangular cutout with negative margin is not possible."
-msgstr ""
-
-#: appTools/ToolCutOut.py:1268
-msgid "Rectangular CutOut operation finished."
-msgstr ""
-
-#: appTools/ToolCutOut.py:1284 appTools/ToolCutOut.py:1316
-msgid "Could not retrieve Geometry object"
-msgstr ""
-
-#: appTools/ToolCutOut.py:1289 appTools/ToolCutOut.py:1344
-msgid "Geometry object for manual cutout not found"
-msgstr ""
-
-#: appTools/ToolCutOut.py:1292
-msgid ""
-"Click on the selected geometry object perimeter to create a bridge gap ..."
-msgstr ""
-
-#: appTools/ToolCutOut.py:1380
-msgid "No tool in the Geometry object."
-msgstr ""
-
-#: appTools/ToolCutOut.py:1401
-msgid ""
-"Added manual Bridge Gap. Left click to add another or right click to finish."
-msgstr ""
-
-#: appTools/ToolCutOut.py:1413
-msgid "Could not retrieve Gerber object"
-msgstr ""
-
-#: appTools/ToolCutOut.py:1418
-msgid ""
-"There is no Gerber object selected for Cutout.\n"
-"Select one and try again."
-msgstr ""
-
-#: appTools/ToolCutOut.py:1424
-msgid ""
-"The selected object has to be of Gerber type.\n"
-"Select a Gerber file and try again."
-msgstr ""
-
-#: appTools/ToolCutOut.py:1459
-msgid "Geometry not supported for cutout"
-msgstr ""
-
-#: appTools/ToolCutOut.py:1531
-msgid "Making manual bridge gap..."
-msgstr ""
-
-#: appTools/ToolCutOut.py:1619
-msgid "Finished manual adding of gaps."
-msgstr ""
-
-#: appTools/ToolCutOut.py:1961
-msgid "Cutout PCB"
-msgstr ""
-
-#: appTools/ToolCutOut.py:1987 appTools/ToolDblSided.py:513
-#: appTools/ToolPanelize.py:652
-msgid "Source Object"
-msgstr ""
-
-#: appTools/ToolCutOut.py:1988
-msgid "Object to be cutout"
-msgstr ""
-
-#: appTools/ToolCutOut.py:1993
-msgid "Kind"
-msgstr ""
-
-#: appTools/ToolCutOut.py:2015 appTools/ToolDblSided.py:521
-msgid ""
-"Specify the type of object to be cutout.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-
-#: appTools/ToolCutOut.py:2074 appTools/ToolIsolation.py:3125
-#: appTools/ToolNCC.py:3892 appTools/ToolPaint.py:2901
-msgid ""
-"Add a new tool to the Tool Table\n"
-"with the diameter specified above.\n"
-"This is done by a background search\n"
-"in the Tools Database. If nothing is found\n"
-"in the Tools DB then a default tool is added."
-msgstr ""
-
-#: appTools/ToolCutOut.py:2100
-msgid "Tool Parameters"
-msgstr ""
-
-#: appTools/ToolCutOut.py:2249
-msgid "Automatic"
-msgstr ""
-
-#: appTools/ToolCutOut.py:2249 appTools/ToolCutOut.py:2324
-msgid "Bridge Gaps"
-msgstr ""
-
-#: appTools/ToolCutOut.py:2251
-msgid "This section handle creation of automatic bridge gaps."
-msgstr ""
-
-#: appTools/ToolCutOut.py:2290
-msgid ""
-"Cutout the selected object.\n"
-"The cutout shape can be of any shape.\n"
-"Useful when the PCB has a non-rectangular shape."
-msgstr ""
-
-#: appTools/ToolCutOut.py:2305
-msgid ""
-"Cutout the selected object.\n"
-"The resulting cutout shape is\n"
-"always a rectangle shape and it will be\n"
-"the bounding box of the Object."
-msgstr ""
-
-#: appTools/ToolCutOut.py:2326
-msgid ""
-"This section handle creation of manual bridge gaps.\n"
-"This is done by mouse clicking on the perimeter of the\n"
-"Geometry object that is used as a cutout object. "
-msgstr ""
-
-#: appTools/ToolCutOut.py:2342
-msgid "Generate Manual Geometry"
-msgstr ""
-
-#: appTools/ToolCutOut.py:2345
-msgid ""
-"If the object to be cutout is a Gerber\n"
-"first create a Geometry that surrounds it,\n"
-"to be used as the cutout, if one doesn't exist yet.\n"
-"Select the source Gerber file in the top object combobox."
-msgstr ""
-
-#: appTools/ToolCutOut.py:2365
-msgid "Manual cutout Geometry"
-msgstr ""
-
-#: appTools/ToolCutOut.py:2367
-msgid "Geometry object used to create the manual cutout."
-msgstr ""
-
-#: appTools/ToolCutOut.py:2374
-msgid "Manual Add Bridge Gaps"
-msgstr ""
-
-#: appTools/ToolCutOut.py:2377
-msgid ""
-"Use the left mouse button (LMB) click\n"
-"to create a bridge gap to separate the PCB from\n"
-"the surrounding material.\n"
-"The LMB click has to be done on the perimeter of\n"
-"the Geometry object used as a cutout geometry."
-msgstr ""
-
-#: appTools/ToolDblSided.py:107
-msgid "2-Sided Tool"
-msgstr ""
-
-#: appTools/ToolDblSided.py:160
-msgid ""
-"'Point' reference is selected and 'Point' coordinates are missing. Add them "
-"and retry."
-msgstr ""
-
-#: appTools/ToolDblSided.py:169
-msgid "There is no Box reference object loaded. Load one and retry."
-msgstr ""
-
-#: appTools/ToolDblSided.py:181
-msgid "No value or wrong format in Drill Dia entry. Add it and retry."
-msgstr ""
-
-#: appTools/ToolDblSided.py:193
-msgid "There are no Alignment Drill Coordinates to use. Add them and retry."
-msgstr ""
-
-#: appTools/ToolDblSided.py:213
-msgid "Excellon object with alignment drills created..."
-msgstr ""
-
-#: appTools/ToolDblSided.py:224 appTools/ToolPunchGerber.py:209
-msgid "There is no Excellon object loaded ..."
-msgstr ""
-
-#: appTools/ToolDblSided.py:236
-msgid "Click on canvas within the desired Excellon drill hole"
-msgstr ""
-
-#: appTools/ToolDblSided.py:280
-#, fuzzy
-#| msgid "Mirror Reference point"
-msgid "Mirror reference point set."
-msgstr "Mirror Reference point"
-
-#: appTools/ToolDblSided.py:308
-msgid "Only Gerber, Excellon and Geometry objects can be mirrored."
-msgstr ""
-
-#: appTools/ToolDblSided.py:320
-msgid "There is no Box object loaded ..."
-msgstr ""
-
-#: appTools/ToolDblSided.py:330
-msgid ""
-"There are no Point coordinates in the Point field. Add coords and try "
-"again ..."
-msgstr ""
-
-#: appTools/ToolDblSided.py:337 camlib.py:2401
-msgid "Object was mirrored"
-msgstr ""
-
-#: appTools/ToolDblSided.py:403 app_Main.py:4629 app_Main.py:4784
-msgid "Failed. No object(s) selected..."
-msgstr ""
-
-#: appTools/ToolDblSided.py:487
-msgid "2-Sided PCB"
-msgstr ""
-
-#: appTools/ToolDblSided.py:514
-msgid "Objects to be mirrored"
-msgstr ""
-
-#: appTools/ToolDblSided.py:560
-msgid "Bounds Values"
-msgstr ""
-
-#: appTools/ToolDblSided.py:562
-msgid ""
-"Select on canvas the object(s)\n"
-"for which to calculate bounds values."
-msgstr ""
-
-#: appTools/ToolDblSided.py:572
-msgid "X min"
-msgstr ""
-
-#: appTools/ToolDblSided.py:574 appTools/ToolDblSided.py:588
-msgid "Minimum location."
-msgstr ""
-
-#: appTools/ToolDblSided.py:586
-msgid "Y min"
-msgstr ""
-
-#: appTools/ToolDblSided.py:600
-msgid "X max"
-msgstr ""
-
-#: appTools/ToolDblSided.py:602 appTools/ToolDblSided.py:616
-msgid "Maximum location."
-msgstr ""
-
-#: appTools/ToolDblSided.py:614
-msgid "Y max"
-msgstr ""
-
-#: appTools/ToolDblSided.py:625
-msgid "Center point coordinates"
-msgstr ""
-
-#: appTools/ToolDblSided.py:627
-msgid "Centroid"
-msgstr ""
-
-#: appTools/ToolDblSided.py:629
-msgid ""
-"The center point location for the rectangular\n"
-"bounding shape. Centroid. Format is (x, y)."
-msgstr ""
-
-#: appTools/ToolDblSided.py:638
-msgid "Calculate Bounds Values"
-msgstr ""
-
-#: appTools/ToolDblSided.py:640
-msgid ""
-"Calculate the enveloping rectangular shape coordinates,\n"
-"for the selection of objects.\n"
-"The envelope shape is parallel with the X, Y axis."
-msgstr ""
-
-#: appTools/ToolDblSided.py:667
-msgid "Mirror Operation"
-msgstr ""
-
-#: appTools/ToolDblSided.py:668
-msgid "Parameters for the mirror operation"
-msgstr ""
-
-#: appTools/ToolDblSided.py:690
-msgid ""
-"The coordinates used as reference for the mirror operation.\n"
-"Can be:\n"
-"- Point -> a set of coordinates (x,y) around which the object is mirrored\n"
-"- Box -> a set of coordinates (x, y) obtained from the center of the\n"
-"bounding box of another object selected below\n"
-"- Hole Snap -> a point defined by the center of a drill hone in a Excellon "
-"object"
-msgstr ""
-
-#: appTools/ToolDblSided.py:710
-msgid "Point coordinates"
-msgstr ""
-
-#: appTools/ToolDblSided.py:715
-msgid ""
-"Add the coordinates in format <b>(x, y)</b> through which the mirroring "
-"axis\n"
-" selected in 'MIRROR AXIS' pass.\n"
-"The (x, y) coordinates are captured by pressing SHIFT key\n"
-"and left mouse button click on canvas or you can enter the coordinates "
-"manually."
-msgstr ""
-
-#: appTools/ToolDblSided.py:733
-msgid "Object that holds holes that can be picked as reference for mirroing."
-msgstr ""
-
-#: appTools/ToolDblSided.py:748
-msgid "Pick hole"
-msgstr ""
-
-#: appTools/ToolDblSided.py:750
-msgid ""
-"Click inside a drill hole that belong to the selected Excellon object,\n"
-"and the hole center coordinates will be copied to the Point field."
-msgstr ""
-
-#: appTools/ToolDblSided.py:766
-msgid ""
-"It can be of type: Gerber or Excellon or Geometry.\n"
-"The coordinates of the center of the bounding box are used\n"
-"as reference for mirror operation."
-msgstr ""
-
-#: appTools/ToolDblSided.py:792
-msgid "Mirror"
-msgstr ""
-
-#: appTools/ToolDblSided.py:794
-msgid ""
-"Mirrors (flips) the specified object around \n"
-"the specified axis. Does not create a new \n"
-"object, but modifies it."
-msgstr ""
-
-#: appTools/ToolDblSided.py:822
-msgid "PCB Alignment"
-msgstr ""
-
-#: appTools/ToolDblSided.py:824 appTools/ToolDblSided.py:932
-msgid ""
-"Creates an Excellon Object containing the\n"
-"specified alignment holes and their mirror\n"
-"images."
-msgstr ""
-
-#: appTools/ToolDblSided.py:831
-msgid "Drill Diameter"
-msgstr ""
-
-#: appTools/ToolDblSided.py:866 appTools/ToolDblSided.py:873
-msgid ""
-"The reference point used to create the second alignment drill\n"
-"from the first alignment drill, by doing mirror.\n"
-"It can be modified in the Mirror Parameters -> Reference section"
-msgstr ""
-
-#: appTools/ToolDblSided.py:886
-msgid "Alignment Drill Coordinates"
-msgstr ""
-
-#: appTools/ToolDblSided.py:888
-msgid ""
-"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For "
-"each set of (x, y) coordinates\n"
-"entered here, a pair of drills will be created:\n"
-"\n"
-"- one drill at the coordinates from the field\n"
-"- one drill in mirror position over the axis selected above in the 'Align "
-"Axis'."
-msgstr ""
-
-#: appTools/ToolDblSided.py:896
-msgid "Drill coordinates"
-msgstr ""
-
-#: appTools/ToolDblSided.py:903
-msgid ""
-"Add alignment drill holes coordinates in the format: (x1, y1), (x2, "
-"y2), ... \n"
-"on one side of the alignment axis.\n"
-"\n"
-"The coordinates set can be obtained:\n"
-"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then Ctrl+V in the "
-"field.\n"
-"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the "
-"field and click Paste.\n"
-"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..."
-msgstr ""
-
-#: appTools/ToolDblSided.py:918
-msgid "Delete Last"
-msgstr ""
-
-#: appTools/ToolDblSided.py:920
-msgid "Delete the last coordinates tuple in the list."
-msgstr ""
-
-#: appTools/ToolDblSided.py:930
-msgid "Create Excellon Object"
-msgstr ""
-
-#: appTools/ToolDistance.py:177
-msgid "Working"
-msgstr ""
-
-#: appTools/ToolDistance.py:182
-msgid "MEASURING: Click on the Start point ..."
-msgstr ""
-
-#: appTools/ToolDistance.py:242 appTools/ToolDistance.py:648
-#: appTools/ToolDistanceMin.py:302
-msgid "Measure"
-msgstr ""
-
-#: appTools/ToolDistance.py:292
-msgid "Distance Tool finished."
-msgstr ""
-
-#: appTools/ToolDistance.py:364
-msgid "Pads overlapped. Aborting."
-msgstr ""
-
-#: appTools/ToolDistance.py:392
-msgid "Distance Tool cancelled."
-msgstr ""
-
-#: appTools/ToolDistance.py:397
-msgid "MEASURING: Click on the Destination point ..."
-msgstr ""
-
-#: appTools/ToolDistance.py:406 appTools/ToolDistanceMin.py:197
-msgid "MEASURING"
-msgstr ""
-
-#: appTools/ToolDistance.py:407 appTools/ToolDistanceMin.py:198
-msgid "Result"
-msgstr ""
-
-#: appTools/ToolDistance.py:563 appTools/ToolDistanceMin.py:238
-msgid "Those are the units in which the distance is measured."
-msgstr ""
-
-#: appTools/ToolDistance.py:564 appTools/ToolDistanceMin.py:239
-msgid "METRIC (mm)"
-msgstr ""
-
-#: appTools/ToolDistance.py:564 appTools/ToolDistanceMin.py:239
-msgid "INCH (in)"
-msgstr ""
-
-#: appTools/ToolDistance.py:570
-msgid "Snap to center"
-msgstr ""
-
-#: appTools/ToolDistance.py:572
-msgid ""
-"Mouse cursor will snap to the center of the pad/drill\n"
-"when it is hovering over the geometry of the pad/drill."
-msgstr ""
-
-#: appTools/ToolDistance.py:582
-msgid "Start Coords"
-msgstr ""
-
-#: appTools/ToolDistance.py:583 appTools/ToolDistance.py:588
-msgid "This is measuring Start point coordinates."
-msgstr ""
-
-#: appTools/ToolDistance.py:593
-msgid "Stop Coords"
-msgstr ""
-
-#: appTools/ToolDistance.py:594 appTools/ToolDistance.py:599
-msgid "This is the measuring Stop point coordinates."
-msgstr ""
-
-#: appTools/ToolDistance.py:604 appTools/ToolDistanceMin.py:250
-msgid "Dx"
-msgstr ""
-
-#: appTools/ToolDistance.py:605 appTools/ToolDistance.py:610
-#: appTools/ToolDistanceMin.py:251 appTools/ToolDistanceMin.py:280
-msgid "This is the distance measured over the X axis."
-msgstr ""
-
-#: appTools/ToolDistance.py:615 appTools/ToolDistanceMin.py:253
-msgid "Dy"
-msgstr ""
-
-#: appTools/ToolDistance.py:616 appTools/ToolDistance.py:621
-#: appTools/ToolDistanceMin.py:254 appTools/ToolDistanceMin.py:285
-msgid "This is the distance measured over the Y axis."
-msgstr ""
-
-#: appTools/ToolDistance.py:627 appTools/ToolDistance.py:632
-#: appTools/ToolDistanceMin.py:257 appTools/ToolDistanceMin.py:290
-msgid "This is orientation angle of the measuring line."
-msgstr ""
-
-#: appTools/ToolDistance.py:637 appTools/ToolDistanceMin.py:259
-msgid "DISTANCE"
-msgstr ""
-
-#: appTools/ToolDistance.py:638 appTools/ToolDistance.py:643
-msgid "This is the point to point Euclidian distance."
-msgstr ""
-
-#: appTools/ToolDistanceMin.py:56 appTools/ToolDistanceMin.py:221
-msgid "Minimum Distance Tool"
-msgstr ""
-
-#: appTools/ToolDistanceMin.py:67
-msgid ""
-"Select two objects and no more, to measure the distance between them ..."
-msgstr ""
-
-#: appTools/ToolDistanceMin.py:108 appTools/ToolDistanceMin.py:129
-#: appTools/ToolDistanceMin.py:138 appTools/ToolDistanceMin.py:159
-msgid "Select two objects and no more. Currently the selection has objects: "
-msgstr ""
-
-#: appTools/ToolDistanceMin.py:206
-msgid "Objects intersects or touch at"
-msgstr ""
-
-#: appTools/ToolDistanceMin.py:212
-msgid "Jumped to the half point between the two selected objects"
-msgstr ""
-
-#: appTools/ToolDistanceMin.py:242
-msgid "First object point"
-msgstr ""
-
-#: appTools/ToolDistanceMin.py:243 appTools/ToolDistanceMin.py:268
-msgid ""
-"This is first object point coordinates.\n"
-"This is the start point for measuring distance."
-msgstr ""
-
-#: appTools/ToolDistanceMin.py:246
-msgid "Second object point"
-msgstr ""
-
-#: appTools/ToolDistanceMin.py:247 appTools/ToolDistanceMin.py:274
-msgid ""
-"This is second object point coordinates.\n"
-"This is the end point for measuring distance."
-msgstr ""
-
-#: appTools/ToolDistanceMin.py:260 appTools/ToolDistanceMin.py:295
-msgid "This is the point to point Euclidean distance."
-msgstr ""
-
-#: appTools/ToolDistanceMin.py:262
-msgid "Half Point"
-msgstr ""
-
-#: appTools/ToolDistanceMin.py:263 appTools/ToolDistanceMin.py:300
-msgid "This is the middle point of the point to point Euclidean distance."
-msgstr ""
-
-#: appTools/ToolDistanceMin.py:305
-msgid "Jump to Half Point"
-msgstr ""
-
-#: appTools/ToolDrilling.py:1195 appTools/ToolIsolation.py:778
-#: appTools/ToolMilling.py:962 appTools/ToolNCC.py:444
-#: appTools/ToolPaint.py:381
-msgid "Current Tool parameters were applied to all tools."
-msgstr ""
-
-#: appTools/ToolDrilling.py:1600 camlib.py:3692
-msgid "The loaded Excellon file has no drills"
-msgstr ""
-
-#: appTools/ToolDrilling.py:1645 camlib.py:3614
-msgid "Creating a list of points to drill..."
-msgstr ""
-
-#: appTools/ToolDrilling.py:1652 camlib.py:3643
-msgid "Failed. Drill points inside the exclusion zones."
-msgstr ""
-
-#: appTools/ToolDrilling.py:1668 camlib.py:3682 camlib.py:5075 camlib.py:5848
-msgid "Starting G-Code"
-msgstr ""
-
-#: appTools/ToolDrilling.py:1673 appTools/ToolMilling.py:1355
-#, fuzzy
-#| msgid "Generating panel ..."
-msgid "Generating Excellon CNCJob..."
-msgstr "Generating panel ..."
-
-#: appTools/ToolDrilling.py:1791 camlib.py:3212 camlib.py:5350 camlib.py:5710
-msgid "The Toolchange X,Y format has to be (x, y)."
-msgstr ""
-
-#: appTools/ToolDrilling.py:2034 appTools/ToolMilling.py:1639
-msgid "Excellon object for drilling/milling operation."
-msgstr ""
-
-#: appTools/ToolDrilling.py:2098
-msgid "Search DB"
-msgstr ""
-
-#: appTools/ToolDrilling.py:2101
-msgid ""
-"Will search and try to replace the tools from Tools Table\n"
-"with tools from DB that have a close diameter value."
-msgstr ""
-
-#: appTools/ToolDrilling.py:2500 appTools/ToolMilling.py:2168
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Excellon Objects."
-msgstr ""
-
-#: appTools/ToolDrilling.py:2632 appTools/ToolMilling.py:2307
-msgid ""
-"Generate the CNC Job.\n"
-"If milling then an additional Geometry object will be created.\n"
-"Add / Select at least one tool in the tool-table.\n"
-"Click the # header to select all, or Ctrl + LMB\n"
-"for custom selection of tools."
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:293 appTools/ToolInvertGerber.py:217
-msgid "Gerber object that will be inverted."
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:304
-msgid "Utilities"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:305
-msgid "Conversion utilities"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:310
-msgid "Oz to Microns"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:312
-msgid ""
-"Will convert from oz thickness to microns [um].\n"
-"Can use formulas with operators: /, *, +, -, %, .\n"
-"The real numbers use the dot decimals separator."
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:321
-msgid "Oz value"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:323 appTools/ToolEtchCompensation.py:344
-msgid "Microns value"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:331
-msgid "Mils to Microns"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:333
-msgid ""
-"Will convert from mils to microns [um].\n"
-"Can use formulas with operators: /, *, +, -, %, .\n"
-"The real numbers use the dot decimals separator."
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:342
-msgid "Mils value"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:357 appTools/ToolInvertGerber.py:229
-msgid "Parameters for this tool"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:362
-msgid "Copper Thickness"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:364
-msgid ""
-"The thickness of the copper foil.\n"
-"In microns [um]."
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:375
-msgid "Ratio"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:377
-msgid ""
-"The ratio of lateral etch versus depth etch.\n"
-"Can be:\n"
-"- custom -> the user will enter a custom value\n"
-"- preselection -> value which depends on a selection of etchants"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:383
-msgid "Etch Factor"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:384
-msgid "Etchants list"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:385
-msgid "Manual offset"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:392 appTools/ToolEtchCompensation.py:397
-msgid "Etchants"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:394
-msgid "A list of etchants."
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:398
-msgid "Alkaline baths"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:404
-msgid "Etch factor"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:406
-msgid ""
-"The ratio between depth etch and lateral etch .\n"
-"Accepts real numbers and formulas using the operators: /,*,+,-,%"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:410
-msgid "Real number or formula"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:411
-msgid "Etch_factor"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:419
-msgid ""
-"Value with which to increase or decrease (buffer)\n"
-"the copper features. In microns [um]."
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:443
-msgid "Compensate"
-msgstr ""
-
-#: appTools/ToolEtchCompensation.py:445
-msgid ""
-"Will increase the copper features thickness to compensate the lateral etch."
-msgstr ""
-
-#: appTools/ToolExtractDrills.py:189 appTools/ToolExtractDrills.py:279
-#: appTools/ToolExtractDrills.py:369
-msgid "No drills extracted. Try different parameters."
-msgstr ""
-
-#: appTools/ToolExtractDrills.py:420 appTools/ToolExtractDrills.py:687
-msgid "Extract Drills"
-msgstr ""
-
-#: appTools/ToolExtractDrills.py:454
-msgid "Gerber from which to extract drill holes"
-msgstr ""
-
-#: appTools/ToolExtractDrills.py:689
-msgid "Extract drills from a given Gerber file."
-msgstr ""
-
-#: appTools/ToolFiducials.py:237
-msgid "Click to add first Fiducial. Bottom Left..."
-msgstr ""
-
-#: appTools/ToolFiducials.py:501
-msgid "Click to add the last fiducial. Top Right..."
-msgstr ""
-
-#: appTools/ToolFiducials.py:506
-msgid "Click to add the second fiducial. Top Left or Bottom Right..."
-msgstr ""
-
-#: appTools/ToolFiducials.py:509 appTools/ToolFiducials.py:518
-msgid "Done. All fiducials have been added."
-msgstr ""
-
-#: appTools/ToolFiducials.py:595
-msgid "Fiducials Tool exit."
-msgstr ""
-
-#: appTools/ToolFiducials.py:667
-msgid "Fiducials Coordinates"
-msgstr ""
-
-#: appTools/ToolFiducials.py:669
-msgid ""
-"A table with the fiducial points coordinates,\n"
-"in the format (x, y)."
-msgstr ""
-
-#: appTools/ToolFiducials.py:805
-msgid ""
-"- 'Auto' - automatic placement of fiducials in the corners of the bounding "
-"box.\n"
-" - 'Manual' - manual placement of fiducials."
-msgstr ""
-
-#: appTools/ToolFiducials.py:851
-msgid "Thickness of the line that makes the fiducial."
-msgstr ""
-
-#: appTools/ToolFiducials.py:882
-msgid "Add Fiducial"
-msgstr ""
-
-#: appTools/ToolFiducials.py:884
-msgid "Will add a polygon on the copper layer to serve as fiducial."
-msgstr ""
-
-#: appTools/ToolFiducials.py:900
-msgid "Soldermask Gerber"
-msgstr ""
-
-#: appTools/ToolFiducials.py:902
-msgid "The Soldermask Gerber object."
-msgstr ""
-
-#: appTools/ToolFiducials.py:914
-msgid "Add Soldermask Opening"
-msgstr ""
-
-#: appTools/ToolFiducials.py:916
-msgid ""
-"Will add a polygon on the soldermask layer\n"
-"to serve as fiducial opening.\n"
-"The diameter is always double of the diameter\n"
-"for the copper fiducial."
-msgstr ""
-
-#: appTools/ToolFilm.py:158
-msgid "No FlatCAM object selected. Load an object for Film and retry."
-msgstr ""
-
-#: appTools/ToolFilm.py:165
-msgid "No FlatCAM object selected. Load an object for Box and retry."
-msgstr ""
-
-#: appTools/ToolFilm.py:169
-msgid "No FlatCAM object selected."
-msgstr ""
-
-#: appTools/ToolFilm.py:180
-msgid "Generating Film ..."
-msgstr ""
-
-#: appTools/ToolFilm.py:229 appTools/ToolFilm.py:233
-msgid "Export positive film"
-msgstr ""
-
-#: appTools/ToolFilm.py:266
-msgid ""
-"No Excellon object selected. Load an object for punching reference and retry."
-msgstr ""
-
-#: appTools/ToolFilm.py:290
-msgid ""
-" Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-
-#: appTools/ToolFilm.py:302
-msgid ""
-"Could not generate punched hole film because the punch hole sizeis bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-
-#: appTools/ToolFilm.py:320
-msgid ""
-"Could not generate punched hole film because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-
-#: appTools/ToolFilm.py:375 appTools/ToolFilm.py:379
-msgid "Export negative film"
-msgstr ""
-
-#: appTools/ToolFilm.py:438 appTools/ToolFilm.py:690
-#: appTools/ToolPanelize.py:209
-msgid "No object Box. Using instead"
-msgstr ""
-
-#: appTools/ToolFilm.py:627 appTools/ToolFilm.py:875
-msgid "Film file exported to"
-msgstr ""
-
-#: appTools/ToolFilm.py:901
-msgid "Film PCB"
-msgstr ""
-
-#: appTools/ToolFilm.py:933
-msgid ""
-"Specify the type of object for which to create the film.\n"
-"The object can be of type: Gerber or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Film Object combobox."
-msgstr ""
-
-#: appTools/ToolFilm.py:956
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"film creation. It can be: Gerber or Geometry type.The selection here decide "
-"the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-
-#: appTools/ToolFilm.py:1123
-msgid "Film Parameters"
-msgstr ""
-
-#: appTools/ToolFilm.py:1182
-msgid "Punch drill holes"
-msgstr ""
-
-#: appTools/ToolFilm.py:1183
-msgid ""
-"When checked the generated film will have holes in pads when\n"
-"the generated film is positive. This is done to help drilling,\n"
-"when done manually."
-msgstr ""
-
-#: appTools/ToolFilm.py:1201
-msgid "Source"
-msgstr ""
-
-#: appTools/ToolFilm.py:1203
-msgid ""
-"The punch hole source can be:\n"
-"- Excellon -> an Excellon holes center will serve as reference.\n"
-"- Pad Center -> will try to use the pads center as reference."
-msgstr ""
-
-#: appTools/ToolFilm.py:1208
-msgid "Pad center"
-msgstr ""
-
-#: appTools/ToolFilm.py:1213
-msgid "Excellon Obj"
-msgstr ""
-
-#: appTools/ToolFilm.py:1215
-msgid ""
-"Remove the geometry of Excellon from the Film to create the holes in pads."
-msgstr ""
-
-#: appTools/ToolFilm.py:1229
-msgid "Punch Size"
-msgstr ""
-
-#: appTools/ToolFilm.py:1230
-msgid "The value here will control how big is the punch hole in the pads."
-msgstr ""
-
-#: appTools/ToolFilm.py:1364
-msgid "Save Film"
-msgstr ""
-
-#: appTools/ToolFilm.py:1367
-msgid ""
-"Create a Film for the selected object, within\n"
-"the specified box. Does not create a new \n"
-" FlatCAM object, but directly save it in the\n"
-"selected format."
-msgstr ""
-
-#: appTools/ToolFilm.py:1449
-msgid ""
-"Using the Pad center does not work on Geometry objects. Only a Gerber object "
-"has pads."
-msgstr ""
-
-#: appTools/ToolImage.py:65
-msgid "Image Tool"
-msgstr ""
-
-#: appTools/ToolImage.py:95 appTools/ToolImage.py:98
-msgid "Import IMAGE"
-msgstr ""
-
-#: appTools/ToolImage.py:142 app_Main.py:8887 app_Main.py:8937
-msgid ""
-"Not supported type is picked as parameter. Only Geometry and Gerber are "
-"supported"
-msgstr ""
-
-#: appTools/ToolImage.py:150
-msgid "Importing Image"
-msgstr ""
-
-#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:8915
-#: app_Main.py:8970 app_Main.py:9034 app_Main.py:9097 app_Main.py:9163
-#: app_Main.py:9228 app_Main.py:9285
-msgid "Opened"
-msgstr ""
-
-#: appTools/ToolImage.py:167
-msgid "Image as Object"
-msgstr ""
-
-#: appTools/ToolImage.py:198
-msgid ""
-"Specify the type of object to create from the image.\n"
-"It can be of type: Gerber or Geometry."
-msgstr ""
-
-#: appTools/ToolImage.py:207
-msgid "DPI value"
-msgstr ""
-
-#: appTools/ToolImage.py:208
-msgid "Specify a DPI value for the image."
-msgstr ""
-
-#: appTools/ToolImage.py:214
-msgid "Level of detail"
-msgstr ""
-
-#: appTools/ToolImage.py:223
-msgid "Image type"
-msgstr ""
-
-#: appTools/ToolImage.py:225
-msgid ""
-"Choose a method for the image interpretation.\n"
-"B/W means a black & white image. Color means a colored image."
-msgstr ""
-
-#: appTools/ToolImage.py:234 appTools/ToolImage.py:249
-#: appTools/ToolImage.py:262 appTools/ToolImage.py:275
-msgid "Mask value"
-msgstr ""
-
-#: appTools/ToolImage.py:236
-msgid ""
-"Mask for monochrome image.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry.\n"
-"0 means no detail and 255 means everything \n"
-"(which is totally black)."
-msgstr ""
-
-#: appTools/ToolImage.py:251
-msgid ""
-"Mask for RED color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-
-#: appTools/ToolImage.py:264
-msgid ""
-"Mask for GREEN color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-
-#: appTools/ToolImage.py:277
-msgid ""
-"Mask for BLUE color.\n"
-"Takes values between [0 ... 255].\n"
-"Decides the level of details to include\n"
-"in the resulting geometry."
-msgstr ""
-
-#: appTools/ToolImage.py:285
-msgid "Import image"
-msgstr ""
-
-#: appTools/ToolImage.py:287
-msgid "Open a image of raster type and then import it in FlatCAM."
-msgstr ""
-
-#: appTools/ToolInvertGerber.py:75
-msgid "Invert Tool"
-msgstr ""
-
-#: appTools/ToolInvertGerber.py:269
-msgid "Invert Gerber"
-msgstr ""
-
-#: appTools/ToolInvertGerber.py:271
-msgid ""
-"Will invert the Gerber object: areas that have copper\n"
-"will be empty of copper and previous empty area will be\n"
-"filled with copper."
-msgstr ""
-
-#: appTools/ToolIsolation.py:782 appTools/ToolNCC.py:449
-#: appTools/ToolPaint.py:386 appTools/ToolSolderPaste.py:122
-msgid "New Tool"
-msgstr ""
-
-#: appTools/ToolIsolation.py:795 appTools/ToolNCC.py:462
-#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4494
-msgid "Adding Tool cancelled"
-msgstr ""
-
-#: appTools/ToolIsolation.py:941 appTools/ToolNCC.py:865
-#: appTools/ToolOptimal.py:179
-msgid ""
-"The Gerber object has one Polygon as geometry.\n"
-"There are no distances between geometry elements to be found."
-msgstr ""
-
-#: appTools/ToolIsolation.py:988 appTools/ToolNCC.py:908
-#, fuzzy
-#| msgid "tooldia = tool diameter"
-msgid "Optimal tool diameter found"
-msgstr "tooldia = tool diameter"
-
-#: appTools/ToolIsolation.py:1000 appTools/ToolIsolation.py:1508
-#: appTools/ToolIsolation.py:1710 appTools/ToolIsolation.py:1897
-#: appTools/ToolNCC.py:1296 appTools/ToolPaint.py:1031
-#: appTools/ToolPaint.py:1744
-#, fuzzy
-#| msgid "The new tool diameter (cut width) to add in the tool table."
-msgid "There are no tools selected in the Tool Table."
-msgstr "The new tool diameter (cut width) to add in the tool table."
-
-#: appTools/ToolIsolation.py:1008
-msgid ""
-"Incomplete isolation. At least one tool could not do a complete isolation."
-msgstr ""
-
-#: appTools/ToolIsolation.py:1057 appTools/ToolIsolation.py:1144
-#: appTools/ToolIsolation.py:1206 appTools/ToolIsolation.py:2626
-#: appTools/ToolNCC.py:955 appTools/ToolNCC.py:1043 appTools/ToolNCC.py:1105
-#: appTools/ToolNCC.py:3651 appTools/ToolPaint.py:694 appTools/ToolPaint.py:782
-#: appTools/ToolPaint.py:844 appTools/ToolPaint.py:2676
-#: appTools/ToolSolderPaste.py:488
-msgid "Cancelled. Tool already in Tool Table."
-msgstr ""
-
-#: appTools/ToolIsolation.py:1172 appTools/ToolNCC.py:1071
-#: appTools/ToolPaint.py:810
-msgid "New tool added to Tool Table from Tools Database."
-msgstr ""
-
-#: appTools/ToolIsolation.py:1236 appTools/ToolNCC.py:1135
-#: appTools/ToolPaint.py:873
-#, fuzzy
-#| msgid "Default Tool added. Wrong value format entered."
-msgid "Default tool added to Tool Table."
-msgstr "Default Tool added. Wrong value format entered."
-
-#: appTools/ToolIsolation.py:1262 appTools/ToolNCC.py:1161
-#: appTools/ToolPaint.py:898
-msgid "Tool from Tool Table was edited."
-msgstr ""
-
-#: appTools/ToolIsolation.py:1275 appTools/ToolNCC.py:1174
-#: appTools/ToolPaint.py:911 appTools/ToolSolderPaste.py:548
-msgid "Cancelled. New diameter value is already in the Tool Table."
-msgstr ""
-
-#: appTools/ToolIsolation.py:1326 appTools/ToolNCC.py:1225
-#: appTools/ToolPaint.py:961
-msgid "Delete failed. Select a tool to delete."
-msgstr ""
-
-#: appTools/ToolIsolation.py:1332 appTools/ToolNCC.py:1231
-#: appTools/ToolPaint.py:967
-msgid "Tool(s) deleted from Tool Table."
-msgstr ""
-
-#: appTools/ToolIsolation.py:1383
-msgid "Isolating..."
-msgstr ""
-
-#: appTools/ToolIsolation.py:1403
-msgid "Following geometry was generated"
-msgstr ""
-
-#: appTools/ToolIsolation.py:1418
-msgid "Failed to create Follow Geometry with tool diameter"
-msgstr ""
-
-#: appTools/ToolIsolation.py:1421
-msgid "Follow Geometry was created with tool diameter"
-msgstr ""
-
-#: appTools/ToolIsolation.py:1462
-msgid "Click on a polygon to isolate it."
-msgstr ""
-
-#: appTools/ToolIsolation.py:1590 appTools/ToolIsolation.py:1613
-#: appTools/ToolIsolation.py:1770 appTools/ToolIsolation.py:1963
-msgid "Subtracting Geo"
-msgstr ""
-
-#: appTools/ToolIsolation.py:1594 appTools/ToolIsolation.py:1774
-#: appTools/ToolIsolation.py:1967
-msgid "Intersecting Geo"
-msgstr ""
-
-#: appTools/ToolIsolation.py:1646 appTools/ToolIsolation.py:1843
-#: appTools/ToolIsolation.py:2032
-msgid "Empty Geometry in"
-msgstr ""
-
-#: appTools/ToolIsolation.py:1852
-msgid ""
-"Partial failure. The geometry was processed with all tools.\n"
-"But there are still not-isolated geometry elements. Try to include a tool "
-"with smaller diameter."
-msgstr ""
-
-#: appTools/ToolIsolation.py:1855
-msgid ""
-"The following are coordinates for the copper features that could not be "
-"isolated:"
-msgstr ""
-
-#: appTools/ToolIsolation.py:2196 appTools/ToolIsolation.py:2309
-#: appTools/ToolPaint.py:1126
-msgid "Added polygon"
-msgstr ""
-
-#: appTools/ToolIsolation.py:2197 appTools/ToolIsolation.py:2311
-msgid "Click to add next polygon or right click to start isolation."
-msgstr ""
-
-#: appTools/ToolIsolation.py:2209 appTools/ToolPaint.py:1140
-msgid "Removed polygon"
-msgstr ""
-
-#: appTools/ToolIsolation.py:2210
-msgid "Click to add/remove next polygon or right click to start isolation."
-msgstr ""
-
-#: appTools/ToolIsolation.py:2215 appTools/ToolPaint.py:1146
-msgid "No polygon detected under click position."
-msgstr ""
-
-#: appTools/ToolIsolation.py:2245 appTools/ToolPaint.py:1176
-msgid "List of single polygons is empty. Aborting."
-msgstr ""
-
-#: appTools/ToolIsolation.py:2314
-msgid "No polygon in selection."
-msgstr ""
-
-#: appTools/ToolIsolation.py:2342
-msgid "Click the end point of the paint area."
-msgstr ""
-
-#: appTools/ToolIsolation.py:2590 appTools/ToolNCC.py:3615
-#: appTools/ToolPaint.py:2633 app_Main.py:5773 app_Main.py:5783
-msgid "Tool from DB added in Tool Table."
-msgstr ""
-
-#: appTools/ToolIsolation.py:2644 appTools/ToolNCC.py:3668
-#: appTools/ToolPaint.py:2693
-msgid "New tool added to Tool Table."
-msgstr ""
-
-#: appTools/ToolIsolation.py:2988
-msgid "Gerber object for isolation routing."
-msgstr ""
-
-#: appTools/ToolIsolation.py:3012 appTools/ToolNCC.py:3768
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for copper clearing."
-msgstr ""
-
-#: appTools/ToolIsolation.py:3028
-msgid ""
-"This is the Tool Number.\n"
-"Isolation routing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more tools.\n"
-"Only tools that create Isolation geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create routing geometry."
-msgstr ""
-
-#: appTools/ToolIsolation.py:3036 appTools/ToolNCC.py:3792
-msgid ""
-"Tool Diameter. It's value (in current FlatCAM units)\n"
-"is the cut width into the material."
-msgstr ""
-
-#: appTools/ToolIsolation.py:3040 appTools/ToolNCC.py:3796
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular with 1 ... 4 teeth -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-
-#: appTools/ToolIsolation.py:3108 appTools/ToolNCC.py:3876
-msgid "Optimal"
-msgstr ""
-
-#: appTools/ToolIsolation.py:3112 appTools/ToolNCC.py:3880
-msgid ""
-"Find a tool diameter that is guaranteed\n"
-"to do a complete isolation."
-msgstr ""
-
-#: appTools/ToolIsolation.py:3153 appTools/ToolNCC.py:3920
-#: appTools/ToolPaint.py:2929 appTools/ToolSolderPaste.py:1211
-msgid ""
-"Delete a selection of tools in the Tool Table\n"
-"by first selecting a row(s) in the Tool Table."
-msgstr ""
-
-#: appTools/ToolIsolation.py:3341
-msgid ""
-"Specify the type of object to be excepted from isolation.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-
-#: appTools/ToolIsolation.py:3351
-msgid "Object whose area will be removed from isolation geometry."
-msgstr ""
-
-#: appTools/ToolIsolation.py:3387 appTools/ToolNCC.py:4212
-msgid ""
-"The type of FlatCAM object to be used as non copper clearing reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-
-#: appTools/ToolIsolation.py:3453
-msgid ""
-"Create a Geometry object with toolpaths to cut \n"
-"isolation outside, inside or on both sides of the\n"
-"object. For a Gerber object outside means outside\n"
-"of the Gerber feature and inside means inside of\n"
-"the Gerber feature, if possible at all. This means\n"
-"that only if the Gerber feature has openings inside, they\n"
-"will be isolated. If what is wanted is to cut isolation\n"
-"inside the actual Gerber feature, use a negative tool\n"
-"diameter above."
-msgstr ""
-
-#: appTools/ToolMilling.py:1064
-msgid "Generating drills milling geometry..."
-msgstr ""
-
-#: appTools/ToolMilling.py:1169
-msgid "Generating slot milling geometry..."
-msgstr ""
-
-#: appTools/ToolMilling.py:1584
-msgid "Milling Holes Tool"
-msgstr ""
-
-#: appTools/ToolMilling.py:2166
-msgid "Preprocessor E"
-msgstr ""
-
-#: appTools/ToolMilling.py:2178
-msgid "Preprocessor G"
-msgstr ""
-
-#: appTools/ToolMilling.py:2180
-msgid ""
-"The preprocessor JSON file that dictates\n"
-"Gcode output for Geometry (Milling) Objects."
-msgstr ""
-
-#: appTools/ToolMove.py:102
-msgid "MOVE: Click on the Start point ..."
-msgstr ""
-
-#: appTools/ToolMove.py:113
-msgid "Cancelled. No object(s) to move."
-msgstr ""
-
-#: appTools/ToolMove.py:140
-msgid "MOVE: Click on the Destination point ..."
-msgstr ""
-
-#: appTools/ToolMove.py:163
-msgid "Moving..."
-msgstr ""
-
-#: appTools/ToolMove.py:166
-msgid "No object(s) selected."
-msgstr ""
-
-#: appTools/ToolMove.py:221
-msgid "Error when mouse left click."
-msgstr ""
-
-#: appTools/ToolNCC.py:1675 appTools/ToolNCC.py:2599
-msgid "NCC Tool. Preparing non-copper polygons."
-msgstr ""
-
-#: appTools/ToolNCC.py:1735 appTools/ToolNCC.py:2727
-msgid "NCC Tool. Calculate 'empty' area."
-msgstr ""
-
-#: appTools/ToolNCC.py:1746 appTools/ToolNCC.py:1775 appTools/ToolNCC.py:1881
-#: appTools/ToolNCC.py:1894 appTools/ToolNCC.py:2740 appTools/ToolNCC.py:2845
-#: appTools/ToolNCC.py:2860 appTools/ToolNCC.py:3126 appTools/ToolNCC.py:3227
-#: appTools/ToolNCC.py:3242
-msgid "Buffering finished"
-msgstr ""
-
-#: appTools/ToolNCC.py:1750 appTools/ToolNCC.py:1779 appTools/ToolNCC.py:1885
-#: appTools/ToolNCC.py:1897 appTools/ToolNCC.py:2748 appTools/ToolNCC.py:2867
-#: appTools/ToolNCC.py:3133 appTools/ToolNCC.py:3249
-msgid "Could not get the extent of the area to be non copper cleared."
-msgstr ""
-
-#: appTools/ToolNCC.py:1758 appTools/ToolNCC.py:1908 appTools/ToolNCC.py:2878
-msgid "NCC Tool. Finished calculation of 'empty' area."
-msgstr ""
-
-#: appTools/ToolNCC.py:1811 appTools/ToolNCC.py:2775 appTools/ToolNCC.py:2852
-#: appTools/ToolNCC.py:3153 appTools/ToolNCC.py:3234
-msgid ""
-"Isolation geometry is broken. Margin is less than isolation tool diameter."
-msgstr ""
-
-#: appTools/ToolNCC.py:1901 appTools/ToolNCC.py:2871 appTools/ToolNCC.py:3252
-msgid "The selected object is not suitable for copper clearing."
-msgstr ""
-
-#: appTools/ToolNCC.py:1951
-msgid "Clearing the polygon with the method: lines."
-msgstr ""
-
-#: appTools/ToolNCC.py:1961
-msgid "Failed. Clearing the polygon with the method: seed."
-msgstr ""
-
-#: appTools/ToolNCC.py:1970
-msgid "Failed. Clearing the polygon with the method: standard."
-msgstr ""
-
-#: appTools/ToolNCC.py:1986
-msgid "Polygon could not be cleared. Location:"
-msgstr ""
-
-#: appTools/ToolNCC.py:2018 appTools/ToolNCC.py:2020 appTools/ToolNCC.py:2548
-#: appTools/ToolNCC.py:2550
-msgid "Non-Copper clearing ..."
-msgstr ""
-
-#: appTools/ToolNCC.py:2039
-msgid ""
-"There is no copper clearing tool in the selection and at least one is needed."
-msgstr ""
-
-#: appTools/ToolNCC.py:2054 appTools/ToolNCC.py:2695
-msgid ""
-"NCC Tool. Finished non-copper polygons. Normal copper clearing task started."
-msgstr ""
-
-#: appTools/ToolNCC.py:2082 appTools/ToolNCC.py:2316
-msgid "NCC Tool failed creating bounding box."
-msgstr ""
-
-#: appTools/ToolNCC.py:2102 appTools/ToolNCC.py:2352 appTools/ToolNCC.py:2891
-#: appTools/ToolNCC.py:3277
-msgid "NCC Tool clearing with tool diameter"
-msgstr ""
-
-#: appTools/ToolNCC.py:2102 appTools/ToolNCC.py:2352 appTools/ToolNCC.py:2891
-#: appTools/ToolNCC.py:3277
-msgid "started."
-msgstr ""
-
-#: appTools/ToolNCC.py:2230
-msgid "Could not use the tool for copper clear."
-msgstr ""
-
-#: appTools/ToolNCC.py:2252 appTools/ToolNCC.py:3052
-msgid ""
-"There is no NCC Geometry in the file.\n"
-"Usually it means that the tool diameter is too big for the painted "
-"geometry.\n"
-"Change the painting parameters and try again."
-msgstr ""
-
-#: appTools/ToolNCC.py:2262 appTools/ToolNCC.py:3061
-msgid "NCC Tool clear all done."
-msgstr ""
-
-#: appTools/ToolNCC.py:2265 appTools/ToolNCC.py:3064
-msgid "NCC Tool clear all done but the copper features isolation is broken for"
-msgstr ""
-
-#: appTools/ToolNCC.py:2267 appTools/ToolNCC.py:2463 appTools/ToolNCC.py:3066
-#: appTools/ToolNCC.py:3449
-msgid "tools"
-msgstr ""
-
-#: appTools/ToolNCC.py:2294
-#, fuzzy
-#| msgid "Paint Tool. Rest machining painting area task started."
-msgid "NCC Tool. Rest machining copper clearing task started."
-msgstr "Paint Tool. Rest machining painting area task started."
-
-#: appTools/ToolNCC.py:2459 appTools/ToolNCC.py:3445
-msgid "NCC Tool Rest Machining clear all done."
-msgstr ""
-
-#: appTools/ToolNCC.py:2462 appTools/ToolNCC.py:3448
-msgid ""
-"NCC Tool Rest Machining clear all done but the copper features isolation is "
-"broken for"
-msgstr ""
-
-#: appTools/ToolNCC.py:2560
-msgid "NCC Tool started. Reading parameters."
-msgstr ""
-
-#: appTools/ToolNCC.py:3547
-msgid ""
-"Try to use the Buffering Type = Full in Preferences -> Gerber General. "
-"Reload the Gerber file after this change."
-msgstr ""
-
-#: appTools/ToolNCC.py:3703
-msgid "Non-Copper Clearing"
-msgstr ""
-
-#: appTools/ToolNCC.py:3732 appTools/ToolPaint.py:2765
-msgid "Obj Type"
-msgstr ""
-
-#: appTools/ToolNCC.py:3734
-msgid ""
-"Specify the type of object to be cleared of excess copper.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-
-#: appTools/ToolNCC.py:3756
-msgid "Object to be cleared of excess copper."
-msgstr ""
-
-#: appTools/ToolNCC.py:3784
-msgid ""
-"This is the Tool Number.\n"
-"Non copper clearing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more tools.\n"
-"Only tools that create NCC clearing geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-
-#: appTools/ToolOptimal.py:142
-msgid "Only Gerber objects can be evaluated."
-msgstr ""
-
-#: appTools/ToolOptimal.py:148
-msgid ""
-"Optimal Tool. Started to search for the minimum distance between copper "
-"features."
-msgstr ""
-
-#: appTools/ToolOptimal.py:158
-msgid "Optimal Tool. Parsing geometry for aperture"
-msgstr ""
-
-#: appTools/ToolOptimal.py:169
-msgid "Optimal Tool. Creating a buffer for the object geometry."
-msgstr ""
-
-#: appTools/ToolOptimal.py:184
-msgid ""
-"Optimal Tool. Finding the distances between each two elements. Iterations"
-msgstr ""
-
-#: appTools/ToolOptimal.py:218
-msgid "Optimal Tool. Finding the minimum distance."
-msgstr ""
-
-#: appTools/ToolOptimal.py:234
-msgid "Optimal Tool. Finished successfully."
-msgstr ""
-
-#: appTools/ToolOptimal.py:435
-msgid "Number of decimals kept for found distances."
-msgstr ""
-
-#: appTools/ToolOptimal.py:443
-msgid "Minimum distance"
-msgstr ""
-
-#: appTools/ToolOptimal.py:444
-msgid "Display minimum distance between copper features."
-msgstr ""
-
-#: appTools/ToolOptimal.py:448
-msgid "Determined"
-msgstr ""
-
-#: appTools/ToolOptimal.py:462
-msgid "Occurring"
-msgstr ""
-
-#: appTools/ToolOptimal.py:463
-msgid "How many times this minimum is found."
-msgstr ""
-
-#: appTools/ToolOptimal.py:469
-msgid "Minimum points coordinates"
-msgstr ""
-
-#: appTools/ToolOptimal.py:470 appTools/ToolOptimal.py:476
-msgid "Coordinates for points where minimum distance was found."
-msgstr ""
-
-#: appTools/ToolOptimal.py:489 appTools/ToolOptimal.py:565
-msgid "Jump to selected position"
-msgstr ""
-
-#: appTools/ToolOptimal.py:491 appTools/ToolOptimal.py:567
-msgid ""
-"Select a position in the Locations text box and then\n"
-"click this button."
-msgstr ""
-
-#: appTools/ToolOptimal.py:499
-msgid "Other distances"
-msgstr ""
-
-#: appTools/ToolOptimal.py:500
-msgid ""
-"Will display other distances in the Gerber file ordered from\n"
-"the minimum to the maximum, not including the absolute minimum."
-msgstr ""
-
-#: appTools/ToolOptimal.py:505
-msgid "Other distances points coordinates"
-msgstr ""
-
-#: appTools/ToolOptimal.py:506 appTools/ToolOptimal.py:520
-#: appTools/ToolOptimal.py:527 appTools/ToolOptimal.py:544
-#: appTools/ToolOptimal.py:551
-msgid ""
-"Other distances and the coordinates for points\n"
-"where the distance was found."
-msgstr ""
-
-#: appTools/ToolOptimal.py:519
-msgid "Gerber distances"
-msgstr ""
-
-#: appTools/ToolOptimal.py:543
-msgid "Points coordinates"
-msgstr ""
-
-#: appTools/ToolOptimal.py:575
-msgid "Find Minimum"
-msgstr ""
-
-#: appTools/ToolOptimal.py:577
-msgid ""
-"Calculate the minimum distance between copper features,\n"
-"this will allow the determination of the right tool to\n"
-"use for isolation or copper clearing."
-msgstr ""
-
-#: appTools/ToolPDF.py:91 appTools/ToolPDF.py:95
-msgid "Open PDF"
-msgstr ""
-
-#: appTools/ToolPDF.py:98
-msgid "Open PDF cancelled"
-msgstr ""
-
-#: appTools/ToolPDF.py:122
-msgid "Parsing PDF file ..."
-msgstr ""
-
-#: appTools/ToolPDF.py:138 app_Main.py:9128
-msgid "Failed to open"
-msgstr ""
-
-#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9077
-msgid "No geometry found in file"
-msgstr ""
-
-#: appTools/ToolPDF.py:206 appTools/ToolPDF.py:279
-#, python-format
-msgid "Rendering PDF layer #%d ..."
-msgstr ""
-
-#: appTools/ToolPDF.py:210 appTools/ToolPDF.py:283
-msgid "Open PDF file failed."
-msgstr ""
-
-#: appTools/ToolPDF.py:215 appTools/ToolPDF.py:288
-msgid "Rendered"
-msgstr ""
-
-#: appTools/ToolPaint.py:999
-#, python-format
-msgid "Could not retrieve object: %s"
-msgstr ""
-
-#: appTools/ToolPaint.py:1009
-msgid "Can't do Paint on MultiGeo geometries"
-msgstr ""
-
-#: appTools/ToolPaint.py:1046
-msgid "Click on a polygon to paint it."
-msgstr ""
-
-#: appTools/ToolPaint.py:1062
-msgid "Click the start point of the paint area."
-msgstr ""
-
-#: appTools/ToolPaint.py:1128
-msgid "Click to add next polygon or right click to start painting."
-msgstr ""
-
-#: appTools/ToolPaint.py:1141
-msgid "Click to add/remove next polygon or right click to start painting."
-msgstr ""
-
-#: appTools/ToolPaint.py:1651
-msgid "Painting polygon with method: lines."
-msgstr ""
-
-#: appTools/ToolPaint.py:1663
-msgid "Failed. Painting polygon with method: seed."
-msgstr ""
-
-#: appTools/ToolPaint.py:1674
-msgid "Failed. Painting polygon with method: standard."
-msgstr ""
-
-#: appTools/ToolPaint.py:1690
-msgid "Geometry could not be painted completely"
-msgstr ""
-
-#: appTools/ToolPaint.py:1764 appTools/ToolPaint.py:1951
-msgid "Painting with tool diameter = "
-msgstr ""
-
-#: appTools/ToolPaint.py:1767 appTools/ToolPaint.py:1954
-msgid "started"
-msgstr ""
-
-#: appTools/ToolPaint.py:1793 appTools/ToolPaint.py:1941
-msgid "Margin parameter too big. Tool is not used"
-msgstr ""
-
-#: appTools/ToolPaint.py:1853 appTools/ToolPaint.py:2062
-msgid ""
-"Could not do Paint. Try a different combination of parameters. Or a "
-"different strategy of paint"
-msgstr ""
-
-#: appTools/ToolPaint.py:1908 appTools/ToolPaint.py:2133
-msgid ""
-"There is no Painting Geometry in the file.\n"
-"Usually it means that the tool diameter is too big for the painted "
-"geometry.\n"
-"Change the painting parameters and try again."
-msgstr ""
-
-#: appTools/ToolPaint.py:2176
-#, fuzzy
-#| msgid "Paint Area"
-msgid "Paint failed."
-msgstr "Paint Area"
-
-#: appTools/ToolPaint.py:2182
-#, fuzzy
-#| msgid "Paint Area"
-msgid "Paint Done."
-msgstr "Paint Area"
-
-#: appTools/ToolPaint.py:2187
-#, fuzzy
-#| msgid "Paint Plotting"
-msgid "Painting..."
-msgstr "Paint Plotting"
-
-#: appTools/ToolPaint.py:2221 appTools/ToolPaint.py:2226
-#: appTools/ToolPaint.py:2234 appTools/ToolPaint.py:2321
-#: appTools/ToolPaint.py:2324 appTools/ToolPaint.py:2332
-#: appTools/ToolPaint.py:2402 appTools/ToolPaint.py:2407
-#: appTools/ToolPaint.py:2413
-msgid "Paint Tool."
-msgstr ""
-
-#: appTools/ToolPaint.py:2222 appTools/ToolPaint.py:2226
-#: appTools/ToolPaint.py:2234
-msgid "Normal painting polygon task started."
-msgstr ""
-
-#: appTools/ToolPaint.py:2223 appTools/ToolPaint.py:2321
-#: appTools/ToolPaint.py:2404
-msgid "Buffering geometry..."
-msgstr ""
-
-#: appTools/ToolPaint.py:2246 appTools/ToolPaint.py:2339
-#: appTools/ToolPaint.py:2421
-msgid "No polygon found."
-msgstr ""
-
-#: appTools/ToolPaint.py:2321 appTools/ToolPaint.py:2324
-#: appTools/ToolPaint.py:2332
-msgid "Paint all polygons task started."
-msgstr ""
-
-#: appTools/ToolPaint.py:2403 appTools/ToolPaint.py:2407
-#: appTools/ToolPaint.py:2413
-msgid "Painting area task started."
-msgstr ""
-
-#: appTools/ToolPaint.py:2767
-msgid ""
-"Specify the type of object to be painted.\n"
-"It can be of type: Gerber or Geometry.\n"
-"What is selected here will dictate the kind\n"
-"of objects that will populate the 'Object' combobox."
-msgstr ""
-
-#: appTools/ToolPaint.py:2789
-msgid "Object to be painted."
-msgstr ""
-
-#: appTools/ToolPaint.py:2802
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for painting."
-msgstr ""
-
-#: appTools/ToolPaint.py:2819
-msgid ""
-"This is the Tool Number.\n"
-"Painting will start with the tool with the biggest diameter,\n"
-"continuing until there are no more tools.\n"
-"Only tools that create painting geometry will still be present\n"
-"in the resulting geometry. This is because with some tools\n"
-"this function will not be able to create painting geometry."
-msgstr ""
-
-#: appTools/ToolPaint.py:2831
-msgid ""
-"The Tool Type (TT) can be:\n"
-"- Circular -> it is informative only. Being circular,\n"
-"the cut width in material is exactly the tool diameter.\n"
-"- Ball -> informative only and make reference to the Ball type endmill.\n"
-"- V-Shape -> it will disable Z-Cut parameter in the resulting geometry UI "
-"form\n"
-"and enable two additional UI form fields in the resulting geometry: V-Tip "
-"Dia and\n"
-"V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-"such\n"
-"as the cut width into material will be equal with the value in the Tool "
-"Diameter\n"
-"column of this table.\n"
-"Choosing the 'V-Shape' Tool Type automatically will select the Operation "
-"Type\n"
-"in the resulting geometry as Isolation."
-msgstr ""
-
-#: appTools/ToolPaint.py:3139
-msgid ""
-"The type of FlatCAM object to be used as paint reference.\n"
-"It can be Gerber, Excellon or Geometry."
-msgstr ""
-
-#: appTools/ToolPaint.py:3181
-msgid "Create a Geometry Object which paints the polygons."
-msgstr ""
-
-#: appTools/ToolPanelize.py:89
-msgid "Panel. Tool"
-msgstr ""
-
-#: appTools/ToolPanelize.py:236
-msgid "Columns or Rows are zero value. Change them to a positive integer."
-msgstr ""
-
-#: appTools/ToolPanelize.py:275
-msgid "Generating panel ... "
-msgstr ""
-
-#: appTools/ToolPanelize.py:362 appTools/ToolPanelize.py:584
-#, fuzzy
-#| msgid "Generating panel ... Please wait."
-msgid "Generating panel ... Adding the source code."
-msgstr "Generating panel ... Please wait."
-
-#: appTools/ToolPanelize.py:550
-msgid "Optimizing the overlapping paths."
-msgstr ""
-
-#: appTools/ToolPanelize.py:582
-#, fuzzy
-#| msgid "Optimization Time"
-msgid "Optimization complete."
-msgstr "Optimization Time"
-
-#: appTools/ToolPanelize.py:596
-msgid "Generating panel... Spawning copies"
-msgstr ""
-
-#: appTools/ToolPanelize.py:605
-msgid "Panel done..."
-msgstr ""
-
-#: appTools/ToolPanelize.py:608
-#, python-brace-format
-msgid ""
-"{text} Too big for the constrain area. Final panel has {col} columns and "
-"{row} rows"
-msgstr ""
-
-#: appTools/ToolPanelize.py:617
-msgid "Panel created successfully."
-msgstr ""
-
-#: appTools/ToolPanelize.py:654
-msgid ""
-"Specify the type of object to be panelized\n"
-"It can be of type: Gerber, Excellon or Geometry.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Object combobox."
-msgstr ""
-
-#: appTools/ToolPanelize.py:687
-msgid ""
-"Object to be panelized. This means that it will\n"
-"be duplicated in an array of rows and columns."
-msgstr ""
-
-#: appTools/ToolPanelize.py:699
-msgid "Penelization Reference"
-msgstr ""
-
-#: appTools/ToolPanelize.py:701
-msgid ""
-"Choose the reference for panelization:\n"
-"- Object = the bounding box of a different object\n"
-"- Bounding Box = the bounding box of the object to be panelized\n"
-"\n"
-"The reference is useful when doing panelization for more than one\n"
-"object. The spacings (really offsets) will be applied in reference\n"
-"to this reference object therefore maintaining the panelized\n"
-"objects in sync."
-msgstr ""
-
-#: appTools/ToolPanelize.py:722
-msgid "Box Type"
-msgstr ""
-
-#: appTools/ToolPanelize.py:724
-msgid ""
-"Specify the type of object to be used as an container for\n"
-"panelization. It can be: Gerber or Geometry type.\n"
-"The selection here decide the type of objects that will be\n"
-"in the Box Object combobox."
-msgstr ""
-
-#: appTools/ToolPanelize.py:738
-msgid ""
-"The actual object that is used as container for the\n"
-" selected object that is to be panelized."
-msgstr ""
-
-#: appTools/ToolPanelize.py:748
-msgid "Panel Data"
-msgstr ""
-
-#: appTools/ToolPanelize.py:750
-msgid ""
-"This informations will shape the resulting panel.\n"
-"The number of rows and columns will set how many\n"
-"duplicates of the original geometry will be generated.\n"
-"\n"
-"The spacings will set the distance between any two\n"
-"elements of the panel array."
-msgstr ""
-
-#: appTools/ToolPanelize.py:813
-msgid ""
-"Choose the type of object for the panel object:\n"
-"- Geometry\n"
-"- Gerber"
-msgstr ""
-
-#: appTools/ToolPanelize.py:831
-msgid "Constrain panel within"
-msgstr ""
-
-#: appTools/ToolPanelize.py:872
-msgid "Panelize Object"
-msgstr ""
-
-#: appTools/ToolPanelize.py:874 appTools/ToolRulesCheck.py:1603
-msgid ""
-"Panelize the specified object around the specified box.\n"
-"In other words it creates multiple copies of the source object,\n"
-"arranged in a 2D array of rows and columns."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:93
-msgid "PCBWizard Tool"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:179 appTools/ToolPcbWizard.py:183
-msgid "Load PcbWizard Excellon file"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:202 appTools/ToolPcbWizard.py:206
-msgid "Load PcbWizard INF file"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:254
-msgid ""
-"The INF file does not contain the tool table.\n"
-"Try to open the Excellon file from File -> Open -> Excellon\n"
-"and edit the drill diameters manually."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:274
-msgid "PcbWizard .INF file loaded."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:278
-msgid "Main PcbWizard Excellon file loaded."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:310 app_Main.py:9057
-msgid "This is not Excellon file."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:313
-msgid "Cannot parse file"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:336
-msgid "Importing Excellon."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:343
-msgid "Import Excellon file failed."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:350
-msgid "Imported"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:353
-msgid "Excellon merging is in progress. Please wait..."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:355
-msgid "The imported Excellon file is empty."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:360
-msgid "PcbWizard Import Tool"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:379
-msgid "Load files"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:385
-msgid "Excellon file"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:387
-msgid ""
-"Load the Excellon file.\n"
-"Usually it has a .DRL extension"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:393
-msgid "INF file"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:395
-msgid "Load the INF file."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:407
-msgid "Tool Number"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:409
-msgid "Tool diameter in file units."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:415
-msgid "Excellon format"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:423
-msgid "Int. digits"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:425
-msgid "The number of digits for the integral part of the coordinates."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:432
-msgid "Frac. digits"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:434
-msgid "The number of digits for the fractional part of the coordinates."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:441
-msgid "No Suppression"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:442
-msgid "Zeros supp."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:444
-msgid ""
-"The type of zeros suppression used.\n"
-"Can be of type:\n"
-"- LZ = leading zeros are kept\n"
-"- TZ = trailing zeros are kept\n"
-"- No Suppression = no zero suppression"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:457
-msgid ""
-"The type of units that the coordinates and tool\n"
-"diameters are using. Can be INCH or MM."
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:464
-msgid "Import Excellon"
-msgstr ""
-
-#: appTools/ToolPcbWizard.py:466
-msgid ""
-"Import in FlatCAM an Excellon file\n"
-"that store it's information's in 2 files.\n"
-"One usually has .DRL extension while\n"
-"the other has .INF extension."
-msgstr ""
-
-#: appTools/ToolProperties.py:116 appTools/ToolTransform.py:142
-#: app_Main.py:4970 app_Main.py:7315 app_Main.py:7415 app_Main.py:7456
-#: app_Main.py:7497 app_Main.py:7539 app_Main.py:7581 app_Main.py:7625
-#: app_Main.py:7669 app_Main.py:8185 app_Main.py:8189
-msgid "No object selected."
-msgstr ""
-
-#: appTools/ToolProperties.py:131
-msgid "Object Properties are displayed."
-msgstr ""
-
-#: appTools/ToolProperties.py:136
-msgid "Properties Tool"
-msgstr ""
-
-#: appTools/ToolProperties.py:153
-msgid "TYPE"
-msgstr ""
-
-#: appTools/ToolProperties.py:154
-msgid "NAME"
-msgstr ""
-
-#: appTools/ToolProperties.py:184
-msgid "Geo Type"
-msgstr ""
-
-#: appTools/ToolProperties.py:187
-msgid "Single-Geo"
-msgstr ""
-
-#: appTools/ToolProperties.py:188
-msgid "Multi-Geo"
-msgstr ""
-
-#: appTools/ToolProperties.py:342 appTools/ToolProperties.py:346
-#: appTools/ToolProperties.py:348
-msgid "Inch"
-msgstr ""
-
-#: appTools/ToolProperties.py:342 appTools/ToolProperties.py:347
-#: appTools/ToolProperties.py:349
-msgid "Metric"
-msgstr ""
-
-#: appTools/ToolPunchGerber.py:101
-msgid "Punch Tool"
-msgstr ""
-
-#: appTools/ToolPunchGerber.py:275
-msgid "The value of the fixed diameter is 0.0. Aborting."
-msgstr ""
-
-#: appTools/ToolPunchGerber.py:278
-msgid ""
-"Could not generate punched hole Gerber because the punch hole size is bigger "
-"than some of the apertures in the Gerber object."
-msgstr ""
-
-#: appTools/ToolPunchGerber.py:341
-msgid ""
-"Could not generate punched hole Gerber because the newly created object "
-"geometry is the same as the one in the source object geometry..."
-msgstr ""
-
-#: appTools/ToolPunchGerber.py:684 appTools/ToolPunchGerber.py:977
-msgid "Punch Gerber"
-msgstr ""
-
-#: appTools/ToolPunchGerber.py:719
-msgid "Gerber into which to punch holes"
-msgstr ""
-
-#: appTools/ToolPunchGerber.py:739
-msgid "ALL"
-msgstr ""
-
-#: appTools/ToolPunchGerber.py:820
-msgid ""
-"Remove the geometry of Excellon from the Gerber to create the holes in pads."
-msgstr ""
-
-#: appTools/ToolPunchGerber.py:979
-msgid ""
-"Create a Gerber object from the selected object, within\n"
-"the specified box."
-msgstr ""
-
-#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:485
-#: appTools/ToolQRCode.py:534
-msgid "Cancelled. There is no QRCode Data in the text box."
-msgstr ""
-
-#: appTools/ToolQRCode.py:166
-msgid "Generating QRCode geometry"
-msgstr ""
-
-#: appTools/ToolQRCode.py:206
-msgid "Click on the Destination point ..."
-msgstr ""
-
-#: appTools/ToolQRCode.py:321
-msgid "QRCode Tool done."
-msgstr ""
-
-#: appTools/ToolQRCode.py:517 appTools/ToolQRCode.py:521
-msgid "Export PNG"
-msgstr ""
-
-#: appTools/ToolQRCode.py:564 appTools/ToolQRCode.py:568 app_Main.py:7347
-#: app_Main.py:7351
-msgid "Export SVG"
-msgstr ""
-
-#: appTools/ToolQRCode.py:661
-msgid "Gerber Object to which the QRCode will be added."
-msgstr ""
-
-#: appTools/ToolQRCode.py:697
-msgid "The parameters used to shape the QRCode."
-msgstr ""
-
-#: appTools/ToolQRCode.py:797
-msgid "Export QRCode"
-msgstr ""
-
-#: appTools/ToolQRCode.py:799
-msgid ""
-"Show a set of controls allowing to export the QRCode\n"
-"to a SVG file or an PNG file."
-msgstr ""
-
-#: appTools/ToolQRCode.py:838
-msgid "Transparent back color"
-msgstr ""
-
-#: appTools/ToolQRCode.py:863
-msgid "Export QRCode SVG"
-msgstr ""
-
-#: appTools/ToolQRCode.py:865
-msgid "Export a SVG file with the QRCode content."
-msgstr ""
-
-#: appTools/ToolQRCode.py:876
-msgid "Export QRCode PNG"
-msgstr ""
-
-#: appTools/ToolQRCode.py:878
-msgid "Export a PNG image file with the QRCode content."
-msgstr ""
-
-#: appTools/ToolQRCode.py:889
-msgid "Insert QRCode"
-msgstr ""
-
-#: appTools/ToolQRCode.py:891
-msgid "Create the QRCode object."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:657 appTools/ToolRulesCheck.py:717
-#: appTools/ToolRulesCheck.py:754 appTools/ToolRulesCheck.py:826
-#: appTools/ToolRulesCheck.py:880 appTools/ToolRulesCheck.py:918
-#: appTools/ToolRulesCheck.py:983
-msgid "Value is not valid."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:671
-msgid "TOP -> Copper to Copper clearance"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:682
-msgid "BOTTOM -> Copper to Copper clearance"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:687 appTools/ToolRulesCheck.py:781
-#: appTools/ToolRulesCheck.py:945
-msgid ""
-"At least one Gerber object has to be selected for this rule but none is "
-"selected."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:723
-msgid ""
-"One of the copper Gerber objects or the Outline Gerber object is not valid."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:736 appTools/ToolRulesCheck.py:900
-msgid ""
-"Outline Gerber object presence is mandatory for this rule but it is not "
-"selected."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:753 appTools/ToolRulesCheck.py:780
-msgid "Silk to Silk clearance"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:766
-msgid "TOP -> Silk to Silk clearance"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:776
-msgid "BOTTOM -> Silk to Silk clearance"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:832
-msgid "One or more of the Gerber objects is not valid."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:840
-msgid "TOP -> Silk to Solder Mask Clearance"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:846
-msgid "BOTTOM -> Silk to Solder Mask Clearance"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:850
-msgid ""
-"Both Silk and Solder Mask Gerber objects has to be either both Top or both "
-"Bottom."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:886
-msgid ""
-"One of the Silk Gerber objects or the Outline Gerber object is not valid."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:930
-msgid "TOP -> Minimum Solder Mask Sliver"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:940
-msgid "BOTTOM -> Minimum Solder Mask Sliver"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:989
-msgid "One of the Copper Gerber objects or the Excellon objects is not valid."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1005
-msgid ""
-"Excellon object presence is mandatory for this rule but none is selected."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1078 appTools/ToolRulesCheck.py:1091
-#: appTools/ToolRulesCheck.py:1102 appTools/ToolRulesCheck.py:1115
-msgid "STATUS"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1081 appTools/ToolRulesCheck.py:1105
-msgid "FAILED"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1094 appTools/ToolRulesCheck.py:1118
-msgid "PASSED"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1095 appTools/ToolRulesCheck.py:1119
-msgid "Violations: There are no violations for the current rule."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1137
-msgid "Check Rules"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1165
-msgid "Gerber objects for which to check rules."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1180
-msgid "Top"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1182
-msgid "The Top Gerber Copper object for which rules are checked."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1198
-msgid "Bottom"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1200
-msgid "The Bottom Gerber Copper object for which rules are checked."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1216
-msgid "SM Top"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1218
-msgid "The Top Gerber Solder Mask object for which rules are checked."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1234
-msgid "SM Bottom"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1236
-msgid "The Bottom Gerber Solder Mask object for which rules are checked."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1252
-msgid "Silk Top"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1254
-msgid "The Top Gerber Silkscreen object for which rules are checked."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1270
-msgid "Silk Bottom"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1272
-msgid "The Bottom Gerber Silkscreen object for which rules are checked."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1290
-msgid "The Gerber Outline (Cutout) object for which rules are checked."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1303
-msgid "Excellon objects for which to check rules."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1315
-msgid "Excellon 1"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1317
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the plated holes or a general Excellon file content."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1334
-msgid "Excellon 2"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1336
-msgid ""
-"Excellon object for which to check rules.\n"
-"Holds the non-plated holes."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1349
-msgid "All Rules"
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1351
-msgid "This check/uncheck all the rules below."
-msgstr ""
-
-#: appTools/ToolRulesCheck.py:1601
-msgid "Run Rules Check"
-msgstr ""
-
-#: appTools/ToolShell.py:59
-msgid "Clear the text."
-msgstr ""
-
-#: appTools/ToolShell.py:91 appTools/ToolShell.py:93
-msgid "...processing..."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:459
-msgid "Please enter a tool diameter to add, in Float format."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:493
-msgid "New Nozzle tool added to Tool Table."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:535
-msgid "Nozzle tool from Tool Table was edited."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:593
-msgid "Delete failed. Select a Nozzle tool to delete."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:598
-msgid "Nozzle tool(s) deleted from Tool Table."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:652
-msgid "No SolderPaste mask Gerber object loaded."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:670
-msgid "Creating Solder Paste dispensing geometry."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:683
-msgid "No Nozzle tools in the tool table."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:809
-msgid "Cancelled. Empty file, it has no geometry..."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:812
-msgid "Solder Paste geometry generated successfully"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:819
-msgid "Some or all pads have no solder due of inadequate nozzle diameters..."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:833
-msgid "Generating Solder Paste dispensing geometry..."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:852
-msgid "There is no Geometry object available."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:857
-msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:893
-msgid "An internal error has ocurred. See shell.\n"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:962
-msgid "ToolSolderPaste CNCjob created"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:981
-msgid "SP GCode Editor"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:993 appTools/ToolSolderPaste.py:998
-#: appTools/ToolSolderPaste.py:1047
-msgid ""
-"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1022
-msgid "No Gcode in the object"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1057
-msgid "Export GCode ..."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1104
-msgid "Solder paste dispenser GCode file saved to"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1114
-msgid "Solder Paste Tool"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1144
-msgid "Gerber Solderpaste object."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1157
-msgid ""
-"Tools pool from which the algorithm\n"
-"will pick the ones used for dispensing solder paste."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1172
-msgid ""
-"This is the Tool Number.\n"
-"The solder dispensing will start with the tool with the biggest \n"
-"diameter, continuing until there are no more Nozzle tools.\n"
-"If there are no longer tools but there are still pads not covered\n"
-" with solder paste, the app will issue a warning message box."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1179
-msgid ""
-"Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
-"is the width of the solder paste dispensed."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1186
-msgid "New Nozzle Tool"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1205
-msgid ""
-"Add a new nozzle tool to the Tool Table\n"
-"with the diameter specified above."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1227
-msgid "STEP 1"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1229
-msgid ""
-"First step is to select a number of nozzle tools for usage\n"
-"and then optionally modify the GCode parameters below."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1232
-msgid ""
-"Select tools.\n"
-"Modify parameters."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1352
-msgid ""
-"Feedrate (speed) while moving up vertically\n"
-" to Dispense position (on Z plane)."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1422
-msgid ""
-"Generate GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1443
-msgid "STEP 2"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1445
-msgid ""
-"Second step is to create a solder paste dispensing\n"
-"geometry out of an Solder Paste Mask Gerber file."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1449
-msgid "Generate Geo"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1451
-msgid "Generate solder paste dispensing geometry."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1474
-msgid "Geo Result"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1476
-msgid ""
-"Geometry Solder Paste object.\n"
-"The name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1485
-msgid "STEP 3"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1487
-msgid ""
-"Third step is to select a solder paste dispensing geometry,\n"
-"and then generate a CNCJob object.\n"
-"\n"
-"REMEMBER: if you want to create a CNCJob with new parameters,\n"
-"first you need to generate a geometry with those new params,\n"
-"and only after that you can generate an updated CNCJob."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1508
-msgid "CNC Result"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1510
-msgid ""
-"CNCJob Solder paste object.\n"
-"In order to enable the GCode save section,\n"
-"the name of the object has to end in:\n"
-"'_solderpaste' as a protection."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1520
-msgid "View GCode"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1522
-msgid ""
-"View the generated GCode for Solder Paste dispensing\n"
-"on PCB pads."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1532
-msgid "Save GCode"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1534
-msgid ""
-"Save the generated GCode for Solder Paste dispensing\n"
-"on PCB pads, to a file."
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1544
-msgid "STEP 4"
-msgstr ""
-
-#: appTools/ToolSolderPaste.py:1546
-msgid ""
-"Fourth step (and last) is to select a CNCJob made from \n"
-"a solder paste dispensing geometry, and then view/save it's GCode."
-msgstr ""
-
-#: appTools/ToolSub.py:126
-msgid "Sub Tool"
-msgstr ""
-
-#: appTools/ToolSub.py:147 appTools/ToolSub.py:351
-msgid "No Target object loaded."
-msgstr ""
-
-#: appTools/ToolSub.py:150
-msgid "Loading geometry from Gerber objects."
-msgstr ""
-
-#: appTools/ToolSub.py:162 appTools/ToolSub.py:364
-msgid "No Subtractor object loaded."
-msgstr ""
-
-#: appTools/ToolSub.py:204
-msgid "Finished parsing geometry for aperture"
-msgstr ""
-
-#: appTools/ToolSub.py:206
-msgid "Subtraction aperture processing finished."
-msgstr ""
-
-#: appTools/ToolSub.py:326 appTools/ToolSub.py:515
-msgid "Generating new object ..."
-msgstr ""
-
-#: appTools/ToolSub.py:329 appTools/ToolSub.py:518 appTools/ToolSub.py:595
-msgid "Generating new object failed."
-msgstr ""
-
-#: appTools/ToolSub.py:333 appTools/ToolSub.py:523
-msgid "Created"
-msgstr ""
-
-#: appTools/ToolSub.py:377
-msgid "Currently, the Subtractor geometry cannot be of type Multigeo."
-msgstr ""
-
-#: appTools/ToolSub.py:417
-msgid "Parsing solid_geometry ..."
-msgstr ""
-
-#: appTools/ToolSub.py:419
-msgid "Parsing solid_geometry for tool"
-msgstr ""
-
-#: appTools/ToolSub.py:654
-msgid ""
-"Gerber object from which to subtract\n"
-"the subtractor Gerber object."
-msgstr ""
-
-#: appTools/ToolSub.py:667 appTools/ToolSub.py:722
-msgid "Subtractor"
-msgstr ""
-
-#: appTools/ToolSub.py:669
-msgid ""
-"Gerber object that will be subtracted\n"
-"from the target Gerber object."
-msgstr ""
-
-#: appTools/ToolSub.py:676
-msgid "Subtract Gerber"
-msgstr ""
-
-#: appTools/ToolSub.py:678
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Gerber from the Target Gerber.\n"
-"Can be used to remove the overlapping silkscreen\n"
-"over the soldermask."
-msgstr ""
-
-#: appTools/ToolSub.py:709
-msgid ""
-"Geometry object from which to subtract\n"
-"the subtractor Geometry object."
-msgstr ""
-
-#: appTools/ToolSub.py:724
-msgid ""
-"Geometry object that will be subtracted\n"
-"from the target Geometry object."
-msgstr ""
-
-#: appTools/ToolSub.py:732
-msgid ""
-"Checking this will close the paths cut by the Geometry subtractor object."
-msgstr ""
-
-#: appTools/ToolSub.py:735
-msgid "Subtract Geometry"
-msgstr ""
-
-#: appTools/ToolSub.py:737
-msgid ""
-"Will remove the area occupied by the subtractor\n"
-"Geometry from the Target Geometry."
-msgstr ""
-
-#: appTools/ToolTransform.py:293
-msgid "No object selected. Please Select an object to rotate!"
-msgstr ""
-
-#: appTools/ToolTransform.py:301
-msgid "CNCJob objects can't be rotated."
-msgstr ""
-
-#: appTools/ToolTransform.py:309
-msgid "Rotate done"
-msgstr ""
-
-#: appTools/ToolTransform.py:312 appTools/ToolTransform.py:353
-#: appTools/ToolTransform.py:386 appTools/ToolTransform.py:414
-msgid "Due of"
-msgstr ""
-
-#: appTools/ToolTransform.py:312 appTools/ToolTransform.py:353
-#: appTools/ToolTransform.py:386 appTools/ToolTransform.py:414
-msgid "action was not executed."
-msgstr ""
-
-#: appTools/ToolTransform.py:319
-msgid "No object selected. Please Select an object to flip"
-msgstr ""
-
-#: appTools/ToolTransform.py:329
-msgid "CNCJob objects can't be mirrored/flipped."
-msgstr ""
-
-#: appTools/ToolTransform.py:361
-msgid "Skew transformation can not be done for 0, 90 and 180 degrees."
-msgstr ""
-
-#: appTools/ToolTransform.py:366
-msgid "No object selected. Please Select an object to shear/skew!"
-msgstr ""
-
-#: appTools/ToolTransform.py:375
-msgid "CNCJob objects can't be skewed."
-msgstr ""
-
-#: appTools/ToolTransform.py:383
-msgid "Skew on the"
-msgstr ""
-
-#: appTools/ToolTransform.py:383 appTools/ToolTransform.py:411
-#: appTools/ToolTransform.py:441
-msgid "axis done"
-msgstr ""
-
-#: appTools/ToolTransform.py:393
-msgid "No object selected. Please Select an object to scale!"
-msgstr ""
-
-#: appTools/ToolTransform.py:402
-msgid "CNCJob objects can't be scaled."
-msgstr ""
-
-#: appTools/ToolTransform.py:411
-msgid "Scale on the"
-msgstr ""
-
-#: appTools/ToolTransform.py:421
-msgid "No object selected. Please Select an object to offset!"
-msgstr ""
-
-#: appTools/ToolTransform.py:428
-msgid "CNCJob objects can't be offset."
-msgstr ""
-
-#: appTools/ToolTransform.py:441
-msgid "Offset on the"
-msgstr ""
-
-#: appTools/ToolTransform.py:450
-msgid "No object selected. Please Select an object to buffer!"
-msgstr ""
-
-#: appTools/ToolTransform.py:457
-msgid "CNCJob objects can't be buffered."
-msgstr ""
-
-#: appTools/ToolTransform.py:512
-msgid "Object Transform"
-msgstr ""
-
-#: appTools/ToolTransform.py:603
-msgid ""
-"The object used as reference.\n"
-"The used point is the center of it's bounding box."
-msgstr ""
-
-#: appTranslation.py:105
-msgid "The application will restart."
-msgstr ""
-
-#: appTranslation.py:107
-msgid "Are you sure do you want to change the current language to"
-msgstr ""
-
-#: appTranslation.py:108
-msgid "Apply Language ..."
-msgstr ""
-
-#: appTranslation.py:207 app_Main.py:3377
-msgid ""
-"There are files/objects modified in FlatCAM. \n"
-"Do you want to Save the project?"
-msgstr ""
-
-#: app_Main.py:490
-msgid "FlatCAM is initializing ..."
-msgstr ""
-
-#: app_Main.py:650
-msgid "Could not find the Language files. The App strings are missing."
-msgstr ""
-
-#: app_Main.py:722
-msgid ""
-"FlatCAM is initializing ...\n"
-"Canvas initialization started."
-msgstr ""
-
-#: app_Main.py:742
-msgid ""
-"FlatCAM is initializing ...\n"
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
-msgstr ""
-
-#: app_Main.py:1590 app_Main.py:7001
-msgid "New Project - Not saved"
-msgstr ""
-
-#: app_Main.py:1696
-msgid ""
-"Found old default preferences files. Please reboot the application to update."
-msgstr ""
-
-#: app_Main.py:1763
-msgid "Open Config file failed."
-msgstr ""
-
-#: app_Main.py:1778
-msgid "Open Script file failed."
-msgstr ""
-
-#: app_Main.py:1804
-msgid "Open Excellon file failed."
-msgstr ""
-
-#: app_Main.py:1817
-msgid "Open GCode file failed."
-msgstr ""
-
-#: app_Main.py:1830
-msgid "Open Gerber file failed."
-msgstr ""
-
-#: app_Main.py:2168
-msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit."
-msgstr ""
-
-#: app_Main.py:2183
-msgid ""
-"Simultaneous editing of tools geometry in a MultiGeo Geometry is not "
-"possible.\n"
-"Edit only one geometry at a time."
-msgstr ""
-
-#: app_Main.py:2263
-msgid "Editor is activated ..."
-msgstr ""
-
-#: app_Main.py:2284
-msgid "Do you want to save the edited object?"
-msgstr ""
-
-#: app_Main.py:2325
-msgid "Object empty after edit."
-msgstr ""
-
-#: app_Main.py:2330 app_Main.py:2348 app_Main.py:2379 app_Main.py:2395
-msgid "Editor exited. Editor content saved."
-msgstr ""
-
-#: app_Main.py:2399
-msgid "Select a Gerber, Geometry, Excellon or CNCJobObject to update."
-msgstr ""
-
-#: app_Main.py:2402
-msgid "is updated, returning to App..."
-msgstr ""
-
-#: app_Main.py:2415
-msgid "Editor exited. Editor content was not saved."
-msgstr ""
-
-#: app_Main.py:2440
-msgid "Select a Gerber, Geometry, Excellon or CNCJob Object to update."
-msgstr ""
-
-#: app_Main.py:2463
-msgid "Select a Gerber, Geometry or Excellon Object to update."
-msgstr ""
-
-#: app_Main.py:2567 app_Main.py:2571
-msgid "Import FlatCAM Preferences"
-msgstr ""
-
-#: app_Main.py:2582
-msgid "Imported Defaults from"
-msgstr ""
-
-#: app_Main.py:2602 app_Main.py:2608
-msgid "Export FlatCAM Preferences"
-msgstr ""
-
-#: app_Main.py:2628
-msgid "Exported preferences to"
-msgstr ""
-
-#: app_Main.py:2648 app_Main.py:2653
-msgid "Save to file"
-msgstr ""
-
-#: app_Main.py:2677
-msgid "Could not load the file."
-msgstr ""
-
-#: app_Main.py:2693
-msgid "Exported file to"
-msgstr ""
-
-#: app_Main.py:2730
-msgid "Failed to open recent files file for writing."
-msgstr ""
-
-#: app_Main.py:2741
-msgid "Failed to open recent projects file for writing."
-msgstr ""
-
-#: app_Main.py:2796
-msgid "2D Computer-Aided Printed Circuit Board Manufacturing"
-msgstr ""
-
-#: app_Main.py:2797
-msgid "Development"
-msgstr ""
-
-#: app_Main.py:2798
-msgid "DOWNLOAD"
-msgstr ""
-
-#: app_Main.py:2799
-msgid "Issue tracker"
-msgstr ""
-
-#: app_Main.py:2818
-msgid "Licensed under the MIT license"
-msgstr ""
-
-#: app_Main.py:2827
-msgid ""
-"Permission is hereby granted, free of charge, to any person obtaining a "
-"copy\n"
-"of this software and associated documentation files (the \"Software\"), to "
-"deal\n"
-"in the Software without restriction, including without limitation the "
-"rights\n"
-"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n"
-"copies of the Software, and to permit persons to whom the Software is\n"
-"furnished to do so, subject to the following conditions:\n"
-"\n"
-"The above copyright notice and this permission notice shall be included in\n"
-"all copies or substantial portions of the Software.\n"
-"\n"
-"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS "
-"OR\n"
-"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
-"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n"
-"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
-"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING "
-"FROM,\n"
-"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n"
-"THE SOFTWARE."
-msgstr ""
-
-#: app_Main.py:2849
-msgid ""
-"Some of the icons used are from the following sources:<br><div>Icons by <a "
-"href=\"https://www.flaticon.com/authors/freepik\" title=\"Freepik\">Freepik</"
-"a> from <a href=\"https://www.flaticon.com/\"             title=\"Flaticon"
-"\">www.flaticon.com</a></div><div>Icons by <a target=\"_blank\" href="
-"\"https://icons8.com\">Icons8</a></div>Icons by <a href=\"http://www."
-"onlinewebfonts.com\">oNline Web Fonts</a><div>Icons by <a href=\"https://www."
-"flaticon.com/authors/pixel-perfect\" title=\"Pixel perfect\">Pixel perfect</"
-"a> from <a href=\"https://www.flaticon.com/\" title=\"Flaticon\">www."
-"flaticon.com</a></div>"
-msgstr ""
-
-#: app_Main.py:2885
-msgid "Splash"
-msgstr ""
-
-#: app_Main.py:2891
-msgid "Programmers"
-msgstr ""
-
-#: app_Main.py:2897
-msgid "Translators"
-msgstr ""
-
-#: app_Main.py:2903
-msgid "License"
-msgstr ""
-
-#: app_Main.py:2909
-msgid "Attributions"
-msgstr ""
-
-#: app_Main.py:2932
-msgid "Programmer"
-msgstr ""
-
-#: app_Main.py:2933
-msgid "Status"
-msgstr ""
-
-#: app_Main.py:2934 app_Main.py:3014
-msgid "E-mail"
-msgstr ""
-
-#: app_Main.py:2937
-msgid "Program Author"
-msgstr ""
-
-#: app_Main.py:2942
-msgid "BETA Maintainer >= 2019"
-msgstr ""
-
-#: app_Main.py:3011
-msgid "Language"
-msgstr ""
-
-#: app_Main.py:3012
-msgid "Translator"
-msgstr ""
-
-#: app_Main.py:3013
-msgid "Corrections"
-msgstr ""
-
-#: app_Main.py:3098
-msgid "Important Information's"
-msgstr ""
-
-#: app_Main.py:3146
-#, python-format
-msgid "This program is %s and free in a very wide meaning of the word."
-msgstr ""
-
-#: app_Main.py:3147
-msgid "Yet it cannot evolve without <b>contributions</b>."
-msgstr ""
-
-#: app_Main.py:3148
-msgid "If you want to see this application grow and become better and better"
-msgstr ""
-
-#: app_Main.py:3149
-msgid "you can <b>contribute</b> to the development yourself by:"
-msgstr ""
-
-#: app_Main.py:3150
-msgid "Pull Requests on the Bitbucket repository, if you are a developer"
-msgstr ""
-
-#: app_Main.py:3152
-msgid "Bug Reports by providing the steps required to reproduce the bug"
-msgstr ""
-
-#: app_Main.py:3183
-msgid "Contribute"
-msgstr ""
-
-#: app_Main.py:3206
-msgid "Links Exchange"
-msgstr ""
-
-#: app_Main.py:3218 app_Main.py:3237
-msgid "Soon ..."
-msgstr ""
-
-#: app_Main.py:3225
-msgid "How To's"
-msgstr ""
-
-#: app_Main.py:3337
-msgid ""
-"This entry will resolve to another website if:\n"
-"\n"
-"1. FlatCAM.org website is down\n"
-"2. Someone forked FlatCAM project and wants to point\n"
-"to his own website\n"
-"\n"
-"If you can't get any informations about FlatCAM beta\n"
-"use the YouTube channel link from the Help menu."
-msgstr ""
-
-#: app_Main.py:3344
-msgid "Alternative website"
-msgstr ""
-
-#: app_Main.py:3695
-msgid "Selected Excellon file extensions registered with FlatCAM."
-msgstr ""
-
-#: app_Main.py:3717
-msgid "Selected GCode file extensions registered with FlatCAM."
-msgstr ""
-
-#: app_Main.py:3739
-msgid "Selected Gerber file extensions registered with FlatCAM."
-msgstr ""
-
-#: app_Main.py:3927 app_Main.py:3988 app_Main.py:4018
-msgid "At least two objects are required for join. Objects currently selected"
-msgstr ""
-
-#: app_Main.py:3936
-msgid ""
-"Failed join. The Geometry objects are of different types.\n"
-"At least one is MultiGeo type and the other is SingleGeo type. A possibility "
-"is to convert from one to another and retry joining \n"
-"but in the case of converting from MultiGeo to SingleGeo, informations may "
-"be lost and the result may not be what was expected. \n"
-"Check the generated GCODE."
-msgstr ""
-
-#: app_Main.py:3950 app_Main.py:3960
-msgid "Geometry merging finished"
-msgstr ""
-
-#: app_Main.py:3983
-msgid "Failed. Excellon joining works only on Excellon objects."
-msgstr ""
-
-#: app_Main.py:3995
-msgid "Excellon merging finished"
-msgstr ""
-
-#: app_Main.py:4013
-msgid "Failed. Gerber joining works only on Gerber objects."
-msgstr ""
-
-#: app_Main.py:4023
-msgid "Gerber merging finished"
-msgstr ""
-
-#: app_Main.py:4043 app_Main.py:4080
-msgid "Failed. Select a Geometry Object and try again."
-msgstr ""
-
-#: app_Main.py:4047 app_Main.py:4085
-msgid "Expected a GeometryObject, got"
-msgstr ""
-
-#: app_Main.py:4062
-msgid "A Geometry object was converted to MultiGeo type."
-msgstr ""
-
-#: app_Main.py:4100
-msgid "A Geometry object was converted to SingleGeo type."
-msgstr ""
-
-#: app_Main.py:4333
-msgid "Toggle Units"
-msgstr ""
-
-#: app_Main.py:4337
-msgid ""
-"Changing the units of the project\n"
-"will scale all objects.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-
-#: app_Main.py:4340 app_Main.py:4503 app_Main.py:4586 app_Main.py:7321
-#: app_Main.py:7337 app_Main.py:7675 app_Main.py:7687
-msgid "Ok"
-msgstr ""
-
-#: app_Main.py:4390
-msgid "Converted units to"
-msgstr ""
-
-#: app_Main.py:4430
-msgid "Workspace enabled."
-msgstr ""
-
-#: app_Main.py:4433
-msgid "Workspace disabled."
-msgstr ""
-
-#: app_Main.py:4497
-msgid ""
-"Adding Tool works only when Advanced is checked.\n"
-"Go to Preferences -> General - Show Advanced Options."
-msgstr ""
-
-#: app_Main.py:4579
-msgid "Delete objects"
-msgstr ""
-
-#: app_Main.py:4584
-msgid ""
-"Are you sure you want to permanently delete\n"
-"the selected objects?"
-msgstr ""
-
-#: app_Main.py:4627
-msgid "Object(s) deleted"
-msgstr ""
-
-#: app_Main.py:4631
-msgid "Save the work in Editor and try again ..."
-msgstr ""
-
-#: app_Main.py:4660
-msgid "Object deleted"
-msgstr ""
-
-#: app_Main.py:4687
-msgid "Click to set the origin ..."
-msgstr ""
-
-#: app_Main.py:4709
-msgid "Setting Origin..."
-msgstr ""
-
-#: app_Main.py:4722 app_Main.py:4824
-msgid "Origin set"
-msgstr ""
-
-#: app_Main.py:4739
-msgid "Origin coordinates specified but incomplete."
-msgstr ""
-
-#: app_Main.py:4780
-msgid "Moving to Origin..."
-msgstr ""
-
-#: app_Main.py:4861
-msgid "Jump to ..."
-msgstr ""
-
-#: app_Main.py:4862
-msgid "Enter the coordinates in format X,Y:"
-msgstr ""
-
-#: app_Main.py:4872
-msgid "Wrong coordinates. Enter coordinates in format: X,Y"
-msgstr ""
-
-#: app_Main.py:4989
-msgid "Bottom-Left"
-msgstr ""
-
-#: app_Main.py:4992
-msgid "Top-Right"
-msgstr ""
-
-#: app_Main.py:5013
-msgid "Locate ..."
-msgstr ""
-
-#: app_Main.py:5286 app_Main.py:5361 app_Main.py:5524
-msgid "No object is selected. Select an object and try again."
-msgstr ""
-
-#: app_Main.py:5550
-msgid ""
-"Aborting. The current task will be gracefully closed as soon as possible..."
-msgstr ""
-
-#: app_Main.py:5556
-msgid "The current task was gracefully closed on user request..."
-msgstr ""
-
-#: app_Main.py:5746
-msgid "Tools in Tools Database edited but not saved."
-msgstr ""
-
-#: app_Main.py:5785
-msgid "Adding tool from DB is not allowed for this object."
-msgstr ""
-
-#: app_Main.py:5803
-msgid ""
-"One or more Tools are edited.\n"
-"Do you want to update the Tools Database?"
-msgstr ""
-
-#: app_Main.py:5805
-msgid "Save Tools Database"
-msgstr ""
-
-#: app_Main.py:5851
-msgid "No object selected to Flip on Y axis."
-msgstr ""
-
-#: app_Main.py:5877
-msgid "Flip on Y axis done."
-msgstr ""
-
-#: app_Main.py:5899
-msgid "No object selected to Flip on X axis."
-msgstr ""
-
-#: app_Main.py:5925
-msgid "Flip on X axis done."
-msgstr ""
-
-#: app_Main.py:5947
-msgid "No object selected to Rotate."
-msgstr ""
-
-#: app_Main.py:5950 app_Main.py:6001 app_Main.py:6038
-msgid "Transform"
-msgstr ""
-
-#: app_Main.py:5950 app_Main.py:6001 app_Main.py:6038
-msgid "Enter the Angle value:"
-msgstr ""
-
-#: app_Main.py:5980
-msgid "Rotation done."
-msgstr ""
-
-#: app_Main.py:5982
-msgid "Rotation movement was not executed."
-msgstr ""
-
-#: app_Main.py:5999
-msgid "No object selected to Skew/Shear on X axis."
-msgstr ""
-
-#: app_Main.py:6020
-msgid "Skew on X axis done."
-msgstr ""
-
-#: app_Main.py:6036
-msgid "No object selected to Skew/Shear on Y axis."
-msgstr ""
-
-#: app_Main.py:6057
-msgid "Skew on Y axis done."
-msgstr ""
-
-#: app_Main.py:6139
-msgid "New Grid ..."
-msgstr ""
-
-#: app_Main.py:6140
-msgid "Enter a Grid Value:"
-msgstr ""
-
-#: app_Main.py:6148 app_Main.py:6172
-msgid "Please enter a grid value with non-zero value, in Float format."
-msgstr ""
-
-#: app_Main.py:6153
-msgid "New Grid added"
-msgstr ""
-
-#: app_Main.py:6155
-msgid "Grid already exists"
-msgstr ""
-
-#: app_Main.py:6157
-msgid "Adding New Grid cancelled"
-msgstr ""
-
-#: app_Main.py:6178
-msgid " Grid Value does not exist"
-msgstr ""
-
-#: app_Main.py:6180
-msgid "Grid Value deleted"
-msgstr ""
-
-#: app_Main.py:6182
-msgid "Delete Grid value cancelled"
-msgstr ""
-
-#: app_Main.py:6188
-msgid "Key Shortcut List"
-msgstr ""
-
-#: app_Main.py:6225
-msgid " No object selected to copy it's name"
-msgstr ""
-
-#: app_Main.py:6229
-msgid "Name copied on clipboard ..."
-msgstr ""
-
-#: app_Main.py:6886
-msgid ""
-"There are files/objects opened in FlatCAM.\n"
-"Creating a New project will delete them.\n"
-"Do you want to Save the project?"
-msgstr ""
-
-#: app_Main.py:6909
-msgid "New Project created"
-msgstr ""
-
-#: app_Main.py:7115 app_Main.py:7154 app_Main.py:7198 app_Main.py:7268
-#: app_Main.py:8054 app_Main.py:9298 app_Main.py:9360
-msgid ""
-"Canvas initialization started.\n"
-"Canvas initialization finished in"
-msgstr ""
-
-#: app_Main.py:7117
-msgid "Opening Gerber file."
-msgstr ""
-
-#: app_Main.py:7156
-msgid "Opening Excellon file."
-msgstr ""
-
-#: app_Main.py:7187 app_Main.py:7192
-msgid "Open G-Code"
-msgstr ""
-
-#: app_Main.py:7200
-msgid "Opening G-Code file."
-msgstr ""
-
-#: app_Main.py:7259 app_Main.py:7263
-msgid "Open HPGL2"
-msgstr ""
-
-#: app_Main.py:7270
-msgid "Opening HPGL2 file."
-msgstr ""
-
-#: app_Main.py:7293 app_Main.py:7296
-msgid "Open Configuration File"
-msgstr ""
-
-#: app_Main.py:7316 app_Main.py:7670
-msgid "Please Select a Geometry object to export"
-msgstr ""
-
-#: app_Main.py:7332
-msgid "Only Geometry, Gerber and CNCJob objects can be used."
-msgstr ""
-
-#: app_Main.py:7377
-msgid "Data must be a 3D array with last dimension 3 or 4"
-msgstr ""
-
-#: app_Main.py:7383 app_Main.py:7387
-msgid "Export PNG Image"
-msgstr ""
-
-#: app_Main.py:7420 app_Main.py:7630
-msgid "Failed. Only Gerber objects can be saved as Gerber files..."
-msgstr ""
-
-#: app_Main.py:7432
-msgid "Save Gerber source file"
-msgstr ""
-
-#: app_Main.py:7461
-msgid "Failed. Only Script objects can be saved as TCL Script files..."
-msgstr ""
-
-#: app_Main.py:7473
-msgid "Save Script source file"
-msgstr ""
-
-#: app_Main.py:7502
-msgid "Failed. Only Document objects can be saved as Document files..."
-msgstr ""
-
-#: app_Main.py:7514
-msgid "Save Document source file"
-msgstr ""
-
-#: app_Main.py:7544 app_Main.py:7586 app_Main.py:8537
-msgid "Failed. Only Excellon objects can be saved as Excellon files..."
-msgstr ""
-
-#: app_Main.py:7552 app_Main.py:7557
-msgid "Save Excellon source file"
-msgstr ""
-
-#: app_Main.py:7594 app_Main.py:7598
-msgid "Export Excellon"
-msgstr ""
-
-#: app_Main.py:7638 app_Main.py:7642
-msgid "Export Gerber"
-msgstr ""
-
-#: app_Main.py:7682
-msgid "Only Geometry objects can be used."
-msgstr ""
-
-#: app_Main.py:7698 app_Main.py:7702
-msgid "Export DXF"
-msgstr ""
-
-#: app_Main.py:7727 app_Main.py:7730
-msgid "Import SVG"
-msgstr ""
-
-#: app_Main.py:7758 app_Main.py:7762
-msgid "Import DXF"
-msgstr ""
-
-#: app_Main.py:7816 app_Main.py:7820
-msgid "Select an Gerber or Excellon file to view it's source file."
-msgstr ""
-
-#: app_Main.py:7823
-msgid "Viewing the source code of the selected object."
-msgstr ""
-
-#: app_Main.py:7837
-msgid "Source Editor"
-msgstr ""
-
-#: app_Main.py:7873 app_Main.py:7880
-msgid "There is no selected object for which to see it's source file code."
-msgstr ""
-
-#: app_Main.py:7888
-msgid "Failed to load the source code for the selected object"
-msgstr ""
-
-#: app_Main.py:7921
-msgid "Go to Line ..."
-msgstr ""
-
-#: app_Main.py:7922
-msgid "Line:"
-msgstr ""
-
-#: app_Main.py:7949
-msgid "New TCL script file created in Code Editor."
-msgstr ""
-
-#: app_Main.py:7988 app_Main.py:7990 app_Main.py:8026 app_Main.py:8028
-msgid "Open TCL script"
-msgstr ""
-
-#: app_Main.py:8056
-msgid "Executing ScriptObject file."
-msgstr ""
-
-#: app_Main.py:8064 app_Main.py:8067
-msgid "Run TCL script"
-msgstr ""
-
-#: app_Main.py:8090
-msgid "TCL script file opened in Code Editor and executed."
-msgstr ""
-
-#: app_Main.py:8141 app_Main.py:8147
-msgid "Save Project As ..."
-msgstr ""
-
-#: app_Main.py:8182
-msgid "FlatCAM objects print"
-msgstr ""
-
-#: app_Main.py:8195 app_Main.py:8202
-msgid "Save Object as PDF ..."
-msgstr ""
-
-#: app_Main.py:8211
-msgid "Printing PDF ... Please wait."
-msgstr ""
-
-#: app_Main.py:8390
-msgid "PDF file saved to"
-msgstr ""
-
-#: app_Main.py:8415
-msgid "Exporting SVG"
-msgstr ""
-
-#: app_Main.py:8458
-msgid "SVG file exported to"
-msgstr ""
-
-#: app_Main.py:8484
-msgid "Save cancelled because source file is empty. Try to export the file."
-msgstr ""
-
-#: app_Main.py:8635
-msgid "Excellon file exported to"
-msgstr ""
-
-#: app_Main.py:8644
-msgid "Exporting Excellon"
-msgstr ""
-
-#: app_Main.py:8649 app_Main.py:8656
-msgid "Could not export Excellon file."
-msgstr ""
-
-#: app_Main.py:8772
-msgid "Gerber file exported to"
-msgstr ""
-
-#: app_Main.py:8780
-msgid "Exporting Gerber"
-msgstr ""
-
-#: app_Main.py:8785 app_Main.py:8792
-#, fuzzy
-#| msgid "Could not load bookamrks file."
-msgid "Could not export file."
-msgstr "Could not load bookamrks file."
-
-#: app_Main.py:8840
-msgid "DXF file exported to"
-msgstr ""
-
-#: app_Main.py:8849
-msgid "Exporting DXF"
-msgstr ""
-
-#: app_Main.py:8854 app_Main.py:8861
-msgid "Could not export DXF file."
-msgstr ""
-
-#: app_Main.py:8900
-msgid "Importing SVG"
-msgstr ""
-
-#: app_Main.py:8908 app_Main.py:8963
-msgid "Import failed."
-msgstr ""
-
-#: app_Main.py:8955
-msgid "Importing DXF"
-msgstr ""
-
-#: app_Main.py:8996 app_Main.py:9187 app_Main.py:9252
-msgid "Failed to open file"
-msgstr ""
-
-#: app_Main.py:8999 app_Main.py:9190 app_Main.py:9255
-msgid "Failed to parse file"
-msgstr ""
-
-#: app_Main.py:9011
-msgid "Object is not Gerber file or empty. Aborting object creation."
-msgstr ""
-
-#: app_Main.py:9016
-msgid "Opening Gerber"
-msgstr ""
-
-#: app_Main.py:9027
-msgid "Open Gerber failed. Probable not a Gerber file."
-msgstr ""
-
-#: app_Main.py:9060
-msgid "Cannot open file"
-msgstr ""
-
-#: app_Main.py:9080
-msgid "Opening Excellon."
-msgstr ""
-
-#: app_Main.py:9090
-msgid "Open Excellon file failed. Probable not an Excellon file."
-msgstr ""
-
-#: app_Main.py:9122
-msgid "Reading GCode file"
-msgstr ""
-
-#: app_Main.py:9135
-msgid "This is not GCODE"
-msgstr ""
-
-#: app_Main.py:9140
-msgid "Opening G-Code."
-msgstr ""
-
-#: app_Main.py:9153
-msgid ""
-"Failed to create CNCJob Object. Probable not a GCode file. Try to load it "
-"from File menu.\n"
-" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during "
-"processing"
-msgstr ""
-
-#: app_Main.py:9209
-msgid "Object is not HPGL2 file or empty. Aborting object creation."
-msgstr ""
-
-#: app_Main.py:9214
-msgid "Opening HPGL2"
-msgstr ""
-
-#: app_Main.py:9221
-msgid " Open HPGL2 failed. Probable not a HPGL2 file."
-msgstr ""
-
-#: app_Main.py:9247
-msgid "TCL script file opened in Code Editor."
-msgstr ""
-
-#: app_Main.py:9267
-msgid "Opening TCL Script..."
-msgstr ""
-
-#: app_Main.py:9278
-msgid "Failed to open TCL Script."
-msgstr ""
-
-#: app_Main.py:9300
-msgid "Opening FlatCAM Config file."
-msgstr ""
-
-#: app_Main.py:9328
-msgid "Failed to open config file"
-msgstr ""
-
-#: app_Main.py:9357
-msgid "Loading Project ... Please Wait ..."
-msgstr ""
-
-#: app_Main.py:9362
-msgid "Opening FlatCAM Project file."
-msgstr ""
-
-#: app_Main.py:9377 app_Main.py:9381 app_Main.py:9398
-msgid "Failed to open project file"
-msgstr ""
-
-#: app_Main.py:9437
-msgid "Loading Project ... restoring"
-msgstr ""
-
-#: app_Main.py:9445
-msgid "Project loaded from"
-msgstr ""
-
-#: app_Main.py:9471
-msgid "Redrawing all objects"
-msgstr ""
-
-#: app_Main.py:9559
-msgid "Failed to load recent item list."
-msgstr ""
-
-#: app_Main.py:9566
-msgid "Failed to parse recent item list."
-msgstr ""
-
-#: app_Main.py:9576
-msgid "Failed to load recent projects item list."
-msgstr ""
-
-#: app_Main.py:9583
-msgid "Failed to parse recent project item list."
-msgstr ""
-
-#: app_Main.py:9644
-msgid "Clear Recent projects"
-msgstr ""
-
-#: app_Main.py:9668
-msgid "Clear Recent files"
-msgstr ""
-
-#: app_Main.py:9761
-msgid "Failed checking for latest version. Could not connect."
-msgstr ""
-
-#: app_Main.py:9768
-msgid "Could not parse information about latest version."
-msgstr ""
-
-#: app_Main.py:9778
-msgid "FlatCAM is up to date!"
-msgstr ""
-
-#: app_Main.py:9783
-msgid "Newer Version Available"
-msgstr ""
-
-#: app_Main.py:9785
-msgid "There is a newer version of FlatCAM available for download:"
-msgstr ""
-
-#: app_Main.py:9789
-msgid "info"
-msgstr ""
-
-#: app_Main.py:9817
-msgid ""
-"OpenGL canvas initialization failed. HW or HW configuration not supported."
-"Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General "
-"tab.\n"
-"\n"
-msgstr ""
-
-#: app_Main.py:9895
-msgid "All plots disabled."
-msgstr ""
-
-#: app_Main.py:9902
-msgid "All non selected plots disabled."
-msgstr ""
-
-#: app_Main.py:9909
-msgid "All plots enabled."
-msgstr ""
-
-#: app_Main.py:9915
-msgid "Selected plots enabled..."
-msgstr ""
-
-#: app_Main.py:9923
-msgid "Selected plots disabled..."
-msgstr ""
-
-#: app_Main.py:9956
-msgid "Enabling plots ..."
-msgstr ""
-
-#: app_Main.py:10005
-msgid "Disabling plots ..."
-msgstr ""
-
-#: app_Main.py:10028
-msgid "Working ..."
-msgstr ""
-
-#: app_Main.py:10137
-msgid "Set alpha level ..."
-msgstr ""
-
-#: app_Main.py:10203
-msgid "Saving FlatCAM Project"
-msgstr ""
-
-#: app_Main.py:10226 app_Main.py:10262
-msgid "Project saved to"
-msgstr ""
-
-#: app_Main.py:10233
-msgid "The object is used by another application."
-msgstr ""
-
-#: app_Main.py:10247
-msgid "Failed to verify project file"
-msgstr ""
-
-#: app_Main.py:10247 app_Main.py:10255 app_Main.py:10265
-msgid "Retry to save it."
-msgstr ""
-
-#: app_Main.py:10255 app_Main.py:10265
-msgid "Failed to parse saved project file"
-msgstr ""
-
-#: assets/linux/flatcam-beta.desktop:3
-msgid "FlatCAM Beta"
-msgstr ""
-
-#: assets/linux/flatcam-beta.desktop:8
-msgid "G-Code from GERBERS"
-msgstr ""
-
-#: camlib.py:707
-msgid "self.solid_geometry is neither BaseGeometry or list."
-msgstr ""
-
-#: camlib.py:1100
-msgid "Pass"
-msgstr ""
-
-#: camlib.py:1122
-msgid "Get Exteriors"
-msgstr ""
-
-#: camlib.py:1125
-msgid "Get Interiors"
-msgstr ""
-
-#: camlib.py:2403
-msgid "Failed to mirror. No object selected"
-msgstr ""
-
-#: camlib.py:2468
-msgid "Object was rotated"
-msgstr ""
-
-#: camlib.py:2470
-msgid "Failed to rotate. No object selected"
-msgstr ""
-
-#: camlib.py:2536
-msgid "Object was skewed"
-msgstr ""
-
-#: camlib.py:2538
-msgid "Failed to skew. No object selected"
-msgstr ""
-
-#: camlib.py:2614
-msgid "Object was buffered"
-msgstr ""
-
-#: camlib.py:2616
-msgid "Failed to buffer. No object selected"
-msgstr ""
-
-#: camlib.py:2865
-msgid "There is no such parameter"
-msgstr ""
-
-#: camlib.py:3072 camlib.py:5014 camlib.py:5782
-msgid "Indexing geometry before generating G-Code..."
-msgstr ""
-
-#: camlib.py:3102 camlib.py:3738 camlib.py:3974
-msgid ""
-"The Cut Z parameter has positive value. It is the depth value to drill into "
-"material.\n"
-"The Cut Z parameter needs to have a negative value, assuming it is a typo "
-"therefore the app will convert the value to negative. Check the resulting "
-"CNC code (Gcode etc)."
-msgstr ""
-
-#: camlib.py:3109
-msgid "The Cut Z parameter is zero. There will be no cut, aborting"
-msgstr ""
-
-#: camlib.py:3237 camlib.py:5330
-msgid "The End X,Y format has to be (x, y)."
-msgstr ""
-
-#: camlib.py:3313 camlib.py:3822 camlib.py:4055 camlib.py:5088 camlib.py:5421
-#: camlib.py:5859
-msgid "Starting G-Code for tool with diameter"
-msgstr ""
-
-#: camlib.py:3438 camlib.py:3943 camlib.py:4176 camlib.py:6799
-msgid "G91 coordinates not implemented"
-msgstr ""
-
-#: camlib.py:3447
-#, python-format
-msgid "Finished G-Code generation for tool: %s"
-msgstr ""
-
-#: camlib.py:3497
-msgid ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
-"y) \n"
-"but now there is only one value, not two. "
-msgstr ""
-
-#: camlib.py:3509 camlib.py:4923 camlib.py:5690
-msgid ""
-"The End Move X,Y field in Edit -> Preferences has to be in the format (x, y) "
-"but now there is only one value, not two."
-msgstr ""
-
-#: camlib.py:3748 camlib.py:3984 camlib.py:4977 camlib.py:5266 camlib.py:5740
-msgid "The Cut Z parameter is zero. There will be no cut, skipping file"
-msgstr ""
-
-#: camlib.py:4830
-msgid "Finished G-Code generation..."
-msgstr ""
-
-#: camlib.py:4946
-msgid ""
-"The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, "
-"y) \n"
-"but now there is only one value, not two."
-msgstr ""
-
-#: camlib.py:4960 camlib.py:5250 camlib.py:5723
-msgid ""
-"Cut_Z parameter is None or zero. Most likely a bad combinations of other "
-"parameters."
-msgstr ""
-
-#: camlib.py:4969 camlib.py:5258 camlib.py:5732
-msgid ""
-"The Cut Z parameter has positive value. It is the depth value to cut into "
-"material.\n"
-"The Cut Z parameter needs to have a negative value, assuming it is a typo "
-"therefore the app will convert the value to negative.Check the resulting CNC "
-"code (Gcode etc)."
-msgstr ""
-
-#: camlib.py:4982 camlib.py:5271 camlib.py:5746
-msgid "Travel Z parameter is None or zero."
-msgstr ""
-
-#: camlib.py:4987 camlib.py:5276 camlib.py:5751
-msgid ""
-"The Travel Z parameter has negative value. It is the height value to travel "
-"between cuts.\n"
-"The Z Travel parameter needs to have a positive value, assuming it is a typo "
-"therefore the app will convert the value to positive.Check the resulting CNC "
-"code (Gcode etc)."
-msgstr ""
-
-#: camlib.py:4995 camlib.py:5284 camlib.py:5759
-msgid "The Z Travel parameter is zero. This is dangerous, skipping file"
-msgstr ""
-
-#: camlib.py:5161 camlib.py:5528 camlib.py:5935
-msgid "Finished G-Code generation"
-msgstr ""
-
-#: camlib.py:5161 camlib.py:5528
-msgid "paths traced"
-msgstr ""
-
-#: camlib.py:5581
-msgid ""
-"Trying to generate a CNC Job from a Geometry object without solid_geometry."
-msgstr ""
-
-#: camlib.py:5623
-msgid ""
-"The Tool Offset value is too negative to use for the current_geometry.\n"
-"Raise the value (in module) and try again."
-msgstr ""
-
-#: camlib.py:5935
-msgid " paths traced."
-msgstr ""
-
-#: camlib.py:5963
-msgid "There is no tool data in the SolderPaste geometry."
-msgstr ""
-
-#: camlib.py:6053
-msgid "Finished SolderPaste G-Code generation"
-msgstr ""
-
-#: camlib.py:6053
-msgid "paths traced."
-msgstr ""
-
-#: camlib.py:6376
-msgid "Parsing GCode file. Number of lines"
-msgstr ""
-
-#: camlib.py:6488
-msgid "Creating Geometry from the parsed GCode file. "
-msgstr ""
-
-#: camlib.py:6545
-#, fuzzy
-#| msgid "tooldia = tool diameter"
-msgid "Parsing GCode file for tool diameter"
-msgstr "tooldia = tool diameter"
-
-#: camlib.py:6546
-msgid "Number of lines"
-msgstr ""
-
-#: camlib.py:6635
-#, fuzzy
-#| msgid "Unifying Geometry from parsed Geometry segments"
-msgid "Creating Geometry from the parsed GCode file for tool diameter"
-msgstr "Unifying Geometry from parsed Geometry segments"
-
-#: camlib.py:7069 camlib.py:7217 camlib.py:7386
-msgid "G91 coordinates not implemented ..."
-msgstr ""
-
-#: defaults.py:858
-msgid "Could not load defaults file."
-msgstr ""
-
-#: defaults.py:871
-msgid "Failed to parse defaults file."
-msgstr ""
-
-#: tclCommands/TclCommandBbox.py:75 tclCommands/TclCommandNregions.py:74
-msgid "Expected GerberObject or GeometryObject, got"
-msgstr ""
-
-#: tclCommands/TclCommandBounds.py:67 tclCommands/TclCommandBounds.py:71
-msgid "Expected a list of objects names separated by comma. Got"
-msgstr ""
-
-#: tclCommands/TclCommandBounds.py:81
-msgid "TclCommand Bounds done."
-msgstr ""
-
-#: tclCommands/TclCommandCopperClear.py:287 tclCommands/TclCommandPaint.py:283
-#: tclCommands/TclCommandScale.py:81
-msgid "Could not retrieve box object"
-msgstr ""
-
-#: tclCommands/TclCommandCopperClear.py:310
-msgid "Expected either -box <value> or -all."
-msgstr ""
-
-#: tclCommands/TclCommandGeoCutout.py:147
-msgid ""
-"The name of the object for which cutout is done is missing. Add it and retry."
-msgstr ""
-
-#: tclCommands/TclCommandGeoCutout.py:189
-msgid "Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8."
-msgstr ""
-
-#: tclCommands/TclCommandGeoCutout.py:301
-#: tclCommands/TclCommandGeoCutout.py:356
-msgid "Any-form Cutout operation finished."
-msgstr ""
-
-#: tclCommands/TclCommandGeoCutout.py:362
-msgid "Cancelled. Object type is not supported."
-msgstr ""
-
-#: tclCommands/TclCommandHelp.py:75
-msgid "Available commands:"
-msgstr ""
-
-#: tclCommands/TclCommandHelp.py:115
-msgid "Type help <command_name> for usage."
-msgstr ""
-
-#: tclCommands/TclCommandHelp.py:115
-msgid "Example: help open_gerber"
-msgstr ""
-
-#: tclCommands/TclCommandPaint.py:250 tclCommands/TclCommandPaint.py:256
-msgid "Expected a tuple value like -single 3.2,0.1."
-msgstr ""
-
-#: tclCommands/TclCommandPaint.py:276
-msgid "Expected -box <value>."
-msgstr ""
-
-#: tclCommands/TclCommandPaint.py:297
-msgid ""
-"None of the following args: 'box', 'single', 'all' were used.\n"
-"Paint failed."
-msgstr ""
-
-#: tclCommands/TclCommandScale.py:106
-msgid ""
-"Expected -origin <origin> or -origin <min_bounds> or -origin <center> or - "
-"origin 3.0,4.2."
-msgstr ""
-
-#: tclCommands/TclCommandScale.py:119
-msgid "Expected -x <value> -y <value>."
-msgstr ""
-
-#: tclCommands/TclCommandSetOrigin.py:95
-msgid "Expected a pair of (x, y) coordinates. Got"
-msgstr ""
-
-#: tclCommands/TclCommandSetOrigin.py:101
-msgid "Origin set by offsetting all loaded objects with "
-msgstr ""
-
-#: tclCommands/TclCommandSubtractRectangle.py:62
-msgid "No Geometry name in args. Provide a name and try again."
-msgstr ""
-
-#~ msgid "Angle:"
-#~ msgstr "Angle:"
-
-#~ msgid ""
-#~ "Rotate the selected shape(s).\n"
-#~ "The point of reference is the middle of\n"
-#~ "the bounding box for all selected shapes."
-#~ msgstr ""
-#~ "Rotate the selected shape(s).\n"
-#~ "The point of reference is the middle of\n"
-#~ "the bounding box for all selected shapes."
-
-#~ msgid "Angle X:"
-#~ msgstr "Angle X:"
-
-#~ msgid ""
-#~ "Skew/shear the selected shape(s).\n"
-#~ "The point of reference is the middle of\n"
-#~ "the bounding box for all selected shapes."
-#~ msgstr ""
-#~ "Skew/shear the selected shape(s).\n"
-#~ "The point of reference is the middle of\n"
-#~ "the bounding box for all selected shapes."
-
-#~ msgid "Angle Y:"
-#~ msgstr "Angle Y:"
-
-#~ msgid "Factor X:"
-#~ msgstr "Factor X:"
-
-#~ msgid ""
-#~ "Scale the selected shape(s).\n"
-#~ "The point of reference depends on \n"
-#~ "the Scale reference checkbox state."
-#~ msgstr ""
-#~ "Scale the selected shape(s).\n"
-#~ "The point of reference depends on \n"
-#~ "the Scale reference checkbox state."
-
-#~ msgid "Factor Y:"
-#~ msgstr "Factor Y:"
-
-#~ msgid ""
-#~ "Scale the selected shape(s)\n"
-#~ "using the Scale Factor X for both axis."
-#~ msgstr ""
-#~ "Scale the selected shape(s)\n"
-#~ "using the Scale Factor X for both axis."
-
-#~ msgid "Scale Reference"
-#~ msgstr "Scale Reference"
-
-#~ msgid ""
-#~ "Scale the selected shape(s)\n"
-#~ "using the origin reference when checked,\n"
-#~ "and the center of the biggest bounding box\n"
-#~ "of the selected shapes when unchecked."
-#~ msgstr ""
-#~ "Scale the selected shape(s)\n"
-#~ "using the origin reference when checked,\n"
-#~ "and the center of the biggest bounding box\n"
-#~ "of the selected shapes when unchecked."
-
-#~ msgid "Value X:"
-#~ msgstr "Value X:"
-
-#~ msgid "Value for Offset action on X axis."
-#~ msgstr "Value for Offset action on X axis."
-
-#~ msgid ""
-#~ "Offset the selected shape(s).\n"
-#~ "The point of reference is the middle of\n"
-#~ "the bounding box for all selected shapes.\n"
-#~ msgstr ""
-#~ "Offset the selected shape(s).\n"
-#~ "The point of reference is the middle of\n"
-#~ "the bounding box for all selected shapes.\n"
-
-#~ msgid "Value Y:"
-#~ msgstr "Value Y:"
-
-#~ msgid "Value for Offset action on Y axis."
-#~ msgstr "Value for Offset action on Y axis."
-
-#~ msgid ""
-#~ "Flip the selected shape(s) over the X axis.\n"
-#~ "Does not create a new shape."
-#~ msgstr ""
-#~ "Flip the selected shape(s) over the X axis.\n"
-#~ "Does not create a new shape."
-
-#~ msgid "Ref Pt"
-#~ msgstr "Ref Pt"
-
-#~ msgid ""
-#~ "Flip the selected shape(s)\n"
-#~ "around the point in Point Entry Field.\n"
-#~ "\n"
-#~ "The point coordinates can be captured by\n"
-#~ "left click on canvas together with pressing\n"
-#~ "SHIFT key. \n"
-#~ "Then click Add button to insert coordinates.\n"
-#~ "Or enter the coords in format (x, y) in the\n"
-#~ "Point Entry field and click Flip on X(Y)"
-#~ msgstr ""
-#~ "Flip the selected shape(s)\n"
-#~ "around the point in Point Entry Field.\n"
-#~ "\n"
-#~ "The point coordinates can be captured by\n"
-#~ "left click on canvas together with pressing\n"
-#~ "SHIFT key. \n"
-#~ "Then click Add button to insert coordinates.\n"
-#~ "Or enter the coords in format (x, y) in the\n"
-#~ "Point Entry field and click Flip on X(Y)"
-
-#~ msgid "Point:"
-#~ msgstr "Point:"
-
-#~ msgid ""
-#~ "Coordinates in format (x, y) used as reference for mirroring.\n"
-#~ "The 'x' in (x, y) will be used when using Flip on X and\n"
-#~ "the 'y' in (x, y) will be used when using Flip on Y."
-#~ msgstr ""
-#~ "Coordinates in format (x, y) used as reference for mirroring.\n"
-#~ "The 'x' in (x, y) will be used when using Flip on X and\n"
-#~ "the 'y' in (x, y) will be used when using Flip on Y."
-
-#~ msgid ""
-#~ "The point coordinates can be captured by\n"
-#~ "left click on canvas together with pressing\n"
-#~ "SHIFT key. Then click Add button to insert."
-#~ msgstr ""
-#~ "The point coordinates can be captured by\n"
-#~ "left click on canvas together with pressing\n"
-#~ "SHIFT key. Then click Add button to insert."
-
-#~ msgid "No shape selected. Please Select a shape to rotate!"
-#~ msgstr "No shape selected. Please Select a shape to rotate!"
-
-#~ msgid "No shape selected. Please Select a shape to flip!"
-#~ msgstr "No shape selected. Please Select a shape to flip!"
-
-#~ msgid "No shape selected. Please Select a shape to shear/skew!"
-#~ msgstr "No shape selected. Please Select a shape to shear/skew!"
-
-#~ msgid "No shape selected. Please Select a shape to scale!"
-#~ msgstr "No shape selected. Please Select a shape to scale!"
-
-#~ msgid "No shape selected. Please Select a shape to offset!"
-#~ msgstr "No shape selected. Please Select a shape to offset!"
-
-#~ msgid ""
-#~ "Scale the selected object(s)\n"
-#~ "using the Scale_X factor for both axis."
-#~ msgstr ""
-#~ "Scale the selected object(s)\n"
-#~ "using the Scale_X factor for both axis."
-
-#~ msgid ""
-#~ "Scale the selected object(s)\n"
-#~ "using the origin reference when checked,\n"
-#~ "and the center of the biggest bounding box\n"
-#~ "of the selected objects when unchecked."
-#~ msgstr ""
-#~ "Scale the selected object(s)\n"
-#~ "using the origin reference when checked,\n"
-#~ "and the center of the biggest bounding box\n"
-#~ "of the selected objects when unchecked."
-
-#~ msgid "Mirror Reference"
-#~ msgstr "Mirror Reference"
-
-#~ msgid ""
-#~ "Flip the selected object(s)\n"
-#~ "around the point in Point Entry Field.\n"
-#~ "\n"
-#~ "The point coordinates can be captured by\n"
-#~ "left click on canvas together with pressing\n"
-#~ "SHIFT key. \n"
-#~ "Then click Add button to insert coordinates.\n"
-#~ "Or enter the coords in format (x, y) in the\n"
-#~ "Point Entry field and click Flip on X(Y)"
-#~ msgstr ""
-#~ "Flip the selected object(s)\n"
-#~ "around the point in Point Entry Field.\n"
-#~ "\n"
-#~ "The point coordinates can be captured by\n"
-#~ "left click on canvas together with pressing\n"
-#~ "SHIFT key. \n"
-#~ "Then click Add button to insert coordinates.\n"
-#~ "Or enter the coords in format (x, y) in the\n"
-#~ "Point Entry field and click Flip on X(Y)"
-
-#~ msgid ""
-#~ "Coordinates in format (x, y) used as reference for mirroring.\n"
-#~ "The 'x' in (x, y) will be used when using Flip on X and\n"
-#~ "the 'y' in (x, y) will be used when using Flip on Y and"
-#~ msgstr ""
-#~ "Coordinates in format (x, y) used as reference for mirroring.\n"
-#~ "The 'x' in (x, y) will be used when using Flip on X and\n"
-#~ "the 'y' in (x, y) will be used when using Flip on Y and"
-
-#~ msgid "Ref. Point"
-#~ msgstr "Ref. Point"
-
-#~ msgid "FlatCAM Object"
-#~ msgstr "FlatCAM Object"
-
-#~ msgid ""
-#~ "Choose which tool to use for Gerber isolation:\n"
-#~ "'Circular' or 'V-shape'.\n"
-#~ "When the 'V-shape' is selected then the tool\n"
-#~ "diameter will depend on the chosen cut depth."
-#~ msgstr ""
-#~ "Choose which tool to use for Gerber isolation:\n"
-#~ "'Circular' or 'V-shape'.\n"
-#~ "When the 'V-shape' is selected then the tool\n"
-#~ "diameter will depend on the chosen cut depth."
-
-#~ msgid "V-Shape"
-#~ msgstr "V-Shape"
-
-#~ msgid ""
-#~ "Diameter of the cutting tool.\n"
-#~ "If you want to have an isolation path\n"
-#~ "inside the actual shape of the Gerber\n"
-#~ "feature, use a negative value for\n"
-#~ "this parameter."
-#~ msgstr ""
-#~ "Diameter of the cutting tool.\n"
-#~ "If you want to have an isolation path\n"
-#~ "inside the actual shape of the Gerber\n"
-#~ "feature, use a negative value for\n"
-#~ "this parameter."
-
-#~ msgid "Pass overlap"
-#~ msgstr "Pass overlap"
-
-#~ msgid "Scope"
-#~ msgstr "Scope"
-
-#~ msgid "Clear N-copper"
-#~ msgstr "Clear N-copper"
-
-#~ msgid "Board cutout"
-#~ msgstr "Board cutout"
-
-#~ msgid ""
-#~ "Add a new tool to the Tool Table\n"
-#~ "with the specified diameter."
-#~ msgstr ""
-#~ "Add a new tool to the Tool Table\n"
-#~ "with the specified diameter."
-
-#~ msgid "Excellon Object Color"
-#~ msgstr "Excellon Object Color"
-
-#~ msgid "Geometry Object Color"
-#~ msgstr "Geometry Object Color"
-
-#~ msgid "Exterior"
-#~ msgstr "Exterior"
-
-#~ msgid "Gerber Object Color"
-#~ msgstr "Gerber Object Color"
-
-#~ msgid "Combine Passes"
-#~ msgstr "Combine Passes"
-
-#~ msgid "Rest Machining"
-#~ msgstr "Rest Machining"
-
-#~ msgid "NCC Plotting"
-#~ msgstr "NCC Plotting"
-
-#~ msgid "All Polygons"
-#~ msgstr "All Polygons"
-
-#~ msgid ""
-#~ "- 'Normal' -  normal plotting, done at the end of the Paint job\n"
-#~ "- 'Progressive' - after each shape is generated it will be plotted."
-#~ msgstr ""
-#~ "- 'Normal' -  normal plotting, done at the end of the Paint job\n"
-#~ "- 'Progressive' - after each shape is generated it will be plotted."
-
-#~ msgid "Export Machine Code ..."
-#~ msgstr "Export Machine Code ..."
-
-#~ msgid "Export Machine Code cancelled ..."
-#~ msgstr "Export Machine Code cancelled ..."
-
-#~ msgid "Machine Code file saved to"
-#~ msgstr "Machine Code file saved to"
-
-#~ msgid "Copper Gerber"
-#~ msgstr "Copper Gerber"
-
-#~ msgid "QRCode Parameters"
-#~ msgstr "QRCode Parameters"
-
-#~ msgid "Gerber Files"
-#~ msgstr "Gerber Files"
-
-#~ msgid "Gerber Solder paste object.                        "
-#~ msgstr "Gerber Solder paste object.                        "
-
-#~ msgid "Processing geometry from Subtractor Gerber object."
-#~ msgstr "Processing geometry from Subtractor Gerber object."
-
-#~ msgid "Parsing geometry for aperture"
-#~ msgstr "Parsing geometry for aperture"
-
-#~ msgid "Export FlatCAM Bookmarks"
-#~ msgstr "Export FlatCAM Bookmarks"
-
-#~ msgid "Import FlatCAM Bookmarks"
-#~ msgstr "Import FlatCAM Bookmarks"
-
-#~ msgid "./assets/icon.png"
-#~ msgstr "./assets/icon.png"
-
-#~ msgid "New Blank Geometry"
-#~ msgstr "New Blank Geometry"
-
-#~ msgid "New Blank Gerber"
-#~ msgstr "New Blank Gerber"
-
-#~ msgid "New Blank Excellon"
-#~ msgstr "New Blank Excellon"
-
-#~ msgid "Apply Theme"
-#~ msgstr "Apply Theme"
-
-#~ msgid ""
-#~ "Select a theme for FlatCAM.\n"
-#~ "It will theme the plot area.\n"
-#~ "The application will restart after change."
-#~ msgstr ""
-#~ "Select a theme for FlatCAM.\n"
-#~ "It will theme the plot area.\n"
-#~ "The application will restart after change."
-
-#~ msgid "Film Object"
-#~ msgstr "Film Object"
-
-#~ msgid "Object for which to create the film."
-#~ msgstr "Object for which to create the film."
-
-#~ msgid ""
-#~ "The actual object that is used as container for the\n"
-#~ " selected object for which we create the film.\n"
-#~ "Usually it is the PCB outline but it can be also the\n"
-#~ "same object for which the film is created."
-#~ msgstr ""
-#~ "The actual object that is used as container for the\n"
-#~ " selected object for which we create the film.\n"
-#~ "Usually it is the PCB outline but it can be also the\n"
-#~ "same object for which the film is created."
-
-#~ msgid "Expected -x <value> and -y <value>."
-#~ msgstr "Expected -x <value> and -y <value>."
-
-#~ msgid "Could not load factory defaults file."
-#~ msgstr "Could not load factory defaults file."
-
-#~ msgid "Could not load preferences file."
-#~ msgstr "Could not load preferences file."
-
-#~ msgid "Failed to write factory defaults to file."
-#~ msgstr "Failed to write factory defaults to file."
-
-#~ msgid "Factory defaults saved."
-#~ msgstr "Factory defaults saved."
-
-#~ msgid ""
-#~ "The Tool Type (TT) can be:<BR>- <B>Circular</B> with 1 ... 4 teeth -> it "
-#~ "is informative only. Being circular, <BR>the cut width in material is "
-#~ "exactly the tool diameter.<BR>- <B>Ball</B> -> informative only and make "
-#~ "reference to the Ball type endmill.<BR>- <B>V-Shape</B> -> it will "
-#~ "disable de Z-Cut parameter in the resulting geometry UI form and enable "
-#~ "two additional UI form fields in the resulting geometry: V-Tip Dia and V-"
-#~ "Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-#~ "such as the cut width into material will be equal with the value in the "
-#~ "Tool Diameter column of this table.<BR>Choosing the <B>V-Shape</B> Tool "
-#~ "Type automatically will select the Operation Type in the resulting "
-#~ "geometry as Isolation."
-#~ msgstr ""
-#~ "The Tool Type (TT) can be:<BR>- <B>Circular</B> with 1 ... 4 teeth -> it "
-#~ "is informative only. Being circular, <BR>the cut width in material is "
-#~ "exactly the tool diameter.<BR>- <B>Ball</B> -> informative only and make "
-#~ "reference to the Ball type endmill.<BR>- <B>V-Shape</B> -> it will "
-#~ "disable de Z-Cut parameter in the resulting geometry UI form and enable "
-#~ "two additional UI form fields in the resulting geometry: V-Tip Dia and V-"
-#~ "Tip Angle. Adjusting those two values will adjust the Z-Cut parameter "
-#~ "such as the cut width into material will be equal with the value in the "
-#~ "Tool Diameter column of this table.<BR>Choosing the <B>V-Shape</B> Tool "
-#~ "Type automatically will select the Operation Type in the resulting "
-#~ "geometry as Isolation."
-
-#~ msgid "e_fr_probe"
-#~ msgstr "e_fr_probe"
-
-#~ msgid ""
-#~ " Could not generate punched hole Gerber because the punch hole sizeis "
-#~ "bigger than some of the apertures in the Gerber object."
-#~ msgstr ""
-#~ " Could not generate punched hole Gerber because the punch hole sizeis "
-#~ "bigger than some of the apertures in the Gerber object."
-
-#~ msgid "Paint Tool. Normal painting all task started."
-#~ msgstr "Paint Tool. Normal painting all task started."
-
-#~ msgid "Rest machining painting all task started."
-#~ msgstr "Rest machining painting all task started."
-
-#~| msgid "Painting polygon at location"
-#~ msgid "Painting polygons with method: lines."
-#~ msgstr "Painting polygons with method: lines."
-
-#~| msgid "Normal painting polygon task started."
-#~ msgid "Failed. Painting polygons with method: seed."
-#~ msgstr "Failed. Painting polygons with method: seed."
-
-#~| msgid "Normal painting polygon task started."
-#~ msgid "Failed. Painting polygons with method: standard."
-#~ msgstr "Failed. Painting polygons with method: standard."
-
-#~ msgid ""
-#~ "Could not do Paint All. Try a different combination of parameters. Or a "
-#~ "different Method of paint"
-#~ msgstr ""
-#~ "Could not do Paint All. Try a different combination of parameters. Or a "
-#~ "different Method of paint"
-
-#~| msgid "Paint Tool. Normal painting all task started."
-#~ msgid "Paint Tool. Normal painting area task started."
-#~ msgstr "Paint Tool. Normal painting area task started."
-
-#~ msgid "Rest machining painting area task started."
-#~ msgstr "Rest machining painting area task started."
-
-#~ msgid "Executing Tcl Script ..."
-#~ msgstr "Executing Tcl Script ..."
-
-#~ msgid "Open cancelled."
-#~ msgstr "Open cancelled."
-
-#~ msgid "Preferences default restore was cancelled."
-#~ msgstr "Preferences default restore was cancelled."
-
-#~ msgid "FlatCAM preferences import cancelled."
-#~ msgstr "FlatCAM preferences import cancelled."
-
-#~ msgid "FlatCAM preferences export cancelled."
-#~ msgstr "FlatCAM preferences export cancelled."
-
-#~ msgid "Multigeo. Geometry merging finished"
-#~ msgstr "Multigeo. Geometry merging finished"
-
-#~ msgid "Units conversion cancelled."
-#~ msgstr "Units conversion cancelled."
-
-#~ msgid "Open Gerber cancelled."
-#~ msgstr "Open Gerber cancelled."
-
-#~ msgid " Open Excellon cancelled."
-#~ msgstr " Open Excellon cancelled."
-
-#~ msgid "Open G-Code cancelled."
-#~ msgstr "Open G-Code cancelled."
-
-#~ msgid "Open Project cancelled."
-#~ msgstr "Open Project cancelled."
-
-#~ msgid "Open HPGL2 file cancelled."
-#~ msgstr "Open HPGL2 file cancelled."
-
-#~ msgid "Open Config cancelled."
-#~ msgstr "Open Config cancelled."
-
-#~ msgid " Export SVG cancelled."
-#~ msgstr " Export SVG cancelled."
-
-#~ msgid "No object selected. Please select an Gerber object to export."
-#~ msgstr "No object selected. Please select an Gerber object to export."
-
-#~ msgid "Save Gerber source file cancelled."
-#~ msgstr "Save Gerber source file cancelled."
-
-#~ msgid "No object selected. Please select an Script object to export."
-#~ msgstr "No object selected. Please select an Script object to export."
-
-#~ msgid "Save Script source file cancelled."
-#~ msgstr "Save Script source file cancelled."
-
-#~ msgid "No object selected. Please select an Document object to export."
-#~ msgstr "No object selected. Please select an Document object to export."
-
-#~ msgid "Save Document source file cancelled."
-#~ msgstr "Save Document source file cancelled."
-
-#~ msgid "No object selected. Please select an Excellon object to export."
-#~ msgstr "No object selected. Please select an Excellon object to export."
-
-#~ msgid "Saving Excellon source file cancelled."
-#~ msgstr "Saving Excellon source file cancelled."
-
-#~ msgid "No object selected. Please Select an Excellon object to export."
-#~ msgstr "No object selected. Please Select an Excellon object to export."
-
-#~ msgid "Export Excellon cancelled."
-#~ msgstr "Export Excellon cancelled."
-
-#~ msgid "No object selected. Please Select an Gerber object to export."
-#~ msgstr "No object selected. Please Select an Gerber object to export."
-
-#~ msgid "Export Gerber cancelled."
-#~ msgstr "Export Gerber cancelled."
-
-#~ msgid "Export DXF cancelled."
-#~ msgstr "Export DXF cancelled."
-
-#~ msgid "Open SVG cancelled."
-#~ msgstr "Open SVG cancelled."
-
-#~ msgid "Open DXF cancelled."
-#~ msgstr "Open DXF cancelled."
-
-#~ msgid "Open TCL script cancelled."
-#~ msgstr "Open TCL script cancelled."
-
-#~ msgid "Run TCL script cancelled."
-#~ msgstr "Run TCL script cancelled."
-
-#~ msgid "Save Project cancelled."
-#~ msgstr "Save Project cancelled."
-
-#~ msgid "Save Object PDF cancelled."
-#~ msgstr "Save Object PDF cancelled."
-
-#~ msgid "FlatCAM bookmarks export cancelled."
-#~ msgstr "FlatCAM bookmarks export cancelled."
-
-#~ msgid "FlatCAM bookmarks import cancelled."
-#~ msgstr "FlatCAM bookmarks import cancelled."
-
-#~ msgid "FlatCAM Tools DB export cancelled."
-#~ msgstr "FlatCAM Tools DB export cancelled."
-
-#~ msgid "FlatCAM Tools DB import cancelled."
-#~ msgstr "FlatCAM Tools DB import cancelled."
-
-#~ msgid ""
-#~ "Wrong value format for self.defaults[\"z_pdepth\"] or self."
-#~ "options[\"z_pdepth\"]"
-#~ msgstr ""
-#~ "Wrong value format for self.defaults[\"z_pdepth\"] or self."
-#~ "options[\"z_pdepth\"]"
-
-#~ msgid ""
-#~ "Wrong value format for self.defaults[\"feedrate_probe\"] or self."
-#~ "options[\"feedrate_probe\"]"
-#~ msgstr ""
-#~ "Wrong value format for self.defaults[\"feedrate_probe\"] or self."
-#~ "options[\"feedrate_probe\"]"
-
-#~ msgid ""
-#~ "Algorithm to paint the polygon:<BR><B>Standard</B>: Fixed step inwards."
-#~ "<BR><B>Seed-based</B>: Outwards from seed."
-#~ msgstr ""
-#~ "Algorithm to paint the polygon:<BR><B>Standard</B>: Fixed step inwards."
-#~ "<BR><B>Seed-based</B>: Outwards from seed."
-
-#~ msgid "Seed-based"
-#~ msgstr "Seed-based"
-
-#~ msgid "Straight lines"
-#~ msgstr "Straight lines"
-
-#~ msgid "Paint cancelled. No shape selected."
-#~ msgstr "Paint cancelled. No shape selected."
-
-#~ msgid "Transformation cancelled. No shape selected."
-#~ msgstr "Transformation cancelled. No shape selected."
-
-#~ msgid "Buffer cancelled. No shape selected."
-#~ msgstr "Buffer cancelled. No shape selected."
-
-#~ msgid "Export Code cancelled."
-#~ msgstr "Export Code cancelled."
-
-#~ msgid "&Save Project ..."
-#~ msgstr "&Save Project ..."
-
-#~ msgid "Save Project C&opy ..."
-#~ msgstr "Save Project C&opy ..."
-
-#~ msgid "Change the size of the object."
-#~ msgstr "Change the size of the object."
-
-#~ msgid "Change the position of this object."
-#~ msgstr "Change the position of this object."
-
-#~ msgid "Vector"
-#~ msgstr "Vector"
-
-#~ msgid ""
-#~ "Create a CNC Job object\n"
-#~ "for this drill object."
-#~ msgstr ""
-#~ "Create a CNC Job object\n"
-#~ "for this drill object."
-
-#~ msgid ""
-#~ "Choose what to use for GCode generation:\n"
-#~ "'Drills', 'Slots' or 'Both'.\n"
-#~ "When choosing 'Slots' or 'Both', slots will be\n"
-#~ "converted to a series of drills."
-#~ msgstr ""
-#~ "Choose what to use for GCode generation:\n"
-#~ "'Drills', 'Slots' or 'Both'.\n"
-#~ "When choosing 'Slots' or 'Both', slots will be\n"
-#~ "converted to a series of drills."
-
-#~ msgid "Generate the CNC Job."
-#~ msgstr "Generate the CNC Job."
-
-#~ msgid "Add Tool from DataBase"
-#~ msgstr "Add Tool from DataBase"
-
-#~ msgid "Select a theme for FlatCAM."
-#~ msgstr "Select a theme for FlatCAM."
-
-#~ msgid "Conv."
-#~ msgstr "Conv."
-
-#~ msgid "Diameters of the cutting tools, separated by ','"
-#~ msgstr "Diameters of the cutting tools, separated by ','"
-
-#~ msgid "Tools dia"
-#~ msgstr "Tools dia"
-
-#~ msgid "Area"
-#~ msgstr "Area"
-
-#~ msgid "Ref"
-#~ msgstr "Ref"
-
-#~ msgid ""
-#~ "- 'Itself' -  the non copper clearing extent\n"
-#~ "is based on the object that is copper cleared.\n"
-#~ "- 'Area Selection' - left mouse click to start selection of the area to "
-#~ "be painted.\n"
-#~ "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-#~ "areas.\n"
-#~ "- 'Reference Object' -  will do non copper clearing within the area\n"
-#~ "specified by another object."
-#~ msgstr ""
-#~ "- 'Itself' -  the non copper clearing extent\n"
-#~ "is based on the object that is copper cleared.\n"
-#~ "- 'Area Selection' - left mouse click to start selection of the area to "
-#~ "be painted.\n"
-#~ "Keeping a modifier key pressed (CTRL or SHIFT) will allow to add multiple "
-#~ "areas.\n"
-#~ "- 'Reference Object' -  will do non copper clearing within the area\n"
-#~ "specified by another object."
-
-#~ msgid "Sel"
-#~ msgstr "Sel"
-
-#~ msgid "Diameters of nozzle tools, separated by ','"
-#~ msgstr "Diameters of nozzle tools, separated by ','"
-
-#~ msgid "Reference Gerber"
-#~ msgstr "Reference Gerber"
-
-#~ msgid "Reference Excellon"
-#~ msgstr "Reference Excellon"
-
-#~ msgid "Reference Geometry"
-#~ msgstr "Reference Geometry"
-
-#~ msgid "Point/Box Reference"
-#~ msgstr "Point/Box Reference"
-
-#~ msgid ""
-#~ "If 'Point' is selected above it store the coordinates (x, y) through "
-#~ "which\n"
-#~ "the mirroring axis passes.\n"
-#~ "If 'Box' is selected above, select here a FlatCAM object (Gerber, Exc or "
-#~ "Geo).\n"
-#~ "Through the center of this object pass the mirroring axis selected above."
-#~ msgstr ""
-#~ "If 'Point' is selected above it store the coordinates (x, y) through "
-#~ "which\n"
-#~ "the mirroring axis passes.\n"
-#~ "If 'Box' is selected above, select here a FlatCAM object (Gerber, Exc or "
-#~ "Geo).\n"
-#~ "Through the center of this object pass the mirroring axis selected above."
-
-#~ msgid "Alignment Drill Diameter"
-#~ msgstr "Alignment Drill Diameter"
-
-#~ msgid ""
-#~ "'Point' coordinates missing. Using Origin (0, 0) as mirroring reference."
-#~ msgstr ""
-#~ "'Point' coordinates missing. Using Origin (0, 0) as mirroring reference."
-
-#~ msgid "Export positive film cancelled."
-#~ msgstr "Export positive film cancelled."
-
-#~ msgid "Export negative film cancelled."
-#~ msgstr "Export negative film cancelled."
-
-#~ msgid "Move action cancelled."
-#~ msgstr "Move action cancelled."
-
-#~ msgid "Create Paint Geometry"
-#~ msgstr "Create Paint Geometry"
-
-#~ msgid "Properties Tool was not displayed. No object selected."
-#~ msgstr "Properties Tool was not displayed. No object selected."
-
-#~ msgid " Export PNG cancelled."
-#~ msgstr " Export PNG cancelled."
-
-#~ msgid "Adding Nozzle tool cancelled. Tool already in Tool Table."
-#~ msgstr "Adding Nozzle tool cancelled. Tool already in Tool Table."
-
-#~ msgid ""
-#~ "None of the following args: 'ref', 'all' were found or none was set to "
-#~ "1.\n"
-#~ "Copper clearing failed."
-#~ msgstr ""
-#~ "None of the following args: 'ref', 'all' were found or none was set to "
-#~ "1.\n"
-#~ "Copper clearing failed."
-
-#~ msgid "PostProcessor"
-#~ msgstr "PostProcessor"
-
-#~ msgid "Default <b>Zeros</b>"
-#~ msgstr "Default <b>Zeros</b>"
-
-#~ msgid ""
-#~ "This sets the default type of Excellon zeros.\n"
-#~ "If it is not detected in the parsed file the value here\n"
-#~ "will be used.If LZ then Leading Zeros are kept and\n"
-#~ "Trailing Zeros are removed.\n"
-#~ "If TZ is checked then Trailing Zeros are kept\n"
-#~ "and Leading Zeros are removed."
-#~ msgstr ""
-#~ "This sets the default type of Excellon zeros.\n"
-#~ "If it is not detected in the parsed file the value here\n"
-#~ "will be used.If LZ then Leading Zeros are kept and\n"
-#~ "Trailing Zeros are removed.\n"
-#~ "If TZ is checked then Trailing Zeros are kept\n"
-#~ "and Leading Zeros are removed."
-
-#~ msgid "Default <b>Units</b>"
-#~ msgstr "Default <b>Units</b>"
-
-#~ msgid "Feedrate decimals"
-#~ msgstr "Feedrate decimals"
-
-#~ msgid "Rest M."
-#~ msgstr "Rest M."
-
-#~ msgid "Add Tool to Tools DB"
-#~ msgstr "Add Tool to Tools DB"
-
-#~ msgid "Remove Tool from Tools DB"
-#~ msgstr "Remove Tool from Tools DB"
-
-#~ msgid "Export Tool DB"
-#~ msgstr "Export Tool DB"
-
-#~ msgid "Import Tool DB"
-#~ msgstr "Import Tool DB"
-
-#~ msgid "Please enter the desired tool diameter in Float format."
-#~ msgstr "Please enter the desired tool diameter in Float format."
-
-#~ msgid "Import Preferences"
-#~ msgstr "Import Preferences"
-
-#~ msgid ""
-#~ "Import a full set of FlatCAM settings from a file\n"
-#~ "previously saved on HDD.\n"
-#~ "\n"
-#~ "FlatCAM automatically save a 'factory_defaults' file\n"
-#~ "on the first start. Do not delete that file."
-#~ msgstr ""
-#~ "Import a full set of FlatCAM settings from a file\n"
-#~ "previously saved on HDD.\n"
-#~ "\n"
-#~ "FlatCAM automatically save a 'factory_defaults' file\n"
-#~ "on the first start. Do not delete that file."
-
-#~ msgid "Export Preferences"
-#~ msgstr "Export Preferences"
-
-#~ msgid ""
-#~ "Export a full set of FlatCAM settings in a file\n"
-#~ "that is saved on HDD."
-#~ msgstr ""
-#~ "Export a full set of FlatCAM settings in a file\n"
-#~ "that is saved on HDD."
-
-#~ msgid "Start move Z"
-#~ msgstr "Start move Z"
-
-#~ msgid "Grid X value"
-#~ msgstr "Grid X value"
-
-#~ msgid "Grid Y value"
-#~ msgstr "Grid Y value"
-
-#~ msgid "Wk. size"
-#~ msgstr "Wk. size"
-
-#~ msgid "Sel. Fill"
-#~ msgstr "Sel. Fill"
-
-#~ msgid "Sel. Line"
-#~ msgstr "Sel. Line"
-
-#~ msgid "Sel2. Fill"
-#~ msgstr "Sel2. Fill"
-
-#~ msgid "Sel2. Line"
-#~ msgstr "Sel2. Line"
-
-#~ msgid "Editor Draw Sel."
-#~ msgstr "Editor Draw Sel."
-
-#~ msgid "Proj. Dis. Items"
-#~ msgstr "Proj. Dis. Items"
-
-#~ msgid "NB Font Size"
-#~ msgstr "NB Font Size"
-
-#~ msgid "Axis Font Size"
-#~ msgstr "Axis Font Size"
-
-#~ msgid "Textbox Font Size"
-#~ msgstr "Textbox Font Size"
-
-#~ msgid "Shell at StartUp"
-#~ msgstr "Shell at StartUp"
-
-#~ msgid "Project at StartUp"
-#~ msgstr "Project at StartUp"
-
-#~ msgid "Mouse Cursor"
-#~ msgstr "Mouse Cursor"
-
-#~ msgid ""
-#~ "Set the language used throughout FlatCAM.\n"
-#~ "The app will restart after click.Windows: When FlatCAM is installed in "
-#~ "Program Files\n"
-#~ "directory, it is possible that the app will not\n"
-#~ "restart after the button is clicked due of Windows\n"
-#~ "security features. In this case the language will be\n"
-#~ "applied at the next app start."
-#~ msgstr ""
-#~ "Set the language used throughout FlatCAM.\n"
-#~ "The app will restart after click.Windows: When FlatCAM is installed in "
-#~ "Program Files\n"
-#~ "directory, it is possible that the app will not\n"
-#~ "restart after the button is clicked due of Windows\n"
-#~ "security features. In this case the language will be\n"
-#~ "applied at the next app start."
-
-#~ msgid "G-code does not have a units code: either G20 or G21"
-#~ msgstr "G-code does not have a units code: either G20 or G21"
-
-#, python-brace-format
-#~ msgid ""
-#~ "[selected] {kind} created/selected: <span style=\"color:{color};\">{name}"
-#~ "</span>"
-#~ msgstr ""
-#~ "[selected] {kind} created/selected: <span style=\"color:{color};\">{name}"
-#~ "</span>"
-
-#, python-brace-format
-#~ msgid "[selected]<span style=\"color:{color};\">{name}</span> selected"
-#~ msgstr "[selected]<span style=\"color:{color};\">{name}</span> selected"
-
-#, python-brace-format
-#~ msgid "{l_save}/Project_{date}"
-#~ msgstr "{l_save}/Project_{date}"
-
-#, python-brace-format
-#~| msgid "{l_save}/Project_{date}"
-#~ msgid "{l_save}/{obj_name}_{date}"
-#~ msgstr "{l_save}/{obj_name}_{date}"
-
-#, python-format
-#~ msgid ""
-#~ "How much (fraction) of the tool width to overlap each tool pass.\n"
-#~ "Example:\n"
-#~ "A value here of 0.25 means 25%% from the tool diameter found above.\n"
-#~ "\n"
-#~ "Adjust the value starting with lower values\n"
-#~ "and increasing it if areas that should be painted are still \n"
-#~ "not painted.\n"
-#~ "Lower values = faster processing, faster execution on CNC.\n"
-#~ "Higher values = slow processing and slow execution on CNC\n"
-#~ "due of too many paths."
-#~ msgstr ""
-#~ "How much (fraction) of the tool width to overlap each tool pass.\n"
-#~ "Example:\n"
-#~ "A value here of 0.25 means 25%% from the tool diameter found above.\n"
-#~ "\n"
-#~ "Adjust the value starting with lower values\n"
-#~ "and increasing it if areas that should be painted are still \n"
-#~ "not painted.\n"
-#~ "Lower values = faster processing, faster execution on CNC.\n"
-#~ "Higher values = slow processing and slow execution on CNC\n"
-#~ "due of too many paths."
-
-#~ msgid ""
-#~ "Type here any G-Code commands you would like to append to the generated "
-#~ "file. I.e.: M2 (End of program)"
-#~ msgstr ""
-#~ "Type here any G-Code commands you would like to append to the generated "
-#~ "file. I.e.: M2 (End of program)"
-
-#~ msgid ""
-#~ "Can be:\n"
-#~ "- Portrait\n"
-#~ "- Lanscape"
-#~ msgstr ""
-#~ "Can be:\n"
-#~ "- Portrait\n"
-#~ "- Lanscape"
-
-#~ msgid ""
-#~ "- 'Rectangular' - the bounding box will be of rectangular shape.\n"
-#~ " - 'Minimal' - the bounding box will be the convex hull shape."
-#~ msgstr ""
-#~ "- 'Rectangular' - the bounding box will be of rectangular shape.\n"
-#~ " - 'Minimal' - the bounding box will be the convex hull shape."
-
-#~ msgid ""
-#~ "- '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."
-#~ msgstr ""
-#~ "- '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."
-
-#~ msgid "Calibrate Tool"
-#~ msgstr "Calibrate Tool"
-
-#, python-brace-format
-#~ msgid "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}"
-#~ msgstr "MEASURING: Result D(x) = {d_x} | D(y) = {d_y} | Distance = {d_z}"
-
-#~ msgid ""
-#~ "Generate GCode file to locate and align the PCB by using\n"
-#~ "the four points acquired above."
-#~ msgstr ""
-#~ "Generate GCode file to locate and align the PCB by using\n"
-#~ "the four points acquired above."
-
-#~ msgid "Axis Ref:"
-#~ msgstr "Axis Ref:"
-
-#~ msgid "Change project units ..."
-#~ msgstr "Change project units ..."
-
-#~ msgid "Tool diameter value is missing or wrong format. Add it and retry."
-#~ msgstr "Tool diameter value is missing or wrong format. Add it and retry."
-
-#~ msgid "Overlap value is missing or wrong format. Add it and retry."
-#~ msgstr "Overlap value is missing or wrong format. Add it and retry."
-
-#~ msgid "Margin distance value is missing or wrong format. Add it and retry."
-#~ msgstr "Margin distance value is missing or wrong format. Add it and retry."
-
-#, python-format
-#~ msgid ""
-#~ "How much (fraction) of the tool width to overlap each tool pass.\n"
-#~ "Example:\n"
-#~ "A value here of 0.25 means an overlap of 25%% from the tool diameter "
-#~ "found above."
-#~ msgstr ""
-#~ "How much (fraction) of the tool width to overlap each tool pass.\n"
-#~ "Example:\n"
-#~ "A value here of 0.25 means an overlap of 25%% from the tool diameter "
-#~ "found above."
-
-#~ msgid "Feed Rate X-Y"
-#~ msgstr "Feed Rate X-Y"
-
-#~ msgid "Feed Rate Z"
-#~ msgstr "Feed Rate Z"
-
-#~ msgid "Feed Rate Rapids"
-#~ msgstr "Feed Rate Rapids"
-
-#~ msgid "Generate"
-#~ msgstr "Generate"
-
-#~| msgid "STEP 1"
-#~ msgid "STEP 5"
-#~ msgstr "STEP 5"
-
-#~| msgid "Calc. Tool"
-#~ msgid "Cal Exc Tool"
-#~ msgstr "Cal Exc Tool"
-
-#~ msgid "Object to be cutout.                        "
-#~ msgstr "Object to be cutout.                        "
-
-#~ msgid "Gap size:"
-#~ msgstr "Gap size:"
-
-#~ msgid ""
-#~ "The cutout shape can be of ny shape.\n"
-#~ "Useful when the PCB has a non-rectangular shape."
-#~ msgstr ""
-#~ "The cutout shape can be of ny shape.\n"
-#~ "Useful when the PCB has a non-rectangular shape."
-
-#~ msgid ""
-#~ "The resulting cutout shape is\n"
-#~ "always a rectangle shape and it will be\n"
-#~ "the bounding box of the Object."
-#~ msgstr ""
-#~ "The resulting cutout shape is\n"
-#~ "always a rectangle shape and it will be\n"
-#~ "the bounding box of the Object."
-
-#~ msgid "Geo Obj"
-#~ msgstr "Geo Obj"
-
-#~ msgid ""
-#~ "Use the left mouse button (LMB) click\n"
-#~ "to create a bridge gap to separate the PCB from\n"
-#~ "the surrounding material."
-#~ msgstr ""
-#~ "Use the left mouse button (LMB) click\n"
-#~ "to create a bridge gap to separate the PCB from\n"
-#~ "the surrounding material."
-
-#~ msgid "Generate Gap"
-#~ msgstr "Generate Gap"
-
-#~ msgid "Resets all the fields."
-#~ msgstr "Resets all the fields."
-
-#~ msgid "Overlap value must be between 0 (inclusive) and 1 (exclusive), "
-#~ msgstr "Overlap value must be between 0 (inclusive) and 1 (exclusive), "
-
-#~ msgid "Overlap value must be between 0 (inclusive) and 1 (exclusive)"
-#~ msgstr "Overlap value must be between 0 (inclusive) and 1 (exclusive)"
-
-#~ msgid "Click inside the desired polygon."
-#~ msgstr "Click inside the desired polygon."
-
-#~ msgid ""
-#~ "#\n"
-#~ "# CREATE A NEW FLATCAM TCL SCRIPT\n"
-#~ "# TCL Tutorial here: https://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial."
-#~ "html\n"
-#~ "#\n"
-#~ "\n"
-#~ "# FlatCAM commands list:\n"
-#~ "# AddCircle, AddPolygon, AddPolyline, AddRectangle, AlignDrill, "
-#~ "AlignDrillGrid, ClearShell, ClearCopper,\n"
-#~ "# Cncjob, Cutout, Delete, Drillcncjob, ExportGcode, ExportSVG, Exteriors, "
-#~ "GeoCutout, GeoUnion, GetNames,\n"
-#~ "# GetSys, ImportSvg, Interiors, Isolate, Follow, JoinExcellon, "
-#~ "JoinGeometry, ListSys, MillDrills,\n"
-#~ "# MillSlots, Mirror, New, NewGeometry, Offset, OpenExcellon, OpenGCode, "
-#~ "OpenGerber, OpenProject,\n"
-#~ "# Options, Paint, Panelize, Plot, SaveProject, SaveSys, Scale, SetActive, "
-#~ "SetSys, Skew, SubtractPoly,\n"
-#~ "# SubtractRectangle, Version, WriteGCode\n"
-#~ "#\n"
-#~ "\n"
-#~ msgstr ""
-#~ "#\n"
-#~ "# CREATE A NEW FLATCAM TCL SCRIPT\n"
-#~ "# TCL Tutorial here: https://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial."
-#~ "html\n"
-#~ "#\n"
-#~ "\n"
-#~ "# FlatCAM commands list:\n"
-#~ "# AddCircle, AddPolygon, AddPolyline, AddRectangle, AlignDrill, "
-#~ "AlignDrillGrid, ClearShell, ClearCopper,\n"
-#~ "# Cncjob, Cutout, Delete, Drillcncjob, ExportGcode, ExportSVG, Exteriors, "
-#~ "GeoCutout, GeoUnion, GetNames,\n"
-#~ "# GetSys, ImportSvg, Interiors, Isolate, Follow, JoinExcellon, "
-#~ "JoinGeometry, ListSys, MillDrills,\n"
-#~ "# MillSlots, Mirror, New, NewGeometry, Offset, OpenExcellon, OpenGCode, "
-#~ "OpenGerber, OpenProject,\n"
-#~ "# Options, Paint, Panelize, Plot, SaveProject, SaveSys, Scale, SetActive, "
-#~ "SetSys, Skew, SubtractPoly,\n"
-#~ "# SubtractRectangle, Version, WriteGCode\n"
-#~ "#\n"
-#~ "\n"
-
-#~ msgid "Export G-Code ..."
-#~ msgstr "Export G-Code ..."
-
-#~ msgid "&View"
-#~ msgstr "&View"
-
-#~ msgid "&Tool"
-#~ msgstr "&Tool"
-
-#~ msgid "APP.  DEFAULTS"
-#~ msgstr "APP.  DEFAULTS"
-
-#~ msgid "PROJ. OPTIONS "
-#~ msgstr "PROJ. OPTIONS "
-
-#~ msgid "FULL Geo"
-#~ msgstr "FULL Geo"
-
-#~ msgid ""
-#~ "Create the Geometry Object\n"
-#~ "for isolation routing. It contains both\n"
-#~ "the interiors and exteriors geometry."
-#~ msgstr ""
-#~ "Create the Geometry Object\n"
-#~ "for isolation routing. It contains both\n"
-#~ "the interiors and exteriors geometry."
-
-#~ msgid "Ext Geo"
-#~ msgstr "Ext Geo"
-
-#~ msgid "Int Geo"
-#~ msgstr "Int Geo"
-
-#~ msgid ""
-#~ "Create the Geometry Object\n"
-#~ "for isolation routing containing\n"
-#~ "only the interiors geometry."
-#~ msgstr ""
-#~ "Create the Geometry Object\n"
-#~ "for isolation routing containing\n"
-#~ "only the interiors geometry."
-
-#~ msgid ""
-#~ "Select from the Tools Table above\n"
-#~ "the hole dias that are to be drilled.\n"
-#~ "Use the # column to make the selection."
-#~ msgstr ""
-#~ "Select from the Tools Table above\n"
-#~ "the hole dias that are to be drilled.\n"
-#~ "Use the # column to make the selection."
-
-#~ msgid "Wk. format"
-#~ msgstr "Wk. format"
-
-#~ msgid "y_toolchange = Y coord for Toolchange"
-#~ msgstr "y_toolchange = Y coord for Toolchange"
-
-#~ msgid "Ref."
-#~ msgstr "Ref."
-
-#~ msgid "Gerber   Reference Box Object"
-#~ msgstr "Gerber   Reference Box Object"
-
-#~ msgid "Excellon Reference Box Object"
-#~ msgstr "Excellon Reference Box Object"
-
-#~ msgid "Geometry Reference Box Object"
-#~ msgstr "Geometry Reference Box Object"
-
-#~ msgid "{l_save}/FlatCAM_Bookmarks_{date}"
-#~ msgstr "{l_save}/FlatCAM_Bookmarks_{date}"
-
-#~ msgid "&Help"
-#~ msgstr "&Help"
-
-#~ msgid "FlatCAM.org"
-#~ msgstr "FlatCAM.org"
-
-#~ msgid "tool = tool number"
-#~ msgstr "tool = tool number"
-
-#~ msgid "t_drills = for Excellon, total number of drills"
-#~ msgstr "t_drills = for Excellon, total number of drills"
-
-#~ msgid "x_toolchange = X coord for Toolchange"
-#~ msgstr "x_toolchange = X coord for Toolchange"
-
-#~ msgid "z_toolchange = Z coord for Toolchange"
-#~ msgstr "z_toolchange = Z coord for Toolchange"
-
-#~ msgid "z_depthpercut = the step value for multidepth cut"
-#~ msgstr "z_depthpercut = the step value for multidepth cut"
-
-#~ msgid "spindlesspeed = the value for the spindle speed"
-#~ msgstr "spindlesspeed = the value for the spindle speed"
-
-#~ msgid "Rotate Angle"
-#~ msgstr "Rotate Angle"
-
-#~ msgid "Skew_X angle"
-#~ msgstr "Skew_X angle"
-
-#~ msgid "Skew_Y angle"
-#~ msgstr "Skew_Y angle"
-
-#~ msgid "Scale_Y factor"
-#~ msgstr "Scale_Y factor"
-
-#~ msgid "Offset_X val"
-#~ msgstr "Offset_X val"
-
-#~ msgid "Offset_Y val"
-#~ msgstr "Offset_Y val"
-
-#~ msgid " Mirror Ref. Point"
-#~ msgstr " Mirror Ref. Point"
-
-#~ msgid "The Gerber Copper Bottom file for which rules are checked."
-#~ msgstr "The Gerber Copper Bottom file for which rules are checked."
-
-#~ msgid "The Gerber Silkscreen Bottom file for which rules are checked."
-#~ msgstr "The Gerber Silkscreen Bottom file for which rules are checked."
-
-#~| msgid "Excellon file"
-#~ msgid "Excellon Files"
-#~ msgstr "Excellon Files"
-
-#~ msgid "Go"
-#~ msgstr "Go"
-
-#~ msgid "There are no polygons to mark area."
-#~ msgstr "There are no polygons to mark area."
-
-#~ msgid "&Edit"
-#~ msgstr "&Edit"
-
-#~ msgid "Measurement Tool"
-#~ msgstr "Measurement Tool"
-
-#~ msgid "Margin value is missing or wrong format. Add it and retry."
-#~ msgstr "Margin value is missing or wrong format. Add it and retry."
-
-#~ msgid "Gap size value is missing or wrong format. Add it and retry."
-#~ msgstr "Gap size value is missing or wrong format. Add it and retry."
-
-#~ msgid "Measurement"
-#~ msgstr "Measurement"
-
-#~ msgid "Not available with the current Graphic Engine Legacy(2D)."
-#~ msgstr "Not available with the current Graphic Engine Legacy(2D)."
-
-#~ msgid "ToolMove.on_left_click()"
-#~ msgstr "ToolMove.on_left_click()"
-
-#~ msgid "on_paint_button_click"
-#~ msgstr "on_paint_button_click"
-
-#~ msgid "PaintTool.paint_poly()"
-#~ msgstr "PaintTool.paint_poly()"
-
-#~ msgid "ToolSolderPaste.on_view_gcode()"
-#~ msgstr "ToolSolderPaste.on_view_gcode()"
-
-#~ msgid "App.on_fileopenscript() -->"
-#~ msgstr "App.on_fileopenscript() -->"
-
-#~ msgid "<span style=\"color:green;\"><b>%s</b></span>"
-#~ msgstr "<span style=\"color:green;\"><b>%s</b></span>"
-
-#~ msgid "<span style=\"color:red;\"><b>%s</b></span>"
-#~ msgstr "<span style=\"color:red;\"><b>%s</b></span>"
-
-#~ msgid "FlatCAMObj.GeometryObject.mtool_gen_cncjob() -->"
-#~ msgstr "FlatCAMObj.GeometryObject.mtool_gen_cncjob() -->"
-
-#~ msgid "FlatCAMCNNJob.on_edit_code_click() -->"
-#~ msgstr "FlatCAMCNNJob.on_edit_code_click() -->"
-
-#~ msgid ""
-#~ "toolbars, key shortcuts or even dragging and dropping the files on the GUI"
-#~ msgstr ""
-#~ "toolbars, key shortcuts or even dragging and dropping the files on the GUI"
-
-#~ msgid ""
-#~ "You can also load a FlatCAM project by double clicking on the project "
-#~ "file, drag"
-#~ msgstr ""
-#~ "You can also load a FlatCAM project by double clicking on the project "
-#~ "file, drag"
-
-#~ msgid ""
-#~ "Once an object is available in the Project Tab, by selecting it and then "
-#~ "focusing on"
-#~ msgstr ""
-#~ "Once an object is available in the Project Tab, by selecting it and then "
-#~ "focusing on"
-
-#~ msgid "SELECTED TAB"
-#~ msgstr "SELECTED TAB"
-
-#~ msgid "more simpler is to double click the object name in the Project Tab"
-#~ msgstr "more simpler is to double click the object name in the Project Tab"
-
-#~ msgid "will be updated with the object properties according to"
-#~ msgstr "will be updated with the object properties according to"
-
-#~ msgid "kind: Gerber, Excellon, Geometry or CNCJob object"
-#~ msgstr "kind: Gerber, Excellon, Geometry or CNCJob object"
-
-#~ msgid ""
-#~ "If the selection of the object is done on the canvas by single click "
-#~ "instead, and the"
-#~ msgstr ""
-#~ "If the selection of the object is done on the canvas by single click "
-#~ "instead, and the"
-
-#~ msgid "and populate it even if it was out of focus"
-#~ msgstr "and populate it even if it was out of focus"
-
-#~ msgid "Gerber/Excellon Object"
-#~ msgstr "Gerber/Excellon Object"
-
-#~ msgid "Add tools (change param in Selected Tab)"
-#~ msgstr "Add tools (change param in Selected Tab)"
-
-#~ msgid ""
-#~ "Verify GCode (through Edit CNC Code) and/or append/prepend to GCode "
-#~ "(again, done in"
-#~ msgstr ""
-#~ "Verify GCode (through Edit CNC Code) and/or append/prepend to GCode "
-#~ "(again, done in"
-
-#~ msgid "Shortcuts List"
-#~ msgstr "Shortcuts List"
-
-#~ msgid "or through"
-#~ msgstr "or through"
-
-#~ msgid "own key shortcut"
-#~ msgstr "own key shortcut"
-
-#~ msgid "polygons"
-#~ msgstr "polygons"
-
-#~ msgid "geo"
-#~ msgstr "geo"
-
-#~ msgid "Stop"
-#~ msgstr "Stop"
-
-#~ msgid "Spawning copies"
-#~ msgstr "Spawning copies"
-
-#~ msgid "Parsing tool"
-#~ msgstr "Parsing tool"
-
-#~ msgid ""
-#~ " Wrong value format for self.defaults[\"feedrate_probe\"] or self."
-#~ "options[\"feedrate_probe\"]"
-#~ msgstr ""
-#~ " Wrong value format for self.defaults[\"feedrate_probe\"] or self."
-#~ "options[\"feedrate_probe\"]"
-
-#~ msgid "Wrong optimization type selected."
-#~ msgstr "Wrong optimization type selected."
-
-#~ msgid "FILE ASSOCIATIONS"
-#~ msgstr "FILE ASSOCIATIONS"
-
-#~ msgid "MH"
-#~ msgstr "MH"
-
-#~ msgid "Feedrate (Plunge)"
-#~ msgstr "Feedrate (Plunge)"
-
-#~ msgid ""
-#~ "Parameters used to create a CNC Job object\n"
-#~ "for this drill object that are shown when App Level is Advanced."
-#~ msgstr ""
-#~ "Parameters used to create a CNC Job object\n"
-#~ "for this drill object that are shown when App Level is Advanced."
-
-#~ msgid ""
-#~ "Parameters to create a CNC Job object\n"
-#~ "tracing the contours of a Geometry object."
-#~ msgstr ""
-#~ "Parameters to create a CNC Job object\n"
-#~ "tracing the contours of a Geometry object."
-
-#~ msgid "Manufacturing"
-#~ msgstr "Manufacturing"
-
-#~ msgid "Function"
-#~ msgstr "Function"
-
-#~ msgid ""
-#~ "Juan Pablo Caram <BR><BR>Denis Hayrullin<BR>Kamil Sopko<BR>Marius "
-#~ "Stanciu<BR>Matthieu Berthomé<BR><Br>and many others found <a href = "
-#~ "\"https://bitbucket.org/jpcgt/flatcam/pull-requests/?state=MERGED\">here."
-#~ "</a><BR><BR>"
-#~ msgstr ""
-#~ "Juan Pablo Caram <BR><BR>Denis Hayrullin<BR>Kamil Sopko<BR>Marius "
-#~ "Stanciu<BR>Matthieu Berthomé<BR><Br>and many others found <a href = "
-#~ "\"https://bitbucket.org/jpcgt/flatcam/pull-requests/?state=MERGED\">here."
-#~ "</a><BR><BR>"
-
-#~ msgid ""
-#~ "\n"
-#~ "<p><span style=\"font-size:{tsize}px\"><strong>Selected Tab - Choose an "
-#~ "Item from Project Tab</strong></span></p>\n"
-#~ "\n"
-#~ "<p><span style=\"font-size:{fsize}px\"><strong>Details</strong>:<br />\n"
-#~ "The normal flow when working in FlatCAM is the following:</span></p>\n"
-#~ "\n"
-#~ "<ol>\n"
-#~ "\t<li><span style=\"font-size:{fsize}px\">Loat/Import a Gerber, Excellon, "
-#~ "Gcode, DXF, Raster Image or SVG file into FlatCAM using either the "
-#~ "menu&#39;s, toolbars, key shortcuts or even dragging and dropping the "
-#~ "files on the GUI.<br />\n"
-#~ "\t<br />\n"
-#~ "\tYou can also load a <strong>FlatCAM project</strong> by double clicking "
-#~ "on the project file, drag &amp; drop of the file into the FLATCAM GUI or "
-#~ "through the menu/toolbar links offered within the app.</span><br />\n"
-#~ "\t&nbsp;</li>\n"
-#~ "\t<li><span style=\"font-size:{fsize}px\">Once an object is available in "
-#~ "the Project Tab, by selecting it and then focusing on <strong>SELECTED "
-#~ "TAB </strong>(more simpler is to double click the object name in the "
-#~ "Project Tab), <strong>SELECTED TAB </strong>will be updated with the "
-#~ "object properties according to it&#39;s kind: Gerber, Excellon, Geometry "
-#~ "or CNCJob object.<br />\n"
-#~ "\t<br />\n"
-#~ "\tIf the selection of the object is done on the canvas by single click "
-#~ "instead, and the <strong>SELECTED TAB</strong> is in focus, again the "
-#~ "object properties will be displayed into the Selected Tab. Alternatively, "
-#~ "double clicking on the object on the canvas will bring the "
-#~ "<strong>SELECTED TAB</strong> and populate it even if it was out of focus."
-#~ "<br />\n"
-#~ "\t<br />\n"
-#~ "\tYou can change the parameters in this screen and the flow direction is "
-#~ "like this:<br />\n"
-#~ "\t<br />\n"
-#~ "\t<strong>Gerber/Excellon Object</strong> -&gt; Change Param -&gt; "
-#~ "Generate Geometry -&gt;<strong> Geometry Object </strong>-&gt; Add tools "
-#~ "(change param in Selected Tab) -&gt; Generate CNCJob -&gt;<strong> CNCJob "
-#~ "Object </strong>-&gt; Verify GCode (through Edit CNC Code) and/or append/"
-#~ "prepend to GCode (again, done in <strong>SELECTED TAB)&nbsp;</strong>-"
-#~ "&gt; Save GCode</span></li>\n"
-#~ "</ol>\n"
-#~ "\n"
-#~ "<p><span style=\"font-size:{fsize}px\">A list of key shortcuts is "
-#~ "available through an menu entry in <strong>Help -&gt; Shortcuts List</"
-#~ "strong>&nbsp;or through it&#39;s own key shortcut: <strong>F3</strong>.</"
-#~ "span></p>\n"
-#~ "\n"
-#~ "        "
-#~ msgstr ""
-#~ "\n"
-#~ "<p><span style=\"font-size:{tsize}px\"><strong>Selected Tab - Choose an "
-#~ "Item from Project Tab</strong></span></p>\n"
-#~ "\n"
-#~ "<p><span style=\"font-size:{fsize}px\"><strong>Details</strong>:<br />\n"
-#~ "The normal flow when working in FlatCAM is the following:</span></p>\n"
-#~ "\n"
-#~ "<ol>\n"
-#~ "\t<li><span style=\"font-size:{fsize}px\">Loat/Import a Gerber, Excellon, "
-#~ "Gcode, DXF, Raster Image or SVG file into FlatCAM using either the "
-#~ "menu&#39;s, toolbars, key shortcuts or even dragging and dropping the "
-#~ "files on the GUI.<br />\n"
-#~ "\t<br />\n"
-#~ "\tYou can also load a <strong>FlatCAM project</strong> by double clicking "
-#~ "on the project file, drag &amp; drop of the file into the FLATCAM GUI or "
-#~ "through the menu/toolbar links offered within the app.</span><br />\n"
-#~ "\t&nbsp;</li>\n"
-#~ "\t<li><span style=\"font-size:{fsize}px\">Once an object is available in "
-#~ "the Project Tab, by selecting it and then focusing on <strong>SELECTED "
-#~ "TAB </strong>(more simpler is to double click the object name in the "
-#~ "Project Tab), <strong>SELECTED TAB </strong>will be updated with the "
-#~ "object properties according to it&#39;s kind: Gerber, Excellon, Geometry "
-#~ "or CNCJob object.<br />\n"
-#~ "\t<br />\n"
-#~ "\tIf the selection of the object is done on the canvas by single click "
-#~ "instead, and the <strong>SELECTED TAB</strong> is in focus, again the "
-#~ "object properties will be displayed into the Selected Tab. Alternatively, "
-#~ "double clicking on the object on the canvas will bring the "
-#~ "<strong>SELECTED TAB</strong> and populate it even if it was out of focus."
-#~ "<br />\n"
-#~ "\t<br />\n"
-#~ "\tYou can change the parameters in this screen and the flow direction is "
-#~ "like this:<br />\n"
-#~ "\t<br />\n"
-#~ "\t<strong>Gerber/Excellon Object</strong> -&gt; Change Param -&gt; "
-#~ "Generate Geometry -&gt;<strong> Geometry Object </strong>-&gt; Add tools "
-#~ "(change param in Selected Tab) -&gt; Generate CNCJob -&gt;<strong> CNCJob "
-#~ "Object </strong>-&gt; Verify GCode (through Edit CNC Code) and/or append/"
-#~ "prepend to GCode (again, done in <strong>SELECTED TAB)&nbsp;</strong>-"
-#~ "&gt; Save GCode</span></li>\n"
-#~ "</ol>\n"
-#~ "\n"
-#~ "<p><span style=\"font-size:{fsize}px\">A list of key shortcuts is "
-#~ "available through an menu entry in <strong>Help -&gt; Shortcuts List</"
-#~ "strong>&nbsp;or through it&#39;s own key shortcut: <strong>F3</strong>.</"
-#~ "span></p>\n"
-#~ "\n"
-#~ "        "
-
-#~ msgid "Run Script ...\tShift+S"
-#~ msgstr "Run Script ...\tShift+S"
-
-#~| msgid ""
-#~| "<font size=8><B>FlatCAM</B></font><BR>Version {version} {beta} ({date}) "
-#~| "- {arch} <BR><BR>2D Computer-Aided Printed Circuit "
-#~| "Board<BR>Manufacturing.<BR><BR>(c) 2014-2019 <B>Juan Pablo Caram</"
-#~| "B><BR><BR><B> Main Contributors:</B><BR>Denis Hayrullin<BR>Kamil "
-#~| "Sopko<BR>Marius Stanciu<BR>Matthieu Berthomé<BR>and many others found <a "
-#~| "href = \"https://bitbucket.org/jpcgt/flatcam/pull-requests/?state=MERGED"
-#~| "\">here.</a><BR><BR>Development is done <a href = \"https://bitbucket."
-#~| "org/jpcgt/flatcam/src/Beta/\">here.</a><BR>DOWNLOAD area <a href = "
-#~| "\"https://bitbucket.org/jpcgt/flatcam/downloads/\">here.</a><BR>"
-#~ msgid ""
-#~ "<font size=8><B>FlatCAM</B></font><BR>Version {version} {beta} ({date}) - "
-#~ "{arch} <BR><BR>2D Computer-Aided Printed Circuit Board<BR>Manufacturing."
-#~ "<BR><BR><B> License: </B><BR>Licensed under MIT license (2014 - "
-#~ "2019)<BR>by (c)Juan Pablo Caram <BR><BR><B> Programmers:</B><BR>Denis "
-#~ "Hayrullin<BR>Kamil Sopko<BR>Marius Stanciu<BR>Matthieu Berthomé<BR>and "
-#~ "many others found <a href = \"https://bitbucket.org/jpcgt/flatcam/pull-"
-#~ "requests/?state=MERGED\">here.</a><BR><BR><B>Development</B> is done <a "
-#~ "href = \"https://bitbucket.org/jpcgt/flatcam/src/Beta/\">here.</"
-#~ "a><BR><b>DOWNLOAD</B> area <a href = \"https://bitbucket.org/jpcgt/"
-#~ "flatcam/downloads/\">here.</a><BR>"
-#~ msgstr ""
-#~ "<font size=8><B>FlatCAM</B></font><BR>Version {version} {beta} ({date}) - "
-#~ "{arch} <BR><BR>2D Computer-Aided Printed Circuit Board<BR>Manufacturing."
-#~ "<BR><BR><B> License: </B><BR>Licensed under MIT license (2014 - "
-#~ "2019)<BR>by (c)Juan Pablo Caram <BR><BR><B> Programmers:</B><BR>Denis "
-#~ "Hayrullin<BR>Kamil Sopko<BR>Marius Stanciu<BR>Matthieu Berthomé<BR>and "
-#~ "many others found <a href = \"https://bitbucket.org/jpcgt/flatcam/pull-"
-#~ "requests/?state=MERGED\">here.</a><BR><BR><B>Development</B> is done <a "
-#~ "href = \"https://bitbucket.org/jpcgt/flatcam/src/Beta/\">here.</"
-#~ "a><BR><b>DOWNLOAD</B> area <a href = \"https://bitbucket.org/jpcgt/"
-#~ "flatcam/downloads/\">here.</a><BR>"
-
-#~| msgid "[ERROR_NOTCL] Expected a GeometryObject, got %s"
-#~ msgid "Expected a GeometryObject, got %s"
-#~ msgstr "Expected a GeometryObject, got %s"
-
-#~ msgid "Saved to: %s"
-#~ msgstr "Saved to: %s"
-
-#~ msgid "[WARNING_NOTCL] Adding Tool cancelled ..."
-#~ msgstr "[WARNING_NOTCL] Adding Tool cancelled ..."
-
-#~ msgid "%s"
-#~ msgstr "%s"
-
-#~| msgid "[ERROR]App.on_view_source() -->%s"
-#~ msgid "App.on_view_source() -->"
-#~ msgstr "App.on_view_source() -->"
-
-#~ msgid "[success] Name changed from {old} to {new}"
-#~ msgstr "[success] Name changed from {old} to {new}"
-
-#~| msgid ""
-#~| "[ERROR_NOTCL] Failed.\n"
-#~| "%s"
-#~ msgid "[ERROR_NOTCL] %s"
-#~ msgstr "[ERROR_NOTCL] %s"
-
-#~ msgid "[success] Done. Path completed."
-#~ msgstr "[success] Done. Path completed."
-
-#~ msgid "[success] Paint done."
-#~ msgstr "[success] Paint done."
-
-#~ msgid "About"
-#~ msgstr "About"
-
-#~| msgid ""
-#~| "<b>General Shortcut list</b><br>\n"
-#~| "            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" "
-#~| "style=\"width:283px\">\n"
-#~| "                <tbody>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\" width=\"89\"><strong>F3</"
-#~| "strong></td>\n"
-#~| "                        <td width=\"194\"><span style=\"color:"
-#~| "#006400\"><strong>&nbsp;SHOW SHORTCUT LIST</strong></span></td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\">&nbsp;</td>\n"
-#~| "                        <td>&nbsp;</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>1</strong></td>\n"
-#~| "                        <td>&nbsp;Switch to Project Tab</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>2</strong></td>\n"
-#~| "                        <td>&nbsp;Switch to Selected Tab</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>3</strong></td>\n"
-#~| "                        <td>&nbsp;Switch to Tool Tab</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\">&nbsp;</td>\n"
-#~| "                        <td>&nbsp;</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>B</strong></td>\n"
-#~| "                        <td>&nbsp;New Gerber</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>E</strong></td>\n"
-#~| "                        <td>&nbsp;Edit Object (if selected)</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>G</strong></td>\n"
-#~| "                        <td>&nbsp;Grid On/Off</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>J</strong></td>\n"
-#~| "                        <td>&nbsp;Jump to Coordinates</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>L</strong></td>\n"
-#~| "                        <td>&nbsp;New Excellon</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~| "                        <td>&nbsp;Move Obj</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>N</strong></td>\n"
-#~| "                        <td>&nbsp;New Geometry</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>O</strong></td>\n"
-#~| "                        <td>&nbsp;Set Origin</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Q</strong></td>\n"
-#~| "                        <td>&nbsp;Change Units</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>P</strong></td>\n"
-#~| "                        <td>&nbsp;Open Properties Tool</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>R</strong></td>\n"
-#~| "                        <td>&nbsp;Rotate by 90 degree CW</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>S</strong></td>\n"
-#~| "                        <td>&nbsp;Shell Toggle</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~| "                        <td>&nbsp;Add a Tool (when in Geometry Selected "
-#~| "Tab or in Tools NCC or Tools Paint)</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>V</strong></td>\n"
-#~| "                        <td>&nbsp;Zoom Fit</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>X</strong></td>\n"
-#~| "                        <td>&nbsp;Flip on X_axis</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Y</strong></td>\n"
-#~| "                        <td>&nbsp;Flip on Y_axis</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>&#39;-&#39;</strong></"
-#~| "td>\n"
-#~| "                        <td>&nbsp;Zoom Out</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>&#39;=&#39;</strong></"
-#~| "td>\n"
-#~| "                        <td>&nbsp;Zoom In</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\">&nbsp;</td>\n"
-#~| "                        <td>&nbsp;</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Ctrl+A</strong></td>\n"
-#~| "                        <td>&nbsp;Select All</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Ctrl+C</strong></td>\n"
-#~| "                        <td>&nbsp;Copy Obj</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Ctrl+E</strong></td>\n"
-#~| "                        <td>&nbsp;Open Excellon File</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Ctrl+G</strong></td>\n"
-#~| "                        <td>&nbsp;Open Gerber File</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Ctrl+N</strong></td>\n"
-#~| "                        <td>&nbsp;New Project</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Ctrl+M</strong></td>\n"
-#~| "                        <td>&nbsp;Measurement Tool</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Ctrl+O</strong></td>\n"
-#~| "                        <td>&nbsp;Open Project</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Ctrl+S</strong></td>\n"
-#~| "                        <td>&nbsp;Save Project As</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Ctrl+F10</strong></"
-#~| "td>\n"
-#~| "                        <td>&nbsp;Toggle Plot Area</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\">&nbsp;</td>\n"
-#~| "                        <td>&nbsp;</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Shift+C</strong></td>\n"
-#~| "                        <td>&nbsp;Copy Obj_Name</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Shift+E</strong></td>\n"
-#~| "                        <td>&nbsp;Toggle Code Editor</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Shift+G</strong></td>\n"
-#~| "                        <td>&nbsp;Toggle the axis</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Shift+P</strong></td>\n"
-#~| "                        <td>&nbsp;Open Preferences Window</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Shift+R</strong></td>\n"
-#~| "                        <td>&nbsp;Rotate by 90 degree CCW</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Shift+S</strong></td>\n"
-#~| "                        <td>&nbsp;Run a Script</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Shift+W</strong></td>\n"
-#~| "                        <td>&nbsp;Toggle the workspace</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Shift+X</strong></td>\n"
-#~| "                        <td>&nbsp;Skew on X axis</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Shift+Y</strong></td>\n"
-#~| "                        <td>&nbsp;Skew on Y axis</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\">&nbsp;</td>\n"
-#~| "                        <td>&nbsp;</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+C</strong></td>\n"
-#~| "                        <td>&nbsp;Calculators Tool</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+D</strong></td>\n"
-#~| "                        <td>&nbsp;2-Sided PCB Tool</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+K</strong></td>\n"
-#~| "                        <td>&nbsp;Solder Paste Dispensing Tool</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+L</strong></td>\n"
-#~| "                        <td>&nbsp;Film PCB Tool</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+N</strong></td>\n"
-#~| "                        <td>&nbsp;Non-Copper Clearing Tool</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+P</strong></td>\n"
-#~| "                        <td>&nbsp;Paint Area Tool</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+Q</strong></td>\n"
-#~| "                        <td>&nbsp;PDF Import Tool</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+R</strong></td>\n"
-#~| "                        <td>&nbsp;Transformations Tool</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+S</strong></td>\n"
-#~| "                        <td>&nbsp;View File Source</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+U</strong></td>\n"
-#~| "                        <td>&nbsp;Cutout PCB Tool</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+1</strong></td>\n"
-#~| "                        <td>&nbsp;Enable all Plots</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+2</strong></td>\n"
-#~| "                        <td>&nbsp;Disable all Plots</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+3</strong></td>\n"
-#~| "                        <td>&nbsp;Disable Non-selected Plots</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Alt+F10</strong></td>\n"
-#~| "                        <td>&nbsp;Toggle Full Screen</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\">&nbsp;</td>\n"
-#~| "                        <td>&nbsp;</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>F1</strong></td>\n"
-#~| "                        <td>&nbsp;Open Online Manual</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>F4</strong></td>\n"
-#~| "                        <td>&nbsp;Open Online Tutorials</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~| "                        <td>&nbsp;Delete Object</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~| "                        <td>&nbsp;Alternate: Delete Tool</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>'`'</strong></td>\n"
-#~| "                        <td>&nbsp;(left to Key_1)Toogle Notebook Area "
-#~| "(Left Side)</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>SPACE</strong></td>\n"
-#~| "                        <td>&nbsp;En(Dis)able Obj Plot</td>\n"
-#~| "                    </tr>\n"
-#~| "                    <tr height=\"20\">\n"
-#~| "                        <td height=\"20\"><strong>Escape</strong></td>\n"
-#~| "                        <td>&nbsp;Deselects all objects</td>\n"
-#~| "                    </tr>\n"
-#~| "                </tbody>\n"
-#~| "            </table>\n"
-#~| "    \n"
-#~| "            "
-#~ msgid ""
-#~ "<b>General Shortcut list</b><br>\n"
-#~ "            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style="
-#~ "\"width:283px\">\n"
-#~ "                <tbody>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>F3</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\"><span style=\"color:"
-#~ "#006400\"><strong>&nbsp;SHOW SHORTCUT LIST</strong></span></td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>1</strong></td>\n"
-#~ "                        <td>&nbsp;Switch to Project Tab</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>2</strong></td>\n"
-#~ "                        <td>&nbsp;Switch to Selected Tab</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>3</strong></td>\n"
-#~ "                        <td>&nbsp;Switch to Tool Tab</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>B</strong></td>\n"
-#~ "                        <td>&nbsp;New Gerber</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>E</strong></td>\n"
-#~ "                        <td>&nbsp;Edit Object (if selected)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>G</strong></td>\n"
-#~ "                        <td>&nbsp;Grid On/Off</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>J</strong></td>\n"
-#~ "                        <td>&nbsp;Jump to Coordinates</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>L</strong></td>\n"
-#~ "                        <td>&nbsp;New Excellon</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Move Obj</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>N</strong></td>\n"
-#~ "                        <td>&nbsp;New Geometry</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>O</strong></td>\n"
-#~ "                        <td>&nbsp;Set Origin</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Q</strong></td>\n"
-#~ "                        <td>&nbsp;Change Units</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>P</strong></td>\n"
-#~ "                        <td>&nbsp;Open Properties Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>R</strong></td>\n"
-#~ "                        <td>&nbsp;Rotate by 90 degree CW</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>S</strong></td>\n"
-#~ "                        <td>&nbsp;Shell Toggle</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Add a Tool (when in Geometry Selected "
-#~ "Tab or in Tools NCC or Tools Paint)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>V</strong></td>\n"
-#~ "                        <td>&nbsp;Zoom Fit</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>X</strong></td>\n"
-#~ "                        <td>&nbsp;Flip on X_axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Y</strong></td>\n"
-#~ "                        <td>&nbsp;Flip on Y_axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>&#39;-&#39;</strong></"
-#~ "td>\n"
-#~ "                        <td>&nbsp;Zoom Out</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>&#39;=&#39;</strong></"
-#~ "td>\n"
-#~ "                        <td>&nbsp;Zoom In</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+A</strong></td>\n"
-#~ "                        <td>&nbsp;Select All</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy Obj</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+E</strong></td>\n"
-#~ "                        <td>&nbsp;Open Excellon File</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+G</strong></td>\n"
-#~ "                        <td>&nbsp;Open Gerber File</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+N</strong></td>\n"
-#~ "                        <td>&nbsp;New Project</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+M</strong></td>\n"
-#~ "                        <td>&nbsp;Measurement Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+O</strong></td>\n"
-#~ "                        <td>&nbsp;Open Project</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+S</strong></td>\n"
-#~ "                        <td>&nbsp;Save Project As</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+F10</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle Plot Area</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy Obj_Name</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+E</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle Code Editor</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+G</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle the axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+P</strong></td>\n"
-#~ "                        <td>&nbsp;Open Preferences Window</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+R</strong></td>\n"
-#~ "                        <td>&nbsp;Rotate by 90 degree CCW</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+S</strong></td>\n"
-#~ "                        <td>&nbsp;Run a Script</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+W</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle the workspace</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+X</strong></td>\n"
-#~ "                        <td>&nbsp;Skew on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+Y</strong></td>\n"
-#~ "                        <td>&nbsp;Skew on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+C</strong></td>\n"
-#~ "                        <td>&nbsp;Calculators Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+D</strong></td>\n"
-#~ "                        <td>&nbsp;2-Sided PCB Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+K</strong></td>\n"
-#~ "                        <td>&nbsp;Solder Paste Dispensing Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+L</strong></td>\n"
-#~ "                        <td>&nbsp;Film PCB Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+N</strong></td>\n"
-#~ "                        <td>&nbsp;Non-Copper Clearing Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+P</strong></td>\n"
-#~ "                        <td>&nbsp;Paint Area Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+Q</strong></td>\n"
-#~ "                        <td>&nbsp;PDF Import Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+R</strong></td>\n"
-#~ "                        <td>&nbsp;Transformations Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+S</strong></td>\n"
-#~ "                        <td>&nbsp;View File Source</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+U</strong></td>\n"
-#~ "                        <td>&nbsp;Cutout PCB Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+1</strong></td>\n"
-#~ "                        <td>&nbsp;Enable all Plots</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+2</strong></td>\n"
-#~ "                        <td>&nbsp;Disable all Plots</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+3</strong></td>\n"
-#~ "                        <td>&nbsp;Disable Non-selected Plots</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+F10</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle Full Screen</td>\n"
-#~ "                    </tr>                 \n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+Alt+X</strong></"
-#~ "td>\n"
-#~ "                        <td>&nbsp;Abort current task (gracefully)</td>\n"
-#~ "                    </tr>                    \n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>F1</strong></td>\n"
-#~ "                        <td>&nbsp;Open Online Manual</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>F4</strong></td>\n"
-#~ "                        <td>&nbsp;Open Online Tutorials</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Delete Object</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Alternate: Delete Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>'`'</strong></td>\n"
-#~ "                        <td>&nbsp;(left to Key_1)Toogle Notebook Area "
-#~ "(Left Side)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>SPACE</strong></td>\n"
-#~ "                        <td>&nbsp;En(Dis)able Obj Plot</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Escape</strong></td>\n"
-#~ "                        <td>&nbsp;Deselects all objects</td>\n"
-#~ "                    </tr>\n"
-#~ "                </tbody>\n"
-#~ "            </table>\n"
-#~ "    \n"
-#~ "            "
-#~ msgstr ""
-#~ "<b>General Shortcut list</b><br>\n"
-#~ "            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style="
-#~ "\"width:283px\">\n"
-#~ "                <tbody>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>F3</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\"><span style=\"color:"
-#~ "#006400\"><strong>&nbsp;SHOW SHORTCUT LIST</strong></span></td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>1</strong></td>\n"
-#~ "                        <td>&nbsp;Switch to Project Tab</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>2</strong></td>\n"
-#~ "                        <td>&nbsp;Switch to Selected Tab</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>3</strong></td>\n"
-#~ "                        <td>&nbsp;Switch to Tool Tab</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>B</strong></td>\n"
-#~ "                        <td>&nbsp;New Gerber</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>E</strong></td>\n"
-#~ "                        <td>&nbsp;Edit Object (if selected)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>G</strong></td>\n"
-#~ "                        <td>&nbsp;Grid On/Off</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>J</strong></td>\n"
-#~ "                        <td>&nbsp;Jump to Coordinates</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>L</strong></td>\n"
-#~ "                        <td>&nbsp;New Excellon</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Move Obj</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>N</strong></td>\n"
-#~ "                        <td>&nbsp;New Geometry</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>O</strong></td>\n"
-#~ "                        <td>&nbsp;Set Origin</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Q</strong></td>\n"
-#~ "                        <td>&nbsp;Change Units</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>P</strong></td>\n"
-#~ "                        <td>&nbsp;Open Properties Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>R</strong></td>\n"
-#~ "                        <td>&nbsp;Rotate by 90 degree CW</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>S</strong></td>\n"
-#~ "                        <td>&nbsp;Shell Toggle</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Add a Tool (when in Geometry Selected "
-#~ "Tab or in Tools NCC or Tools Paint)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>V</strong></td>\n"
-#~ "                        <td>&nbsp;Zoom Fit</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>X</strong></td>\n"
-#~ "                        <td>&nbsp;Flip on X_axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Y</strong></td>\n"
-#~ "                        <td>&nbsp;Flip on Y_axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>&#39;-&#39;</strong></"
-#~ "td>\n"
-#~ "                        <td>&nbsp;Zoom Out</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>&#39;=&#39;</strong></"
-#~ "td>\n"
-#~ "                        <td>&nbsp;Zoom In</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+A</strong></td>\n"
-#~ "                        <td>&nbsp;Select All</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy Obj</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+E</strong></td>\n"
-#~ "                        <td>&nbsp;Open Excellon File</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+G</strong></td>\n"
-#~ "                        <td>&nbsp;Open Gerber File</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+N</strong></td>\n"
-#~ "                        <td>&nbsp;New Project</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+M</strong></td>\n"
-#~ "                        <td>&nbsp;Measurement Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+O</strong></td>\n"
-#~ "                        <td>&nbsp;Open Project</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+S</strong></td>\n"
-#~ "                        <td>&nbsp;Save Project As</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+F10</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle Plot Area</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy Obj_Name</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+E</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle Code Editor</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+G</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle the axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+P</strong></td>\n"
-#~ "                        <td>&nbsp;Open Preferences Window</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+R</strong></td>\n"
-#~ "                        <td>&nbsp;Rotate by 90 degree CCW</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+S</strong></td>\n"
-#~ "                        <td>&nbsp;Run a Script</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+W</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle the workspace</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+X</strong></td>\n"
-#~ "                        <td>&nbsp;Skew on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+Y</strong></td>\n"
-#~ "                        <td>&nbsp;Skew on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+C</strong></td>\n"
-#~ "                        <td>&nbsp;Calculators Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+D</strong></td>\n"
-#~ "                        <td>&nbsp;2-Sided PCB Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+K</strong></td>\n"
-#~ "                        <td>&nbsp;Solder Paste Dispensing Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+L</strong></td>\n"
-#~ "                        <td>&nbsp;Film PCB Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+N</strong></td>\n"
-#~ "                        <td>&nbsp;Non-Copper Clearing Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+P</strong></td>\n"
-#~ "                        <td>&nbsp;Paint Area Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+Q</strong></td>\n"
-#~ "                        <td>&nbsp;PDF Import Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+R</strong></td>\n"
-#~ "                        <td>&nbsp;Transformations Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+S</strong></td>\n"
-#~ "                        <td>&nbsp;View File Source</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+U</strong></td>\n"
-#~ "                        <td>&nbsp;Cutout PCB Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+1</strong></td>\n"
-#~ "                        <td>&nbsp;Enable all Plots</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+2</strong></td>\n"
-#~ "                        <td>&nbsp;Disable all Plots</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+3</strong></td>\n"
-#~ "                        <td>&nbsp;Disable Non-selected Plots</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+F10</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle Full Screen</td>\n"
-#~ "                    </tr>                 \n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+Alt+X</strong></"
-#~ "td>\n"
-#~ "                        <td>&nbsp;Abort current task (gracefully)</td>\n"
-#~ "                    </tr>                    \n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>F1</strong></td>\n"
-#~ "                        <td>&nbsp;Open Online Manual</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>F4</strong></td>\n"
-#~ "                        <td>&nbsp;Open Online Tutorials</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Delete Object</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Alternate: Delete Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>'`'</strong></td>\n"
-#~ "                        <td>&nbsp;(left to Key_1)Toogle Notebook Area "
-#~ "(Left Side)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>SPACE</strong></td>\n"
-#~ "                        <td>&nbsp;En(Dis)able Obj Plot</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Escape</strong></td>\n"
-#~ "                        <td>&nbsp;Deselects all objects</td>\n"
-#~ "                    </tr>\n"
-#~ "                </tbody>\n"
-#~ "            </table>\n"
-#~ "    \n"
-#~ "            "
-
-#~ msgid ""
-#~ "<b>Editor Shortcut list</b><br>\n"
-#~ "            <br>\n"
-#~ "            <strong><span style=\"color:#0000ff\">GEOMETRY EDITOR</span></"
-#~ "strong><br>\n"
-#~ "    \n"
-#~ "            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style="
-#~ "\"width:283px\">\n"
-#~ "                <tbody>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>A</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Draw an Arc</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>B</strong></td>\n"
-#~ "                        <td>&nbsp;Buffer Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy Geo Item</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>D</strong></td>\n"
-#~ "                        <td>&nbsp;Within Add Arc will toogle the ARC "
-#~ "direction: CW or CCW</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>E</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Intersection Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>I</strong></td>\n"
-#~ "                        <td>&nbsp;Paint Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>J</strong></td>\n"
-#~ "                        <td>&nbsp;Jump to Location (x, y)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>K</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle Corner Snap</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Move Geo Item</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Within Add Arc will cycle through the "
-#~ "ARC modes</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>N</strong></td>\n"
-#~ "                        <td>&nbsp;Draw a Polygon</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>O</strong></td>\n"
-#~ "                        <td>&nbsp;Draw a Circle</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>P</strong></td>\n"
-#~ "                        <td>&nbsp;Draw a Path</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>R</strong></td>\n"
-#~ "                        <td>&nbsp;Draw Rectangle</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>S</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Substraction Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Add Text Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>U</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Union Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>X</strong></td>\n"
-#~ "                        <td>&nbsp;Flip shape on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Y</strong></td>\n"
-#~ "                        <td>&nbsp;Flip shape on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+X</strong></td>\n"
-#~ "                        <td>&nbsp;Skew shape on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+Y</strong></td>\n"
-#~ "                        <td>&nbsp;Skew shape on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+R</strong></td>\n"
-#~ "                        <td>&nbsp;Editor Transformation Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+X</strong></td>\n"
-#~ "                        <td>&nbsp;Offset shape on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+Y</strong></td>\n"
-#~ "                        <td>&nbsp;Offset shape on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+M</strong></td>\n"
-#~ "                        <td>&nbsp;Measurement Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+S</strong></td>\n"
-#~ "                        <td>&nbsp;Save Object and Exit Editor</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+X</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Cut Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Space</strong></td>\n"
-#~ "                        <td>&nbsp;Rotate Geometry</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ENTER</strong></td>\n"
-#~ "                        <td>&nbsp;Finish drawing for certain tools</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ESC</strong></td>\n"
-#~ "                        <td>&nbsp;Abort and return to Select</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Delete Shape</td>\n"
-#~ "                    </tr>\n"
-#~ "                </tbody>\n"
-#~ "            </table>\n"
-#~ "            <br>\n"
-#~ "            <br>\n"
-#~ "            <strong><span style=\"color:#ff0000\">EXCELLON EDITOR</span></"
-#~ "strong><br>\n"
-#~ "            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style="
-#~ "\"width:283px\">\n"
-#~ "                <tbody>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>A</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Add Drill Array</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>D</strong></td>\n"
-#~ "                        <td>&nbsp;Add Drill</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>J</strong></td>\n"
-#~ "                        <td>&nbsp;Jump to Location (x, y)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Move Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>Q</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Add Slot Array</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>R</strong></td>\n"
-#~ "                        <td>&nbsp;Resize Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Add a new Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>W</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Add Slot</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Delete Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Alternate: Delete Tool(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ESC</strong></td>\n"
-#~ "                        <td>&nbsp;Abort and return to Select</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+S</strong></td>\n"
-#~ "                        <td>&nbsp;Save Object and Exit Editor</td>\n"
-#~ "                    </tr>\n"
-#~ "                </tbody>\n"
-#~ "            </table>\n"
-#~ "            <br>\n"
-#~ "            <br>\n"
-#~ "            <strong><span style=\"color:#00ff00\">GERBER EDITOR</span></"
-#~ "strong><br>\n"
-#~ "            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style="
-#~ "\"width:283px\">\n"
-#~ "                <tbody>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>A</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Add Pad Array</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>B</strong></td>\n"
-#~ "                        <td>&nbsp;Buffer</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>D</strong></td>\n"
-#~ "                        <td>&nbsp;Add Disc</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>E</strong></td>\n"
-#~ "                        <td>&nbsp;Add SemiDisc</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>J</strong></td>\n"
-#~ "                        <td>&nbsp;Jump to Location (x, y)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Move</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>N</strong></td>\n"
-#~ "                        <td>&nbsp;Add Region</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>P</strong></td>\n"
-#~ "                        <td>&nbsp;Add Pad</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>R</strong></td>\n"
-#~ "                        <td>&nbsp;Within Track & Region Tools will cycle "
-#~ "in REVERSE the bend modes</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>S</strong></td>\n"
-#~ "                        <td>&nbsp;Scale</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Add Track</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Within Track & Region Tools will cycle "
-#~ "FORWARD the bend modes</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Delete</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Alternate: Delete Apertures</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ESC</strong></td>\n"
-#~ "                        <td>&nbsp;Abort and return to Select</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+E</strong></td>\n"
-#~ "                        <td>&nbsp;Eraser Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+S</strong></td>\n"
-#~ "                        <td>&nbsp;Save Object and Exit Editor</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                     <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+A</strong></td>\n"
-#~ "                        <td>&nbsp;Mark Area Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+N</strong></td>\n"
-#~ "                        <td>&nbsp;Poligonize Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+R</strong></td>\n"
-#~ "                        <td>&nbsp;Transformation Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                </tbody>\n"
-#~ "            </table>\n"
-#~ "                    "
-#~ msgstr ""
-#~ "<b>Editor Shortcut list</b><br>\n"
-#~ "            <br>\n"
-#~ "            <strong><span style=\"color:#0000ff\">GEOMETRY EDITOR</span></"
-#~ "strong><br>\n"
-#~ "    \n"
-#~ "            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style="
-#~ "\"width:283px\">\n"
-#~ "                <tbody>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>A</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Draw an Arc</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>B</strong></td>\n"
-#~ "                        <td>&nbsp;Buffer Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy Geo Item</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>D</strong></td>\n"
-#~ "                        <td>&nbsp;Within Add Arc will toogle the ARC "
-#~ "direction: CW or CCW</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>E</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Intersection Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>I</strong></td>\n"
-#~ "                        <td>&nbsp;Paint Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>J</strong></td>\n"
-#~ "                        <td>&nbsp;Jump to Location (x, y)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>K</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle Corner Snap</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Move Geo Item</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Within Add Arc will cycle through the "
-#~ "ARC modes</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>N</strong></td>\n"
-#~ "                        <td>&nbsp;Draw a Polygon</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>O</strong></td>\n"
-#~ "                        <td>&nbsp;Draw a Circle</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>P</strong></td>\n"
-#~ "                        <td>&nbsp;Draw a Path</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>R</strong></td>\n"
-#~ "                        <td>&nbsp;Draw Rectangle</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>S</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Substraction Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Add Text Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>U</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Union Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>X</strong></td>\n"
-#~ "                        <td>&nbsp;Flip shape on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Y</strong></td>\n"
-#~ "                        <td>&nbsp;Flip shape on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+X</strong></td>\n"
-#~ "                        <td>&nbsp;Skew shape on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+Y</strong></td>\n"
-#~ "                        <td>&nbsp;Skew shape on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+R</strong></td>\n"
-#~ "                        <td>&nbsp;Editor Transformation Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+X</strong></td>\n"
-#~ "                        <td>&nbsp;Offset shape on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+Y</strong></td>\n"
-#~ "                        <td>&nbsp;Offset shape on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+M</strong></td>\n"
-#~ "                        <td>&nbsp;Measurement Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+S</strong></td>\n"
-#~ "                        <td>&nbsp;Save Object and Exit Editor</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+X</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Cut Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Space</strong></td>\n"
-#~ "                        <td>&nbsp;Rotate Geometry</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ENTER</strong></td>\n"
-#~ "                        <td>&nbsp;Finish drawing for certain tools</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ESC</strong></td>\n"
-#~ "                        <td>&nbsp;Abort and return to Select</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Delete Shape</td>\n"
-#~ "                    </tr>\n"
-#~ "                </tbody>\n"
-#~ "            </table>\n"
-#~ "            <br>\n"
-#~ "            <br>\n"
-#~ "            <strong><span style=\"color:#ff0000\">EXCELLON EDITOR</span></"
-#~ "strong><br>\n"
-#~ "            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style="
-#~ "\"width:283px\">\n"
-#~ "                <tbody>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>A</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Add Drill Array</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>D</strong></td>\n"
-#~ "                        <td>&nbsp;Add Drill</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>J</strong></td>\n"
-#~ "                        <td>&nbsp;Jump to Location (x, y)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Move Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>Q</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Add Slot Array</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>R</strong></td>\n"
-#~ "                        <td>&nbsp;Resize Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Add a new Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>W</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Add Slot</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Delete Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Alternate: Delete Tool(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ESC</strong></td>\n"
-#~ "                        <td>&nbsp;Abort and return to Select</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+S</strong></td>\n"
-#~ "                        <td>&nbsp;Save Object and Exit Editor</td>\n"
-#~ "                    </tr>\n"
-#~ "                </tbody>\n"
-#~ "            </table>\n"
-#~ "            <br>\n"
-#~ "            <br>\n"
-#~ "            <strong><span style=\"color:#00ff00\">GERBER EDITOR</span></"
-#~ "strong><br>\n"
-#~ "            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style="
-#~ "\"width:283px\">\n"
-#~ "                <tbody>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>A</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Add Pad Array</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>B</strong></td>\n"
-#~ "                        <td>&nbsp;Buffer</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>D</strong></td>\n"
-#~ "                        <td>&nbsp;Add Disc</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>E</strong></td>\n"
-#~ "                        <td>&nbsp;Add SemiDisc</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>J</strong></td>\n"
-#~ "                        <td>&nbsp;Jump to Location (x, y)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Move</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>N</strong></td>\n"
-#~ "                        <td>&nbsp;Add Region</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>P</strong></td>\n"
-#~ "                        <td>&nbsp;Add Pad</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>R</strong></td>\n"
-#~ "                        <td>&nbsp;Within Track & Region Tools will cycle "
-#~ "in REVERSE the bend modes</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>S</strong></td>\n"
-#~ "                        <td>&nbsp;Scale</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Add Track</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Within Track & Region Tools will cycle "
-#~ "FORWARD the bend modes</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Delete</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Alternate: Delete Apertures</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ESC</strong></td>\n"
-#~ "                        <td>&nbsp;Abort and return to Select</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+E</strong></td>\n"
-#~ "                        <td>&nbsp;Eraser Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+S</strong></td>\n"
-#~ "                        <td>&nbsp;Save Object and Exit Editor</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                     <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+A</strong></td>\n"
-#~ "                        <td>&nbsp;Mark Area Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+N</strong></td>\n"
-#~ "                        <td>&nbsp;Poligonize Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+R</strong></td>\n"
-#~ "                        <td>&nbsp;Transformation Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                </tbody>\n"
-#~ "            </table>\n"
-#~ "                    "
-
-#~ msgid "[success] Done."
-#~ msgstr "[success] Done."
-
-#~ msgid "[WARNING_NOTCL] Cancelled."
-#~ msgstr "[WARNING_NOTCL] Cancelled."
-
-#~ msgid "[success] Added new tool with dia: {dia} {units}"
-#~ msgstr "[success] Added new tool with dia: {dia} {units}"
-
-#~ msgid "[WARNING_NOTCL] Application is saving the project. Please wait ..."
-#~ msgstr "[WARNING_NOTCL] Application is saving the project. Please wait ..."
-
-#~ msgid "<b>%s:</b>"
-#~ msgstr "<b>%s:</b>"
-
-#~ msgid "%s:"
-#~ msgstr "%s:"
-
-#~| msgid "[ERROR_NOTCL] Object not found: %s"
-#~ msgid "Object not found: %s"
-#~ msgstr "Object not found: %s"
-
-#~ msgid "[success] Opened: %s"
-#~ msgstr "[success] Opened: %s"
-
-#~ msgid "[success] Paint All Done."
-#~ msgstr "[success] Paint All Done."
-
-#~| msgid ""
-#~| "[ERROR] Could not do Paint All. Try a different combination of "
-#~| "parameters. Or a different Method of paint\n"
-#~| "%s"
-#~ msgid ""
-#~ "Could not do Paint All. Try a different combination of parameters. Or a "
-#~ "different Method of paint\n"
-#~ "%s"
-#~ msgstr ""
-#~ "Could not do Paint All. Try a different combination of parameters. Or a "
-#~ "different Method of paint\n"
-#~ "%s"
-
-#~| msgid "[success] Paint All Done."
-#~ msgid "[success] Paint Area Done."
-#~ msgstr "[success] Paint Area Done."
-
-#~ msgid "...processing... [%s]"
-#~ msgstr "...processing... [%s]"
-
-#~ msgid "Parsing aperture %s geometry ..."
-#~ msgstr "Parsing aperture %s geometry ..."
-
-#~ msgid "[success] Skew on the %s axis done ..."
-#~ msgstr "[success] Skew on the %s axis done ..."
-
-#~ msgid "[ERROR_NOTCL] Could not load defaults file."
-#~ msgstr "[ERROR_NOTCL] Could not load defaults file."
-
-#~ msgid "[ERROR_NOTCL] Failed to parse defaults file."
-#~ msgstr "[ERROR_NOTCL] Failed to parse defaults file."
-
-#~ msgid "[ERROR_NOTCL] An internal error has ocurred. See shell.\n"
-#~ msgstr "[ERROR_NOTCL] An internal error has ocurred. See shell.\n"
-
-#~ msgid "[success] Defaults saved."
-#~ msgstr "[success] Defaults saved."
-
-#~ msgid "[success] Converted units to %s"
-#~ msgstr "[success] Converted units to %s"
-
-#~ msgid "[WARNING_NOTCL] Export Code cancelled."
-#~ msgstr "[WARNING_NOTCL] Export Code cancelled."
-
-#~ msgid "[success] Origin set ..."
-#~ msgstr "[success] Origin set ..."
-
-#~ msgid "[success] Skew on X axis done."
-#~ msgstr "[success] Skew on X axis done."
-
-#~ msgid "[success] Skew on Y axis done."
-#~ msgstr "[success] Skew on Y axis done."
-
-#~ msgid "[success] New Grid added ..."
-#~ msgstr "[success] New Grid added ..."
-
-#~ msgid "[WARNING_NOTCL] Open Gerber cancelled."
-#~ msgstr "[WARNING_NOTCL] Open Gerber cancelled."
-
-#~ msgid "[WARNING_NOTCL] Open G-Code cancelled."
-#~ msgstr "[WARNING_NOTCL] Open G-Code cancelled."
-
-#~ msgid "[WARNING_NOTCL] Open Project cancelled."
-#~ msgstr "[WARNING_NOTCL] Open Project cancelled."
-
-#~ msgid "[WARNING_NOTCL] Open Config cancelled."
-#~ msgstr "[WARNING_NOTCL] Open Config cancelled."
-
-#~ msgid "[WARNING_NOTCL] No object selected."
-#~ msgstr "[WARNING_NOTCL] No object selected."
-
-#~ msgid "[WARNING_NOTCL] Export SVG cancelled."
-#~ msgstr "[WARNING_NOTCL] Export SVG cancelled."
-
-#~ msgid "[WARNING_NOTCL] Export Excellon cancelled."
-#~ msgstr "[WARNING_NOTCL] Export Excellon cancelled."
-
-#~ msgid "[WARNING_NOTCL] Export Gerber cancelled."
-#~ msgstr "[WARNING_NOTCL] Export Gerber cancelled."
-
-#~ msgid "[WARNING_NOTCL] Export DXF cancelled."
-#~ msgstr "[WARNING_NOTCL] Export DXF cancelled."
-
-#~ msgid "[WARNING_NOTCL] Open SVG cancelled."
-#~ msgstr "[WARNING_NOTCL] Open SVG cancelled."
-
-#~ msgid "[WARNING_NOTCL] Open DXF cancelled."
-#~ msgstr "[WARNING_NOTCL] Open DXF cancelled."
-
-#~ msgid "[WARNING_NOTCL] No object Box. Using instead %s"
-#~ msgstr "[WARNING_NOTCL] No object Box. Using instead %s"
-
-#~ msgid "[ERROR_NOTCL] Failed to parse file: {name}. {error}"
-#~ msgstr "[ERROR_NOTCL] Failed to parse file: {name}. {error}"
-
-#~ msgid "[ERROR_NOTCL] An internal error has occurred. See shell.\n"
-#~ msgstr "[ERROR_NOTCL] An internal error has occurred. See shell.\n"
-
-#~ msgid "[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it."
-#~ msgstr "[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it."
-
-#~ msgid ""
-#~ "[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it."
-#~ msgstr ""
-#~ "[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it."
-
-#~ msgid "[ERROR_NOTCL] Failed to save project file: %s. Retry to save it."
-#~ msgstr "[ERROR_NOTCL] Failed to save project file: %s. Retry to save it."
-
-#~ msgid "[ERROR_NOTCL] Wrong value format entered, use a number."
-#~ msgstr "[ERROR_NOTCL] Wrong value format entered, use a number."
-
-#~ msgid "[ERROR_NOTCL] Cancelled. Empty file, it has no geometry..."
-#~ msgstr "[ERROR_NOTCL] Cancelled. Empty file, it has no geometry..."
-
-#~ msgid "[WARNING_NOTCL] Export Machine Code cancelled ..."
-#~ msgstr "[WARNING_NOTCL] Export Machine Code cancelled ..."
-
-#~ msgid "[WARNING_NOTCL] No such file or directory"
-#~ msgstr "[WARNING_NOTCL] No such file or directory"
-
-#~ msgid "[ERROR_NOTCL] The value is mistyped. Check the value. %s"
-#~ msgstr "[ERROR_NOTCL] The value is mistyped. Check the value. %s"
-
-#~ msgid "[ERROR_NOTCL] Cancelled."
-#~ msgstr "[ERROR_NOTCL] Cancelled."
-
-#~ msgid "Nr of drills:"
-#~ msgstr "Nr of drills:"
-
-#~ msgid "Direction:"
-#~ msgstr "Direction:"
-
-#~ msgid "Pitch:"
-#~ msgstr "Pitch:"
-
-#~ msgid "Length:"
-#~ msgstr "Length:"
-
-#~ msgid "[success] Deleted tool with dia: {del_dia} {units}"
-#~ msgstr "[success] Deleted tool with dia: {del_dia} {units}"
-
-#~ msgid "Tool dia:"
-#~ msgstr "Tool dia:"
-
-#~ msgid "Overlap Rate:"
-#~ msgstr "Overlap Rate:"
-
-#~ msgid "Method:"
-#~ msgstr "Method:"
-
-#~ msgid "[ERROR_NOTCL] Wrong value format entered for Rotate, use a number."
-#~ msgstr "[ERROR_NOTCL] Wrong value format entered for Rotate, use a number."
-
-#~ msgid "[ERROR_NOTCL] Wrong value format entered for Skew X, use a number."
-#~ msgstr "[ERROR_NOTCL] Wrong value format entered for Skew X, use a number."
-
-#~ msgid "[ERROR_NOTCL] Wrong value format entered for Skew Y, use a number."
-#~ msgstr "[ERROR_NOTCL] Wrong value format entered for Skew Y, use a number."
-
-#~ msgid "[ERROR_NOTCL] Wrong value format entered for Scale X, use a number."
-#~ msgstr "[ERROR_NOTCL] Wrong value format entered for Scale X, use a number."
-
-#~ msgid "[ERROR_NOTCL] Wrong value format entered for Scale Y, use a number."
-#~ msgstr "[ERROR_NOTCL] Wrong value format entered for Scale Y, use a number."
-
-#~ msgid "[ERROR_NOTCL] Wrong value format entered for Offset X, use a number."
-#~ msgstr ""
-#~ "[ERROR_NOTCL] Wrong value format entered for Offset X, use a number."
-
-#~ msgid "[ERROR_NOTCL] Wrong value format entered for Offset Y, use a number."
-#~ msgstr ""
-#~ "[ERROR_NOTCL] Wrong value format entered for Offset Y, use a number."
-
-#~ msgid "[success] Flip on the Y axis done ..."
-#~ msgstr "[success] Flip on the Y axis done ..."
-
-#~ msgid "[success] Flip on the X axis done ..."
-#~ msgstr "[success] Flip on the X axis done ..."
-
-#~ msgid "[success] Offset on the %s axis done ..."
-#~ msgstr "[success] Offset on the %s axis done ..."
-
-#~ msgid ""
-#~ "[WARNING_NOTCL] Editing MultiGeo Geometry, tool: {tool} with diameter: "
-#~ "{dia}"
-#~ msgstr ""
-#~ "[WARNING_NOTCL] Editing MultiGeo Geometry, tool: {tool} with diameter: "
-#~ "{dia}"
-
-#~ msgid "Clear GUI Settings:"
-#~ msgstr "Clear GUI Settings:"
-
-#~ msgid "Duration:"
-#~ msgstr "Duration:"
-
-#~ msgid "Fast Plunge:"
-#~ msgstr "Fast Plunge:"
-
-#~ msgid "Linear Dir.:"
-#~ msgstr "Linear Dir.:"
-
-#~ msgid "Plot kind:"
-#~ msgstr "Plot kind:"
-
-#~ msgid ""
-#~ "Select from the Tools Table above\n"
-#~ "the tools you want to include."
-#~ msgstr ""
-#~ "Select from the Tools Table above\n"
-#~ "the tools you want to include."
-
-#~ msgid ""
-#~ "[WARNING_NOTCL] Tool Diameter is zero value. Change it to a positive real "
-#~ "number."
-#~ msgstr ""
-#~ "[WARNING_NOTCL] Tool Diameter is zero value. Change it to a positive real "
-#~ "number."
-
-#~ msgid "[success] Gerber %s was mirrored..."
-#~ msgstr "[success] Gerber %s was mirrored..."
-
-#~ msgid "[success] Excellon %s was mirrored..."
-#~ msgstr "[success] Excellon %s was mirrored..."
-
-#~ msgid "[success] Geometry %s was mirrored..."
-#~ msgstr "[success] Geometry %s was mirrored..."
-
-#~ msgid "[WARNING_NOTCL] No object(s) selected."
-#~ msgstr "[WARNING_NOTCL] No object(s) selected."
-
-#~ msgid "[success] %s object was moved ..."
-#~ msgstr "[success] %s object was moved ..."
-
-#~ msgid "[WARNING_NOTCL] Object(s) not selected"
-#~ msgstr "[WARNING_NOTCL] Object(s) not selected"
-
-#~ msgid "[WARNING_NOTCL] Buffering ..."
-#~ msgstr "[WARNING_NOTCL] Buffering ..."
-
-#~ msgid "[success] Non-Copper Clearing with ToolDia = %s started."
-#~ msgstr "[success] Non-Copper Clearing with ToolDia = %s started."
-
-#~ msgid "[ERROR_NOTCL] NCCTool.clear_non_copper() --> %s"
-#~ msgstr "[ERROR_NOTCL] NCCTool.clear_non_copper() --> %s"
-
-#~ msgid "[success] NCC Tool finished."
-#~ msgstr "[success] NCC Tool finished."
-
-#~ msgid ""
-#~ "[WARNING_NOTCL] NCC Tool finished but some PCB features could not be "
-#~ "cleared. Check the result."
-#~ msgstr ""
-#~ "[WARNING_NOTCL] NCC Tool finished but some PCB features could not be "
-#~ "cleared. Check the result."
-
-#~ msgid "[success] Non-Copper Rest Clearing with ToolDia = %s started."
-#~ msgstr "[success] Non-Copper Rest Clearing with ToolDia = %s started."
-
-#~ msgid "[ERROR_NOTCL] NCCTool.clear_non_copper_rest() --> %s"
-#~ msgstr "[ERROR_NOTCL] NCCTool.clear_non_copper_rest() --> %s"
-
-#~ msgid ""
-#~ "[ERROR_NOTCL] NCC Tool finished but could not clear the object with "
-#~ "current settings."
-#~ msgstr ""
-#~ "[ERROR_NOTCL] NCC Tool finished but could not clear the object with "
-#~ "current settings."
-
-#~ msgid "[WARNING_NOTCL] Open PDF cancelled."
-#~ msgstr "[WARNING_NOTCL] Open PDF cancelled."
-
-#~ msgid "[ERROR_NOTCL] Open PDF file failed."
-#~ msgstr "[ERROR_NOTCL] Open PDF file failed."
-
-#~ msgid "[success] Rendered: %s"
-#~ msgstr "[success] Rendered: %s"
-
-#~ msgid ""
-#~ "How to select the polygons to paint.<BR>Options:<BR>- <B>Single Polygons</"
-#~ "B>: left mouse click on the polygon to be painted.<BR>- <B>Area "
-#~ "Selection</B>: left mouse click to start selection of the area to be "
-#~ "painted.<BR>- <B>All Polygons</B>: paint all polygons.<BR>- <B>Reference "
-#~ "Object</B>: paint an area described by an external reference object."
-#~ msgstr ""
-#~ "How to select the polygons to paint.<BR>Options:<BR>- <B>Single Polygons</"
-#~ "B>: left mouse click on the polygon to be painted.<BR>- <B>Area "
-#~ "Selection</B>: left mouse click to start selection of the area to be "
-#~ "painted.<BR>- <B>All Polygons</B>: paint all polygons.<BR>- <B>Reference "
-#~ "Object</B>: paint an area described by an external reference object."
-
-#~ msgid ""
-#~ "[ERROR_NOTCL] There is no Painting Geometry in the file.\n"
-#~ "Usually it means that the tool diameter is too big for the painted "
-#~ "geometry.\n"
-#~ "Change the painting parameters and try again."
-#~ msgstr ""
-#~ "[ERROR_NOTCL] There is no Painting Geometry in the file.\n"
-#~ "Usually it means that the tool diameter is too big for the painted "
-#~ "geometry.\n"
-#~ "Change the painting parameters and try again."
-
-#~ msgid "[WARNING_NOTCL]No object Box. Using instead %s"
-#~ msgstr "[WARNING_NOTCL]No object Box. Using instead %s"
-
-#~ msgid "[success] Imported: %s"
-#~ msgstr "[success] Imported: %s"
-
-#~ msgid "[ERROR_NOTCL] Generating new object failed."
-#~ msgstr "[ERROR_NOTCL] Generating new object failed."
-
-#~ msgid "[success] Created: %s"
-#~ msgstr "[success] Created: %s"
-
-#~ msgid "[success] Rotate done ..."
-#~ msgstr "[success] Rotate done ..."
-
-#~ msgid ""
-#~ "When choosing the 'Itself' option the non copper clearing extent\n"
-#~ "is based on the object that is copper cleared.\n"
-#~ " Choosing the 'Box' option will do non copper clearing within the box\n"
-#~ "specified by another object different than the one that is copper cleared."
-#~ msgstr ""
-#~ "When choosing the 'Itself' option the non copper clearing extent\n"
-#~ "is based on the object that is copper cleared.\n"
-#~ " Choosing the 'Box' option will do non copper clearing within the box\n"
-#~ "specified by another object different than the one that is copper cleared."
-
-#~ msgid ""
-#~ "How to select the polygons to paint.<BR>Options:<BR>- <B>Single</B>: left "
-#~ "mouse click on the polygon to be painted.<BR>- <B>Area</B>: left mouse "
-#~ "click to start selection of the area to be painted.<BR>- <B>All</B>: "
-#~ "paint all polygons.<BR>- <B>Ref</B>: paint an area described by an "
-#~ "external reference object."
-#~ msgstr ""
-#~ "How to select the polygons to paint.<BR>Options:<BR>- <B>Single</B>: left "
-#~ "mouse click on the polygon to be painted.<BR>- <B>Area</B>: left mouse "
-#~ "click to start selection of the area to be painted.<BR>- <B>All</B>: "
-#~ "paint all polygons.<BR>- <B>Ref</B>: paint an area described by an "
-#~ "external reference object."
-
-#~ msgid "Geometry object to be painted.                        "
-#~ msgstr "Geometry object to be painted.                        "
-
-#~ msgid ""
-#~ "After clicking here, click inside<BR>the polygon you wish to be painted "
-#~ "if <B>Single</B> is selected.<BR>If <B>Area</B> is selected, then the "
-#~ "selection of the area to be painted<BR>will be initiated by a first click "
-#~ "and finished by the second mouse click.<BR>If <B>All</B>  is selected "
-#~ "then the Paint will start after click.<BR>If <B>Ref</B>  is selected then "
-#~ "the Paint will start after click,<BR>and the painted area will be "
-#~ "described by a selected object.<BR>A new Geometry object with the tool "
-#~ "paths will be created."
-#~ msgstr ""
-#~ "After clicking here, click inside<BR>the polygon you wish to be painted "
-#~ "if <B>Single</B> is selected.<BR>If <B>Area</B> is selected, then the "
-#~ "selection of the area to be painted<BR>will be initiated by a first click "
-#~ "and finished by the second mouse click.<BR>If <B>All</B>  is selected "
-#~ "then the Paint will start after click.<BR>If <B>Ref</B>  is selected then "
-#~ "the Paint will start after click,<BR>and the painted area will be "
-#~ "described by a selected object.<BR>A new Geometry object with the tool "
-#~ "paths will be created."
-
-#~ msgid "<b>Apertures:</b>"
-#~ msgstr "<b>Apertures:</b>"
-
-#~ msgid "<b>Languages:</b>"
-#~ msgstr "<b>Languages:</b>"
-
-#~ msgid "Width (# passes):"
-#~ msgstr "Width (# passes):"
-
-#~| msgid "<b>Clear non-copper:</b>"
-#~ msgid "Clear non-copper"
-#~ msgstr "Clear non-copper"
-
-#~ msgid "Rounded corners"
-#~ msgstr "Rounded corners"
-
-#~ msgid ""
-#~ "Creates a Geometry objects with polygons\n"
-#~ "covering the copper-free areas of the PCB."
-#~ msgstr ""
-#~ "Creates a Geometry objects with polygons\n"
-#~ "covering the copper-free areas of the PCB."
-
-#~ msgid "<b>Bounding Box:</b>"
-#~ msgstr "<b>Bounding Box:</b>"
-
-#~ msgid "<b>Units</b>:"
-#~ msgstr "<b>Units</b>:"
-
-#~ msgid "<b>Zeros</b>:"
-#~ msgstr "<b>Zeros</b>:"
-
-#~ msgid "INCH:"
-#~ msgstr "INCH:"
-
-#~ msgid "Tool change:"
-#~ msgstr "Tool change:"
-
-#~ msgid "Toolchange Z position."
-#~ msgstr "Toolchange Z position."
-
-#~ msgid ""
-#~ "Tool speed while drilling\n"
-#~ "(in units per minute)."
-#~ msgstr ""
-#~ "Tool speed while drilling\n"
-#~ "(in units per minute)."
-
-#~ msgid "<b>Gcode:    </b>"
-#~ msgstr "<b>Gcode:    </b>"
-
-#~ msgid "Offset Z:"
-#~ msgstr "Offset Z:"
-
-#~ msgid "<b>Slots:</b>"
-#~ msgstr "<b>Slots:</b>"
-
-#~ msgid "<b>Create CNC Job:</b>"
-#~ msgstr "<b>Create CNC Job:</b>"
-
-#~ msgid "Multidepth"
-#~ msgstr "Multidepth"
-
-#~ msgid "Multidepth usage: True or False."
-#~ msgstr "Multidepth usage: True or False."
-
-#~ msgid ""
-#~ "The preprocessor file that dictates\n"
-#~ "Machine Code output."
-#~ msgstr ""
-#~ "The preprocessor file that dictates\n"
-#~ "Machine Code output."
-
-#~ msgid "Display Annotation:"
-#~ msgstr "Display Annotation:"
-
-#~ msgid ""
-#~ "Type here any G-Code commands you would\n"
-#~ "like to be executed when Toolchange event is encountered.\n"
-#~ "This will constitute a Custom Toolchange GCode,\n"
-#~ "or a Toolchange Macro."
-#~ msgstr ""
-#~ "Type here any G-Code commands you would\n"
-#~ "like to be executed when Toolchange event is encountered.\n"
-#~ "This will constitute a Custom Toolchange GCode,\n"
-#~ "or a Toolchange Macro."
-
-#~ msgid ""
-#~ "If checked, use 'rest machining'.\n"
-#~ "Basically it will clear copper outside PCB features,\n"
-#~ "using the biggest tool and continue with the next tools,\n"
-#~ "from bigger to smaller, to clear areas of copper that\n"
-#~ "could not be cleared by previous tool.\n"
-#~ "If not checked, use the standard algorithm."
-#~ msgstr ""
-#~ "If checked, use 'rest machining'.\n"
-#~ "Basically it will clear copper outside PCB features,\n"
-#~ "using the biggest tool and continue with the next tools,\n"
-#~ "from bigger to smaller, to clear areas of copper that\n"
-#~ "could not be cleared by previous tool.\n"
-#~ "If not checked, use the standard algorithm."
-
-#~ msgid "Offset:"
-#~ msgstr "Offset:"
-
-#~ msgid ""
-#~ "Distance from objects at which\n"
-#~ "to draw the cutout."
-#~ msgstr ""
-#~ "Distance from objects at which\n"
-#~ "to draw the cutout."
-
-#~ msgid ""
-#~ "Size of the gaps in the toolpath\n"
-#~ "that will remain to hold the\n"
-#~ "board in place."
-#~ msgstr ""
-#~ "Size of the gaps in the toolpath\n"
-#~ "that will remain to hold the\n"
-#~ "board in place."
-
-#~ msgid "Create a convex shape surrounding the entire PCB."
-#~ msgstr "Create a convex shape surrounding the entire PCB."
-
-#~ msgid ""
-#~ "The axis should pass through a <b>point</b> or cut\n"
-#~ " a specified <b>box</b> (in a Geometry object) in \n"
-#~ "the middle."
-#~ msgstr ""
-#~ "The axis should pass through a <b>point</b> or cut\n"
-#~ " a specified <b>box</b> (in a Geometry object) in \n"
-#~ "the middle."
-
-#~ msgid "Panel Type:"
-#~ msgstr "Panel Type:"
-
-#~ msgid "Tip angle:"
-#~ msgstr "Tip angle:"
-
-#~ msgid "Angle for rotation. In degrees."
-#~ msgstr "Angle for rotation. In degrees."
-
-#~ msgid "Angle for Skew/Shear on X axis. In degrees."
-#~ msgstr "Angle for Skew/Shear on X axis. In degrees."
-
-#~ msgid "Angle for Skew/Shear on Y axis. In degrees."
-#~ msgstr "Angle for Skew/Shear on Y axis. In degrees."
-
-#~ msgid "XY Toolchange:"
-#~ msgstr "XY Toolchange:"
-
-#~ msgid "PostProcessors:"
-#~ msgstr "PostProcessors:"
-
-#~ msgid "<b>Scale:</b>"
-#~ msgstr "<b>Scale:</b>"
-
-#~ msgid "<b>Offset:</b>"
-#~ msgstr "<b>Offset:</b>"
-
-#~ msgid "<b>Tools Table</b>"
-#~ msgstr "<b>Tools Table</b>"
-
-#~ msgid ""
-#~ "Tool height just before starting the work.\n"
-#~ "Delete the value if you don't need this feature."
-#~ msgstr ""
-#~ "Tool height just before starting the work.\n"
-#~ "Delete the value if you don't need this feature."
-
-#~ msgid ""
-#~ "Z-axis position (height) for\n"
-#~ "the last move."
-#~ msgstr ""
-#~ "Z-axis position (height) for\n"
-#~ "the last move."
-
-#~ msgid ""
-#~ "The json file that dictates\n"
-#~ "gcode output."
-#~ msgstr ""
-#~ "The json file that dictates\n"
-#~ "gcode output."
-
-#~ msgid "<b>Type:    </b>"
-#~ msgstr "<b>Type:    </b>"
-
-#~ msgid "<b>Tool Dia:</b>"
-#~ msgstr "<b>Tool Dia:</b>"
-
-#~ msgid "<b>Tool Data</b>"
-#~ msgstr "<b>Tool Data</b>"
-
-#~ msgid ""
-#~ "This is the height (Z) at which the CNC\n"
-#~ "will go as the last move."
-#~ msgstr ""
-#~ "This is the height (Z) at which the CNC\n"
-#~ "will go as the last move."
-
-#~ msgid "Feed Rate Z (Plunge):"
-#~ msgstr "Feed Rate Z (Plunge):"
-
-#~ msgid ""
-#~ "Cutting speed in the Z\n"
-#~ "plane in units per minute"
-#~ msgstr ""
-#~ "Cutting speed in the Z\n"
-#~ "plane in units per minute"
-
-#~ msgid ""
-#~ "Cutting speed in the XY\n"
-#~ "plane in units per minute\n"
-#~ "(in units per minute).\n"
-#~ "This is for the rapid move G00.\n"
-#~ "It is useful only for Marlin,\n"
-#~ "ignore for any other cases."
-#~ msgstr ""
-#~ "Cutting speed in the XY\n"
-#~ "plane in units per minute\n"
-#~ "(in units per minute).\n"
-#~ "This is for the rapid move G00.\n"
-#~ "It is useful only for Marlin,\n"
-#~ "ignore for any other cases."
-
-#~ msgid "Cut over 1st pt"
-#~ msgstr "Cut over 1st pt"
-
-#~ msgid "<b>Paint Area:</b>"
-#~ msgstr "<b>Paint Area:</b>"
-
-#~ msgid "<b>CNC Tools Table</b>"
-#~ msgstr "<b>CNC Tools Table</b>"
-
-#~ msgid ""
-#~ "This is the diameter of the tool tip.\n"
-#~ "The manufacturer specifies it."
-#~ msgstr ""
-#~ "This is the diameter of the tool tip.\n"
-#~ "The manufacturer specifies it."
-
-#~ msgid "Object:"
-#~ msgstr "Object:"
-
-#~ msgid "Units:"
-#~ msgstr "Units:"
-
-#~ msgid ""
-#~ "- 'Itself': the non copper clearing extent\n"
-#~ "is based on the object that is copper cleared.\n"
-#~ " - 'Box': will do non copper clearing within the box\n"
-#~ "specified by the object selected in the Ref. Object combobox."
-#~ msgstr ""
-#~ "- 'Itself': the non copper clearing extent\n"
-#~ "is based on the object that is copper cleared.\n"
-#~ " - 'Box': will do non copper clearing within the box\n"
-#~ "specified by the object selected in the Ref. Object combobox."
-
-#~ msgid "Geometry:"
-#~ msgstr "Geometry:"
-
-#~ msgid ""
-#~ "Scale the selected object(s)\n"
-#~ "using the Scale Factor X for both axis."
-#~ msgstr ""
-#~ "Scale the selected object(s)\n"
-#~ "using the Scale Factor X for both axis."
-
-#~ msgid "<b>Excellon Format:</b>"
-#~ msgstr "<b>Excellon Format:</b>"
-
-#~ msgid "<b>Tools:</b>"
-#~ msgstr "<b>Tools:</b>"
-
-#~ msgid "<b>Export G-Code:</b>"
-#~ msgstr "<b>Export G-Code:</b>"
-
-#~ msgid "How to select the polygons to paint."
-#~ msgstr "How to select the polygons to paint."
-
-#~ msgid "<b>V-Shape Tool Calculator:</b>"
-#~ msgstr "<b>V-Shape Tool Calculator:</b>"
-
-#~ msgid "<b>ElectroPlating Calculator:</b>"
-#~ msgstr "<b>ElectroPlating Calculator:</b>"
-
-#~ msgid "<b>Name:</b>"
-#~ msgstr "<b>Name:</b>"
-
-#~ msgid "<b>Plot kind:</b>"
-#~ msgstr "<b>Plot kind:</b>"
-
-#~ msgid "<b>Display Annotation:</b>"
-#~ msgstr "<b>Display Annotation:</b>"
-
-#~ msgid "<b>GERBER:</b>"
-#~ msgstr "<b>GERBER:</b>"
-
-#~ msgid "<b>EXCELLON:</b>"
-#~ msgstr "<b>EXCELLON:</b>"
-
-#~ msgid "<b>GEOMETRY</b>:"
-#~ msgstr "<b>GEOMETRY</b>:"
-
-#~ msgid "<b>Panel Type:</b>"
-#~ msgstr "<b>Panel Type:</b>"
-
-#~ msgid "<b>Excellon format:</b>"
-#~ msgstr "<b>Excellon format:</b>"
-
-#~ msgid "<b>Gerber Objects</b>"
-#~ msgstr "<b>Gerber Objects</b>"
-
-#~ msgid "<b>Geometry Objects</b>"
-#~ msgstr "<b>Geometry Objects</b>"
-
-#~ msgid "Save &Defaults"
-#~ msgstr "Save &Defaults"
-
-#~ msgid "Tool dia:                   "
-#~ msgstr "Tool dia:                   "
-
-#~ msgid ""
-#~ "The diameter of the cutting\n"
-#~ "tool.."
-#~ msgstr ""
-#~ "The diameter of the cutting\n"
-#~ "tool.."
-
-#~ msgid "[WARNING_NOTCL] Move cancelled. No shape selected."
-#~ msgstr "[WARNING_NOTCL] Move cancelled. No shape selected."
-
-#~ msgid "Copy as &Geom"
-#~ msgstr "Copy as &Geom"
-
-#~ msgid ""
-#~ "Change the size of the selected apertures.\n"
-#~ "Factor by which to multiply\n"
-#~ "geometric features of this object."
-#~ msgstr ""
-#~ "Change the size of the selected apertures.\n"
-#~ "Factor by which to multiply\n"
-#~ "geometric features of this object."
-
-#~ msgid "Ap. Buffer Factor:"
-#~ msgstr "Ap. Buffer Factor:"
-
-#~ msgid ""
-#~ "Change the size of the selected apertures.\n"
-#~ "Factor by which to expand/shrink\n"
-#~ "geometric features of this object."
-#~ msgstr ""
-#~ "Change the size of the selected apertures.\n"
-#~ "Factor by which to expand/shrink\n"
-#~ "geometric features of this object."
-
-#~ msgid "Out"
-#~ msgstr "Out"
-
-#~ msgid "Pos"
-#~ msgstr "Pos"
-
-#~ msgid "Neg"
-#~ msgstr "Neg"
-
-#~ msgid "Solid   "
-#~ msgstr "Solid   "
-
-#~ msgid "M-Color   "
-#~ msgstr "M-Color   "
-
-#~ msgid "Click on CENTER ..."
-#~ msgstr "Click on CENTER ..."
-
-#~ msgid "[success] Done. Region completed."
-#~ msgstr "[success] Done. Region completed."
-
-#~ msgid "Del Aperture:"
-#~ msgstr "Del Aperture:"
-
-#~ msgid ""
-#~ "Delete a aperture in the aperture list.\n"
-#~ "It will delete also the associated geometry."
-#~ msgstr ""
-#~ "Delete a aperture in the aperture list.\n"
-#~ "It will delete also the associated geometry."
-
-#~ msgid "Save && Close Edit"
-#~ msgstr "Save && Close Edit"
-
-#~ msgid ""
-#~ "<b>Editor Shortcut list</b><br>\n"
-#~ "            <br>\n"
-#~ "            <strong><span style=\"color:#0000ff\">GEOMETRY EDITOR</span></"
-#~ "strong><br>\n"
-#~ "    \n"
-#~ "            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style="
-#~ "\"width:283px\">\n"
-#~ "                <tbody>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>A</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Draw an Arc</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>B</strong></td>\n"
-#~ "                        <td>&nbsp;Buffer Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy Geo Item</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>E</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Intersection Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>I</strong></td>\n"
-#~ "                        <td>&nbsp;Paint Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>J</strong></td>\n"
-#~ "                        <td>&nbsp;Jump to Location (x, y)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>K</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle Corner Snap</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Move Geo Item</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>N</strong></td>\n"
-#~ "                        <td>&nbsp;Draw a Polygon</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>O</strong></td>\n"
-#~ "                        <td>&nbsp;Draw a Circle</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>P</strong></td>\n"
-#~ "                        <td>&nbsp;Draw a Path</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>R</strong></td>\n"
-#~ "                        <td>&nbsp;Draw Rectangle</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>S</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Substraction Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Add Text Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>U</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Union Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>X</strong></td>\n"
-#~ "                        <td>&nbsp;Flip shape on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Y</strong></td>\n"
-#~ "                        <td>&nbsp;Flip shape on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+X</strong></td>\n"
-#~ "                        <td>&nbsp;Skew shape on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+Y</strong></td>\n"
-#~ "                        <td>&nbsp;Skew shape on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+R</strong></td>\n"
-#~ "                        <td>&nbsp;Editor Transformation Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+X</strong></td>\n"
-#~ "                        <td>&nbsp;Offset shape on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+Y</strong></td>\n"
-#~ "                        <td>&nbsp;Offset shape on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+M</strong></td>\n"
-#~ "                        <td>&nbsp;Measurement Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+S</strong></td>\n"
-#~ "                        <td>&nbsp;Save Object and Exit Editor</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+X</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Cut Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Space</strong></td>\n"
-#~ "                        <td>&nbsp;Rotate Geometry</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ENTER</strong></td>\n"
-#~ "                        <td>&nbsp;Finish drawing for certain tools</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ESC</strong></td>\n"
-#~ "                        <td>&nbsp;Abort and return to Select</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Delete Shape</td>\n"
-#~ "                    </tr>\n"
-#~ "                </tbody>\n"
-#~ "            </table>\n"
-#~ "            <br>\n"
-#~ "            <br>\n"
-#~ "            <strong><span style=\"color:#ff0000\">EXCELLON EDITOR</span></"
-#~ "strong><br>\n"
-#~ "            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style="
-#~ "\"width:283px\">\n"
-#~ "                <tbody>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>A</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Add Drill Array</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>D</strong></td>\n"
-#~ "                        <td>&nbsp;Add Drill</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>J</strong></td>\n"
-#~ "                        <td>&nbsp;Jump to Location (x, y)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Move Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>R</strong></td>\n"
-#~ "                        <td>&nbsp;Resize Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Add a new Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Delete Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Alternate: Delete Tool(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ESC</strong></td>\n"
-#~ "                        <td>&nbsp;Abort and return to Select</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+S</strong></td>\n"
-#~ "                        <td>&nbsp;Save Object and Exit Editor</td>\n"
-#~ "                    </tr>\n"
-#~ "                </tbody>\n"
-#~ "            </table>\n"
-#~ "                    "
-#~ msgstr ""
-#~ "<b>Editor Shortcut list</b><br>\n"
-#~ "            <br>\n"
-#~ "            <strong><span style=\"color:#0000ff\">GEOMETRY EDITOR</span></"
-#~ "strong><br>\n"
-#~ "    \n"
-#~ "            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style="
-#~ "\"width:283px\">\n"
-#~ "                <tbody>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>A</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Draw an Arc</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>B</strong></td>\n"
-#~ "                        <td>&nbsp;Buffer Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy Geo Item</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>E</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Intersection Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>I</strong></td>\n"
-#~ "                        <td>&nbsp;Paint Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>J</strong></td>\n"
-#~ "                        <td>&nbsp;Jump to Location (x, y)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>K</strong></td>\n"
-#~ "                        <td>&nbsp;Toggle Corner Snap</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Move Geo Item</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>N</strong></td>\n"
-#~ "                        <td>&nbsp;Draw a Polygon</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>O</strong></td>\n"
-#~ "                        <td>&nbsp;Draw a Circle</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>P</strong></td>\n"
-#~ "                        <td>&nbsp;Draw a Path</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>R</strong></td>\n"
-#~ "                        <td>&nbsp;Draw Rectangle</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>S</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Substraction Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Add Text Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>U</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Union Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>X</strong></td>\n"
-#~ "                        <td>&nbsp;Flip shape on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Y</strong></td>\n"
-#~ "                        <td>&nbsp;Flip shape on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+X</strong></td>\n"
-#~ "                        <td>&nbsp;Skew shape on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Shift+Y</strong></td>\n"
-#~ "                        <td>&nbsp;Skew shape on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+R</strong></td>\n"
-#~ "                        <td>&nbsp;Editor Transformation Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+X</strong></td>\n"
-#~ "                        <td>&nbsp;Offset shape on X axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Alt+Y</strong></td>\n"
-#~ "                        <td>&nbsp;Offset shape on Y axis</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+M</strong></td>\n"
-#~ "                        <td>&nbsp;Measurement Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+S</strong></td>\n"
-#~ "                        <td>&nbsp;Save Object and Exit Editor</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+X</strong></td>\n"
-#~ "                        <td>&nbsp;Polygon Cut Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Space</strong></td>\n"
-#~ "                        <td>&nbsp;Rotate Geometry</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ENTER</strong></td>\n"
-#~ "                        <td>&nbsp;Finish drawing for certain tools</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ESC</strong></td>\n"
-#~ "                        <td>&nbsp;Abort and return to Select</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Delete Shape</td>\n"
-#~ "                    </tr>\n"
-#~ "                </tbody>\n"
-#~ "            </table>\n"
-#~ "            <br>\n"
-#~ "            <br>\n"
-#~ "            <strong><span style=\"color:#ff0000\">EXCELLON EDITOR</span></"
-#~ "strong><br>\n"
-#~ "            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style="
-#~ "\"width:283px\">\n"
-#~ "                <tbody>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\" width=\"89\"><strong>A</"
-#~ "strong></td>\n"
-#~ "                        <td width=\"194\">&nbsp;Add Drill Array</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>C</strong></td>\n"
-#~ "                        <td>&nbsp;Copy Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>D</strong></td>\n"
-#~ "                        <td>&nbsp;Add Drill</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>J</strong></td>\n"
-#~ "                        <td>&nbsp;Jump to Location (x, y)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>M</strong></td>\n"
-#~ "                        <td>&nbsp;Move Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>R</strong></td>\n"
-#~ "                        <td>&nbsp;Resize Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>T</strong></td>\n"
-#~ "                        <td>&nbsp;Add a new Tool</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Delete Drill(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Del</strong></td>\n"
-#~ "                        <td>&nbsp;Alternate: Delete Tool(s)</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\">&nbsp;</td>\n"
-#~ "                        <td>&nbsp;</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>ESC</strong></td>\n"
-#~ "                        <td>&nbsp;Abort and return to Select</td>\n"
-#~ "                    </tr>\n"
-#~ "                    <tr height=\"20\">\n"
-#~ "                        <td height=\"20\"><strong>Ctrl+S</strong></td>\n"
-#~ "                        <td>&nbsp;Save Object and Exit Editor</td>\n"
-#~ "                    </tr>\n"
-#~ "                </tbody>\n"
-#~ "            </table>\n"
-#~ "                    "
-
-#~ msgid "[ERROR_NOTCL]Could not load defaults file."
-#~ msgstr "[ERROR_NOTCL]Could not load defaults file."
-
-#~ msgid ""
-#~ "[ERROR_NOTCL] The aperture scale factor value is missing or wrong format."
-#~ msgstr ""
-#~ "[ERROR_NOTCL] The aperture scale factor value is missing or wrong format."
-
-#~ msgid "[WARNING_NOTCL]Export Machine Code cancelled ..."
-#~ msgstr "[WARNING_NOTCL]Export Machine Code cancelled ..."
-
-#~ msgid "[success] GUI settings deleted ..."
-#~ msgstr "[success] GUI settings deleted ..."
-
-#~ msgid "Buffer Factor:"
-#~ msgstr "Buffer Factor:"
-
-#~ msgid "<b>Generate new Gerber Object:</b>"
-#~ msgstr "<b>Generate new Gerber Object:</b>"
-
-#~ msgid "Will generate a new Gerber object from the changed apertures."
-#~ msgstr "Will generate a new Gerber object from the changed apertures."
-
-#~ msgid ""
-#~ "Will generate a new Gerber object from the changed apertures.\n"
-#~ "This new object can then be isolated etc."
-#~ msgstr ""
-#~ "Will generate a new Gerber object from the changed apertures.\n"
-#~ "This new object can then be isolated etc."
-
-#~ msgid "[success]Offset on the %s axis done ..."
-#~ msgstr "[success]Offset on the %s axis done ..."
-
-#~ msgid ""
-#~ "How much (fraction) of the tool width to overlap each tool pass.\n"
-#~ "Example:\n"
-#~ "A value here of 0.25 means 25\\% from the tool diameter found above.\n"
-#~ "\n"
-#~ "Adjust the value starting with lower values\n"
-#~ "and increasing it if areas that should be painted are still \n"
-#~ "not painted.\n"
-#~ "Lower values = faster processing, faster execution on PCB.\n"
-#~ "Higher values = slow processing and slow execution on CNC\n"
-#~ "due of too many paths."
-#~ msgstr ""
-#~ "How much (fraction) of the tool width to overlap each tool pass.\n"
-#~ "Example:\n"
-#~ "A value here of 0.25 means 25\\% from the tool diameter found above.\n"
-#~ "\n"
-#~ "Adjust the value starting with lower values\n"
-#~ "and increasing it if areas that should be painted are still \n"
-#~ "not painted.\n"
-#~ "Lower values = faster processing, faster execution on PCB.\n"
-#~ "Higher values = slow processing and slow execution on CNC\n"
-#~ "due of too many paths."
-
-#~| msgid "z_toolchange = Z coord for Toolchange"
-#~ msgid "z_move = Z coord for Toolchange"
-#~ msgstr "z_move = Z coord for Toolchange"
-
-#~ msgid "%s/Project_%s"
-#~ msgstr "%s/Project_%s"
-
-#~ msgid "tool_tab"
-#~ msgstr "tool_tab"

BIN
locale/it/LC_MESSAGES/strings.mo


Plik diff jest za duży
+ 312 - 651
locale/it/LC_MESSAGES/strings.po


BIN
locale/pt_BR/LC_MESSAGES/strings.mo


Plik diff jest za duży
+ 317 - 669
locale/pt_BR/LC_MESSAGES/strings.po


BIN
locale/ro/LC_MESSAGES/strings.mo


Plik diff jest za duży
+ 321 - 680
locale/ro/LC_MESSAGES/strings.po


BIN
locale/ru/LC_MESSAGES/strings.mo


Plik diff jest za duży
+ 316 - 668
locale/ru/LC_MESSAGES/strings.po


BIN
locale/tr/LC_MESSAGES/strings.mo


Plik diff jest za duży
+ 305 - 645
locale/tr/LC_MESSAGES/strings.po


Plik diff jest za duży
+ 277 - 522
locale_template/strings.pot


+ 249 - 0
preprocessors/Default_no_M6.py

@@ -0,0 +1,249 @@
+# ##########################################################
+# FlatCAM: 2D Post-processing for Manufacturing            #
+# http://flatcam.org                                       #
+# File Author: Matthieu Berthomé                           #
+# Date: 5/26/2017                                          #
+# MIT Licence                                              #
+# ##########################################################
+
+from appPreProcessor import *
+
+
+class Default_no_M6(PreProc):
+
+    include_header = True
+    coordinate_format = "%.*f"
+    feedrate_format = '%.*f'
+
+    def start_code(self, p):
+        units = ' ' + str(p['units']).lower()
+        coords_xy = p['xy_toolchange']
+        end_coords_xy = p['xy_end']
+        gcode = '(This preprocessor is the default preprocessor used by FlatCAM.)\n'
+        gcode += '(It is made to work with MACH3 compatible motion controllers.)\n\n'
+
+        xmin = '%.*f' % (p.coords_decimals, p['options']['xmin'])
+        xmax = '%.*f' % (p.coords_decimals, p['options']['xmax'])
+        ymin = '%.*f' % (p.coords_decimals, p['options']['ymin'])
+        ymax = '%.*f' % (p.coords_decimals, p['options']['ymax'])
+
+        if str(p['options']['type']) == 'Geometry':
+            gcode += '(TOOL DIAMETER: ' + str(p['options']['tool_dia']) + units + ')\n'
+            gcode += '(Feedrate_XY: ' + str(p['feedrate']) + units + '/min' + ')\n'
+            gcode += '(Feedrate_Z: ' + str(p['z_feedrate']) + units + '/min' + ')\n'
+            gcode += '(Feedrate rapids ' + str(p['feedrate_rapid']) + units + '/min' + ')\n' + '\n'
+            gcode += '(Z_Cut: ' + str(p['z_cut']) + units + ')\n'
+            if p['multidepth'] is True:
+                gcode += '(DepthPerCut: ' + str(p['z_depthpercut']) + units + ' <=>' + \
+                         str(math.ceil(abs(p['z_cut']) / p['z_depthpercut'])) + ' passes' + ')\n'
+            gcode += '(Z_Move: ' + str(p['z_move']) + units + ')\n'
+
+        elif str(p['options']['type']) == 'Excellon' and p['use_ui'] is True:
+            gcode += '\n(TOOLS DIAMETER: )\n'
+            for tool, val in p['exc_tools'].items():
+                gcode += '(Tool: %s -> ' % str(tool) + 'Dia: %s' % str(val["tooldia"]) + ')\n'
+
+            gcode += '\n(FEEDRATE Z: )\n'
+            for tool, val in p['exc_tools'].items():
+                gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate: %s' % \
+                         str(val['data']["tools_drill_feedrate_z"]) + ')\n'
+
+            gcode += '\n(FEEDRATE RAPIDS: )\n'
+            for tool, val in p['exc_tools'].items():
+                gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate Rapids: %s' % \
+                         str(val['data']["tools_drill_feedrate_rapid"]) + ')\n'
+
+            gcode += '\n(Z_CUT: )\n'
+            for tool, val in p['exc_tools'].items():
+                gcode += '(Tool: %s -> ' % str(tool) + 'Z_Cut: %s' % str(val['data']["tools_drill_cutz"]) + ')\n'
+
+            gcode += '\n(Tools Offset: )\n'
+            for tool, val in p['exc_cnc_tools'].items():
+                gcode += '(Tool: %s -> ' % str(val['tool']) + 'Offset Z: %s' % \
+                         str(val['data']["tools_drill_offset"]) + ')\n'
+
+            if p['multidepth'] is True:
+                gcode += '\n(DEPTH_PER_CUT: )\n'
+                for tool, val in p['exc_tools'].items():
+                    gcode += '(Tool: %s -> ' % str(tool) + 'DeptPerCut: %s' % \
+                             str(val['data']["tools_drill_depthperpass"]) + ')\n'
+
+            gcode += '\n(Z_MOVE: )\n'
+            for tool, val in p['exc_tools'].items():
+                gcode += '(Tool: %s -> ' % str(tool) + 'Z_Move: %s' % str(val['data']["tools_drill_travelz"]) + ')\n'
+            gcode += '\n'
+
+        if p['toolchange'] is True:
+            gcode += '(Z Toolchange: ' + str(p['z_toolchange']) + units + ')\n'
+
+            if coords_xy is not None:
+                gcode += '(X,Y Toolchange: ' + "%.*f, %.*f" % (p.decimals, coords_xy[0],
+                                                               p.decimals, coords_xy[1]) + units + ')\n'
+            else:
+                gcode += '(X,Y Toolchange: ' + "None" + units + ')\n'
+
+        gcode += '(Z Start: ' + str(p['startz']) + units + ')\n'
+        gcode += '(Z End: ' + str(p['z_end']) + units + ')\n'
+        if end_coords_xy is not None:
+            gcode += '(X,Y End: ' + "%.*f, %.*f" % (p.decimals, end_coords_xy[0],
+                                                    p.decimals, end_coords_xy[1]) + units + ')\n'
+        else:
+            gcode += '(X,Y End: ' + "None" + units + ')\n'
+        gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n'
+
+        if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry':
+            gcode += '(Preprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' + '\n'
+        else:
+            gcode += '(Preprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n'
+
+        gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'
+        gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'
+
+        gcode += '(Spindle Speed: %s RPM)\n' % str(p['spindlespeed'])
+
+        gcode += ('G20\n' if p.units.upper() == 'IN' else 'G21\n')
+        gcode += 'G90\n'
+        gcode += 'G94'
+
+        return gcode
+
+    def startz_code(self, p):
+        if p.startz is not None:
+            return 'G00 Z' + self.coordinate_format % (p.coords_decimals, p.startz)
+        else:
+            return ''
+
+    def lift_code(self, p):
+        return 'G00 Z' + self.coordinate_format % (p.coords_decimals, p.z_move)
+
+    def down_code(self, p):
+        return 'G01 Z' + self.coordinate_format % (p.coords_decimals, p.z_cut)
+
+    def toolchange_code(self, p):
+        z_toolchange = p.z_toolchange
+        toolchangexy = p.xy_toolchange
+        f_plunge = p.f_plunge
+
+        if toolchangexy is not None:
+            x_toolchange = toolchangexy[0]
+            y_toolchange = toolchangexy[1]
+        else:
+            x_toolchange = 0.0
+            y_toolchange = 0.0
+
+        no_drills = 1
+
+        if int(p.tool) == 1 and p.startz is not None:
+            z_toolchange = p.startz
+
+        toolC_formatted = '%.*f' % (p.decimals, p.toolC)
+
+        if str(p['options']['type']) == 'Excellon':
+            for i in p['options']['Tools_in_use']:
+                if i[0] == p.tool:
+                    no_drills = i[2]
+
+            if toolchangexy is not None:
+                gcode = """
+M5
+G00 Z{z_toolchange}
+T{tool}
+G00 X{x_toolchange} Y{y_toolchange}                
+(MSG, Change to Tool Dia = {toolC} ||| Total drills for tool T{tool} = {t_drills})
+M0
+G00 Z{z_toolchange}
+        """.format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
+                   y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
+                   z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
+                   tool=int(p.tool),
+                   t_drills=no_drills,
+                   toolC=toolC_formatted)
+            else:
+                gcode = """
+M5       
+G00 Z{z_toolchange}
+T{tool}
+(MSG, Change to Tool Dia = {toolC} ||| Total drills for tool T{tool} = {t_drills})
+M0
+G00 Z{z_toolchange}
+        """.format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
+                   tool=int(p.tool),
+                   t_drills=no_drills,
+                   toolC=toolC_formatted)
+
+            if f_plunge is True:
+                gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move)
+            return gcode
+
+        else:
+            if toolchangexy is not None:
+                gcode = """
+M5
+G00 Z{z_toolchange}
+G00 X{x_toolchange} Y{y_toolchange}
+T{tool}
+(MSG, Change to Tool Dia = {toolC})
+M0
+G00 Z{z_toolchange}
+        """.format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
+                   y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
+                   z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
+                   tool=int(p.tool),
+                   toolC=toolC_formatted)
+
+            else:
+                gcode = """
+M5
+G00 Z{z_toolchange}
+T{tool}
+(MSG, Change to Tool Dia = {toolC})
+M0
+G00 Z{z_toolchange}
+        """.format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
+                   tool=int(p.tool),
+                   toolC=toolC_formatted)
+
+            if f_plunge is True:
+                gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move)
+            return gcode
+
+    def up_to_zero_code(self, p):
+        return 'G01 Z0'
+
+    def position_code(self, p):
+        return ('X' + self.coordinate_format + ' Y' + self.coordinate_format) % \
+               (p.coords_decimals, p.x, p.coords_decimals, p.y)
+
+    def rapid_code(self, p):
+        return ('G00 ' + self.position_code(p)).format(**p)
+
+    def linear_code(self, p):
+        return ('G01 ' + self.position_code(p)).format(**p)
+
+    def end_code(self, p):
+        end_coords_xy = p['xy_end']
+        gcode = ('G00 Z' + self.feedrate_format % (p.fr_decimals, p.z_end) + "\n")
+
+        if end_coords_xy and end_coords_xy != '':
+            gcode += 'G00 X{x} Y{y}'.format(x=end_coords_xy[0], y=end_coords_xy[1]) + "\n"
+        return gcode
+
+    def feedrate_code(self, p):
+        return 'G01 F' + str(self.feedrate_format % (p.fr_decimals, p.feedrate))
+
+    def z_feedrate_code(self, p):
+        return 'G01 F' + str(self.feedrate_format % (p.fr_decimals, p.z_feedrate))
+
+    def spindle_code(self, p):
+        sdir = {'CW': 'M03', 'CCW': 'M04'}[p.spindledir]
+        if p.spindlespeed:
+            return '%s S%s' % (sdir, str(p.spindlespeed))
+        else:
+            return sdir
+
+    def dwell_code(self, p):
+        if p.dwelltime:
+            return 'G4 P' + str(p.dwelltime)
+
+    def spindle_stop_code(self, p):
+        return 'M05'

+ 251 - 0
preprocessors/GRBL_11_no_M6.py

@@ -0,0 +1,251 @@
+# ##########################################################
+# FlatCAM: 2D Post-processing for Manufacturing            #
+# http://flatcam.org                                       #
+# File Author: Matthieu Berthomé                           #
+# Date: 5/26/2017                                          #
+# MIT Licence                                              #
+# ##########################################################
+
+from appPreProcessor import *
+
+
+class GRBL_11_no_M6(PreProc):
+
+    include_header = True
+    coordinate_format = "%.*f"
+    feedrate_format = '%.*f'
+
+    def start_code(self, p):
+        units = ' ' + str(p['units']).lower()
+        coords_xy = p['xy_toolchange']
+        end_coords_xy = p['xy_end']
+        gcode = '(This preprocessor is used with a motion controller loaded with GRBL firmware.)\n'
+        gcode += '(It is configured to be compatible with almost any version of GRBL firmware.)\n\n'
+
+        xmin = '%.*f' % (p.coords_decimals, p['options']['xmin'])
+        xmax = '%.*f' % (p.coords_decimals, p['options']['xmax'])
+        ymin = '%.*f' % (p.coords_decimals, p['options']['ymin'])
+        ymax = '%.*f' % (p.coords_decimals, p['options']['ymax'])
+
+        if str(p['options']['type']) == 'Geometry':
+            gcode += '(TOOL DIAMETER: ' + str(p['options']['tool_dia']) + units + ')\n'
+            gcode += '(Feedrate_XY: ' + str(p['feedrate']) + units + '/min' + ')\n'
+            gcode += '(Feedrate_Z: ' + str(p['z_feedrate']) + units + '/min' + ')\n'
+            gcode += '(Feedrate rapids ' + str(p['feedrate_rapid']) + units + '/min' + ')\n' + '\n'
+            gcode += '(Z_Cut: ' + str(p['z_cut']) + units + ')\n'
+            if p['multidepth'] is True:
+                gcode += '(DepthPerCut: ' + str(p['z_depthpercut']) + units + ' <=>' + \
+                         str(math.ceil(abs(p['z_cut']) / p['z_depthpercut'])) + ' passes' + ')\n'
+            gcode += '(Z_Move: ' + str(p['z_move']) + units + ')\n'
+
+        elif str(p['options']['type']) == 'Excellon' and p['use_ui'] is True:
+            gcode += '\n(TOOLS DIAMETER: )\n'
+            for tool, val in p['exc_tools'].items():
+                gcode += '(Tool: %s -> ' % str(tool) + 'Dia: %s' % str(val["tooldia"]) + ')\n'
+
+            gcode += '\n(FEEDRATE Z: )\n'
+            for tool, val in p['exc_tools'].items():
+                gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate: %s' % \
+                         str(val['data']["tools_drill_feedrate_z"]) + ')\n'
+
+            gcode += '\n(FEEDRATE RAPIDS: )\n'
+            for tool, val in p['exc_tools'].items():
+                gcode += '(Tool: %s -> ' % str(tool) + 'Feedrate Rapids: %s' % \
+                         str(val['data']["tools_drill_feedrate_rapid"]) + ')\n'
+
+            gcode += '\n(Z_CUT: )\n'
+            for tool, val in p['exc_tools'].items():
+                gcode += '(Tool: %s -> ' % str(tool) + 'Z_Cut: %s' % str(val['data']["tools_drill_cutz"]) + ')\n'
+
+            gcode += '\n(Tools Offset: )\n'
+            for tool, val in p['exc_cnc_tools'].items():
+                gcode += '(Tool: %s -> ' % str(val['tool']) + 'Offset Z: %s' % \
+                         str(val['data']["tools_drill_offset"]) + ')\n'
+
+            if p['multidepth'] is True:
+                gcode += '\n(DEPTH_PER_CUT: )\n'
+                for tool, val in p['exc_tools'].items():
+                    gcode += '(Tool: %s -> ' % str(tool) + 'DeptPerCut: %s' % \
+                             str(val['data']["tools_drill_depthperpass"]) + ')\n'
+
+            gcode += '\n(Z_MOVE: )\n'
+            for tool, val in p['exc_tools'].items():
+                gcode += '(Tool: %s -> ' % str(tool) + 'Z_Move: %s' % str(val['data']["tools_drill_travelz"]) + ')\n'
+            gcode += '\n'
+
+        if p['toolchange'] is True:
+            gcode += '(Z Toolchange: ' + str(p['z_toolchange']) + units + ')\n'
+
+            if coords_xy is not None:
+                gcode += '(X,Y Toolchange: ' + "%.*f, %.*f" % (p.decimals, coords_xy[0],
+                                                               p.decimals, coords_xy[1]) + units + ')\n'
+            else:
+                gcode += '(X,Y Toolchange: ' + "None" + units + ')\n'
+
+        gcode += '(Z Start: ' + str(p['startz']) + units + ')\n'
+        gcode += '(Z End: ' + str(p['z_end']) + units + ')\n'
+        if end_coords_xy is not None:
+            gcode += '(X,Y End: ' + "%.*f, %.*f" % (p.decimals, end_coords_xy[0],
+                                                    p.decimals, end_coords_xy[1]) + units + ')\n'
+        else:
+            gcode += '(X,Y End: ' + "None" + units + ')\n'
+        gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n'
+        gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n'
+
+        if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry':
+            gcode += '(Preprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' + '\n'
+        else:
+            gcode += '(Preprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n'
+
+        gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'
+        gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'
+
+        gcode += '(Spindle Speed: %s RPM)\n' % str(p['spindlespeed'])
+
+        gcode += ('G20' if p.units.upper() == 'IN' else 'G21') + "\n"
+        gcode += 'G90\n'
+        gcode += 'G17\n'
+        gcode += 'G94\n'
+
+        return gcode
+
+    def startz_code(self, p):
+        if p.startz is not None:
+            return 'G00 Z' + self.coordinate_format % (p.coords_decimals, p.startz)
+        else:
+            return ''
+
+    def lift_code(self, p):
+        return 'G00 Z' + self.coordinate_format % (p.coords_decimals, p.z_move)
+
+    def down_code(self, p):
+        return 'G01 Z' + self.coordinate_format % (p.coords_decimals, p.z_cut)
+
+    def toolchange_code(self, p):
+        z_toolchange = p.z_toolchange
+        toolchangexy = p.xy_toolchange
+        f_plunge = p.f_plunge
+
+        if toolchangexy is not None:
+            x_toolchange = toolchangexy[0]
+            y_toolchange = toolchangexy[1]
+        else:
+            x_toolchange = 0.0
+            y_toolchange = 0.0
+
+        no_drills = 1
+
+        if int(p.tool) == 1 and p.startz is not None:
+            z_toolchange = p.startz
+
+        toolC_formatted = '%.*f' % (p.decimals, p.toolC)
+
+        if str(p['options']['type']) == 'Excellon':
+            for i in p['options']['Tools_in_use']:
+                if i[0] == p.tool:
+                    no_drills = i[2]
+
+            if toolchangexy is not None:
+                gcode = """
+M5             
+G00 Z{z_toolchange}
+G00 X{x_toolchange} Y{y_toolchange}                
+T{tool}
+(MSG, Change to Tool Dia = {toolC} ||| Total drills for tool T{tool} = {t_drills})
+M0
+G00 Z{z_toolchange}
+        """.format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
+                   y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
+                   z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
+                   tool=int(p.tool),
+                   t_drills=no_drills,
+                   toolC=toolC_formatted)
+            else:
+                gcode = """
+M5             
+G00 Z{z_toolchange}               
+T{tool}
+(MSG, Change to Tool Dia = {toolC} ||| Total drills for tool T{tool} = {t_drills})
+M0
+G00 Z{z_toolchange}
+        """.format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
+                   tool=int(p.tool),
+                   t_drills=no_drills,
+                   toolC=toolC_formatted)
+
+            if f_plunge is True:
+                gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move)
+            return gcode
+
+        else:
+            if toolchangexy is not None:
+                gcode = """
+M5             
+G00 Z{z_toolchange}
+G00 X{x_toolchange} Y{y_toolchange}                
+T{tool}
+(MSG, Change to Tool Dia = {toolC})
+M0
+G00 Z{z_toolchange}
+        """.format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
+                   y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
+                   z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
+                   tool=int(p.tool),
+                   toolC=toolC_formatted)
+            else:
+                gcode = """
+M5             
+G00 Z{z_toolchange}              
+T{tool}
+(MSG, Change to Tool Dia = {toolC})
+M0
+G00 Z{z_toolchange}
+        """.format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
+                   tool=int(p.tool),
+                   toolC=toolC_formatted)
+
+            if f_plunge is True:
+                gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move)
+            return gcode
+
+    def up_to_zero_code(self, p):
+        return 'G01 Z0'
+
+    def position_code(self, p):
+        return ('X' + self.coordinate_format + ' Y' + self.coordinate_format) % \
+               (p.coords_decimals, p.x, p.coords_decimals, p.y)
+
+    def rapid_code(self, p):
+        return ('G00 ' + self.position_code(p)).format(**p)
+
+    def linear_code(self, p):
+        return ('G01 ' + self.position_code(p)).format(**p) + \
+               ' F' + str(self.feedrate_format % (p.fr_decimals, p.feedrate))
+
+    def end_code(self, p):
+        coords_xy = p['xy_end']
+        gcode = ('G00 Z' + self.feedrate_format % (p.fr_decimals, p.z_end) + "\n")
+
+        if coords_xy and coords_xy != '':
+            gcode += 'G00 X{x} Y{y}'.format(x=coords_xy[0], y=coords_xy[1]) + "\n"
+        return gcode
+
+    def feedrate_code(self, p):
+        return 'G01 F' + str(self.feedrate_format % (p.fr_decimals, p.feedrate))
+
+    def z_feedrate_code(self, p):
+        return 'G01 F' + str(self.feedrate_format % (p.fr_decimals, p.z_feedrate))
+
+    def spindle_code(self, p):
+        sdir = {'CW': 'M03', 'CCW': 'M04'}[p.spindledir]
+        if p.spindlespeed:
+            return '%s S%s' % (sdir, str(p.spindlespeed))
+        else:
+            return sdir
+
+    def dwell_code(self, p):
+        if p.dwelltime:
+            return 'G4 P' + str(p.dwelltime)
+
+    def spindle_stop_code(self, p):
+        return 'M05'

+ 17 - 17
tclCommands/TclCommandCopperClear.py

@@ -103,22 +103,22 @@ class TclCommandCopperClear(TclCommand):
         if 'tooldia' in args:
             tooldia = str(args['tooldia'])
         else:
-            tooldia = self.app.defaults["tools_ncctools"]
+            tooldia = self.app.defaults["tools_ncc_tools"]
 
         if 'overlap' in args:
             overlap = float(args['overlap']) / 100.0
         else:
-            overlap = float(self.app.defaults["tools_nccoverlap"]) / 100.0
+            overlap = float(self.app.defaults["tools_ncc_overlap"]) / 100.0
 
         if 'order' in args:
             order = args['order']
         else:
-            order = str(self.app.defaults["tools_nccorder"])
+            order = str(self.app.defaults["tools_ncc_order"])
 
         if 'margin' in args:
             margin = float(args['margin'])
         else:
-            margin = float(self.app.defaults["tools_nccmargin"])
+            margin = float(self.app.defaults["tools_ncc_margin"])
 
         if 'method' in args:
             method = args['method']
@@ -129,7 +129,7 @@ class TclCommandCopperClear(TclCommand):
             else:
                 method_data = _("Lines")
         else:
-            method = str(self.app.defaults["tools_nccmethod"])
+            method = str(self.app.defaults["tools_ncc_method"])
             method_data = method
             if method == _("Standard"):
                 method = "standard"
@@ -145,7 +145,7 @@ class TclCommandCopperClear(TclCommand):
                 par = args['connect']
             connect = bool(eval(par))
         else:
-            connect = bool(eval(str(self.app.defaults["tools_nccconnect"])))
+            connect = bool(eval(str(self.app.defaults["tools_ncc_connect"])))
 
         if 'contour' in args:
             try:
@@ -154,7 +154,7 @@ class TclCommandCopperClear(TclCommand):
                 par = args['contour']
             contour = bool(eval(par))
         else:
-            contour = bool(eval(str(self.app.defaults["tools_ncccontour"])))
+            contour = bool(eval(str(self.app.defaults["tools_ncc_contour"])))
 
         offset = 0.0
         if 'offset' in args:
@@ -175,7 +175,7 @@ class TclCommandCopperClear(TclCommand):
                 par = args['rest']
             rest = bool(eval(par))
         else:
-            rest = bool(eval(str(self.app.defaults["tools_nccrest"])))
+            rest = bool(eval(str(self.app.defaults["tools_ncc_rest"])))
 
         if 'outname' in args:
             outname = args['outname']
@@ -223,19 +223,19 @@ class TclCommandCopperClear(TclCommand):
             "area_strategy":    self.app.defaults["geometry_area_strategy"],
             "area_overz":       float(self.app.defaults["geometry_area_overz"]),
 
-            "tooldia":              self.app.defaults["tools_painttooldia"],
-            "tools_nccoperation":   self.app.defaults["tools_nccoperation"],
+            "tooldia":              self.app.defaults["tools_paint_tooldia"],
+            "tools_ncc_operation":   self.app.defaults["tools_ncc_operation"],
 
-            "tools_nccmargin":  margin,
-            "tools_nccmethod":  method_data,
-            "tools_nccref":     select,
-            "tools_nccconnect": connect,
-            "tools_ncccontour": contour,
-            "tools_nccoverlap": overlap,
+            "tools_ncc_margin":  margin,
+            "tools_ncc_method":  method_data,
+            "tools_ncc_ref":     select,
+            "tools_ncc_connect": connect,
+            "tools_ncc_contour": contour,
+            "tools_ncc_overlap": overlap,
 
             "tools_ncc_offset_choice":  self.app.defaults["tools_ncc_offset_choice"],
             "tools_ncc_offset_value":   self.app.defaults["tools_ncc_offset_value"],
-            "tools_nccmilling_type":    self.app.defaults["tools_nccmilling_type"]
+            "tools_ncc_milling_type":    self.app.defaults["tools_ncc_milling_type"]
         })
         ncc_tools = {}
 

+ 1 - 1
tclCommands/TclCommandExportDXF.py

@@ -49,4 +49,4 @@ class TclCommandExportDXF(TclCommand):
         """
         if 'filename' not in args:
             args['filename'] = self.app.defaults["global_last_save_folder"] + '/' + args['name']
-        self.app.export_dxf(use_thread=False, local_use=None, **args)
+        self.app.f_handlers.export_dxf(use_thread=False, local_use=None, **args)

+ 1 - 1
tclCommands/TclCommandExportExcellon.py

@@ -49,4 +49,4 @@ class TclCommandExportExcellon(TclCommand):
         """
         if 'filename' not in args:
             args['filename'] = self.app.defaults["global_last_save_folder"] + '/' + args['name']
-        self.app.export_excellon(use_thread=False, **args)
+        self.app.f_handlers.export_excellon(use_thread=False, **args)

+ 1 - 1
tclCommands/TclCommandExportGerber.py

@@ -49,4 +49,4 @@ class TclCommandExportGerber(TclCommand):
         """
         if 'filename' not in args:
             args['filename'] = self.app.defaults["global_last_save_folder"] + '/' + args['name']
-        self.app.export_gerber(use_thread=False,**args)
+        self.app.f_handlers.export_gerber(use_thread=False,**args)

+ 1 - 1
tclCommands/TclCommandExportSVG.py

@@ -52,4 +52,4 @@ class TclCommandExportSVG(TclCommand):
         :return:
         """
 
-        self.app.export_svg(**args)
+        self.app.f_handlers.export_svg(**args)

+ 2 - 0
tclCommands/TclCommandGetSys.py

@@ -57,3 +57,5 @@ class TclCommandGetSys(TclCommand):
 
         if name in self.app.defaults:
             return self.app.defaults[name]
+        else:
+            return "The keyword: %s does not exist as a parameter" % str(name)

+ 1 - 1
tclCommands/TclCommandOpenExcellon.py

@@ -59,4 +59,4 @@ class TclCommandOpenExcellon(TclCommandSignaled):
 
         args['plot'] = False
         args['from_tcl'] = True
-        self.app.open_excellon(filename, **args)
+        self.app.f_handlers.open_excellon(filename, **args)

+ 1 - 1
tclCommands/TclCommandOpenGCode.py

@@ -58,4 +58,4 @@ class TclCommandOpenGCode(TclCommandSignaled):
         #     return "The absolute path to the project file contain spaces which is not allowed.\n" \
         #            "Please enclose the path within quotes."
 
-        self.app.open_gcode(filename, **args)
+        self.app.f_handlers.open_gcode(filename, **args)

+ 1 - 1
tclCommands/TclCommandOpenGerber.py

@@ -62,4 +62,4 @@ class TclCommandOpenGerber(TclCommandSignaled):
 
         args['plot'] = False
         args['from_tcl'] = True
-        self.app.open_gerber(filename, outname, **args)
+        self.app.f_handlers.open_gerber(filename, outname, **args)

+ 1 - 1
tclCommands/TclCommandOpenProject.py

@@ -53,4 +53,4 @@ class TclCommandOpenProject(TclCommandSignaled):
         #     return "The absolute path to the project file contain spaces which is not allowed.\n" \
         #            "Please enclose the path within quotes."
 
-        self.app.open_project(filename, cli=True, plot=False, from_tcl=True)
+        self.app.f_handlers.open_project(filename, cli=True, plot=False, from_tcl=True)

+ 16 - 16
tclCommands/TclCommandPaint.py

@@ -102,22 +102,22 @@ class TclCommandPaint(TclCommand):
         if 'tooldia' in args:
             tooldia = str(args['tooldia'])
         else:
-            tooldia = float(self.app.defaults["tools_paintoverlap"])
+            tooldia = float(self.app.defaults["tools_paint_overlap"])
 
         if 'overlap' in args:
             overlap = float(args['overlap']) / 100.0
         else:
-            overlap = float(self.app.defaults["tools_paintoverlap"]) / 100.0
+            overlap = float(self.app.defaults["tools_paint_overlap"]) / 100.0
 
         if 'order' in args:
             order = args['order']
         else:
-            order = str(self.app.defaults["tools_paintorder"])
+            order = str(self.app.defaults["tools_paint_order"])
 
         if 'offset' in args:
             offset = float(args['offset'])
         else:
-            offset = float(self.app.defaults["tools_paintoffset"])
+            offset = float(self.app.defaults["tools_paint_offset"])
 
         if 'method' in args:
             method = args['method']
@@ -132,7 +132,7 @@ class TclCommandPaint(TclCommand):
             else:
                 method = _("Combo")
         else:
-            method = str(self.app.defaults["tools_paintmethod"])
+            method = str(self.app.defaults["tools_paint_method"])
 
         if 'connect' in args:
             try:
@@ -141,7 +141,7 @@ class TclCommandPaint(TclCommand):
                 par = args['connect']
             connect = bool(eval(par))
         else:
-            connect = bool(eval(str(self.app.defaults["tools_pathconnect"])))
+            connect = bool(eval(str(self.app.defaults["tools_paint_connect"])))
 
         if 'contour' in args:
             try:
@@ -150,7 +150,7 @@ class TclCommandPaint(TclCommand):
                 par = args['contour']
             contour = bool(eval(par))
         else:
-            contour = bool(eval(str(self.app.defaults["tools_paintcontour"])))
+            contour = bool(eval(str(self.app.defaults["tools_paint_contour"])))
 
         if 'outname' in args:
             outname = args['outname']
@@ -175,8 +175,8 @@ class TclCommandPaint(TclCommand):
             "name":                 outname,
             "plot":                 False,
             "cutz":                 self.app.defaults["geometry_cutz"],
-            "vtipdia":              float(self.app.defaults["tools_painttipdia"]),
-            "vtipangle":            float(self.app.defaults["tools_painttipangle"]),
+            "vtipdia":              float(self.app.defaults["tools_paint_tipdia"]),
+            "vtipangle":            float(self.app.defaults["tools_paint_tipangle"]),
             "travelz":              self.app.defaults["geometry_travelz"],
             "feedrate":             self.app.defaults["geometry_feedrate"],
             "feedrate_z":           self.app.defaults["geometry_feedrate_z"],
@@ -202,13 +202,13 @@ class TclCommandPaint(TclCommand):
             "area_strategy":        self.app.defaults["geometry_area_strategy"],
             "area_overz":           float(self.app.defaults["geometry_area_overz"]),
 
-            "tooldia":              self.app.defaults["tools_painttooldia"],
-            "tools_paintoffset":   offset,
-            "tools_paintmethod":    method,
-            "tools_selectmethod":   select,
-            "tools_pathconnect":    connect,
-            "tools_paintcontour":   contour,
-            "tools_paintoverlap":   overlap
+            "tooldia":              self.app.defaults["tools_paint_tooldia"],
+            "tools_paint_offset":   offset,
+            "tools_paint_method":    method,
+            "tools_paint_selectmethod":   select,
+            "tools_paint_connect":    connect,
+            "tools_paint_contour":   contour,
+            "tools_paint_overlap":   overlap
         })
         paint_tools = {}
 

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików