Просмотр исходного кода

- fix app crash for the case that there are no translation files
- fixed some forgotten strings to be prepared for internationalization in ToolCalculators
- fixed Tools menu no longer working due of changes
- added some test translation for the ToolCalculators (in Romanian)
- fixed bug in ToolCutOut where for each tool invocation the signals were reconnected

Marius Stanciu 6 лет назад
Родитель
Сommit
a6e23b28a7

+ 5 - 2
FlatCAMApp.py

@@ -59,10 +59,13 @@ import tclCommands
 
 # from ParseFont import *
 
-from gettext import *
+import gettext
 import FlatCAMTranslation as fcTranslate
-fcTranslate.apply_language('FlatCAMApp')
 
+fcTranslate.apply_language('FlatCAMApp')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 ########################################
 ##                App                 ##

+ 4 - 1
FlatCAMEditor.py

@@ -40,8 +40,11 @@ import freetype as ft
 
 import gettext
 import FlatCAMTranslation as fcTranslate
-fcTranslate.apply_language('FlatCAMEditor')
 
+fcTranslate.apply_language('FlatCAMEditor')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 class BufferSelectionTool(FlatCAMTool):
     """

+ 4 - 1
FlatCAMGUI.py

@@ -21,8 +21,11 @@ from FlatCAMEditor import FCShapeTool
 
 import gettext
 import FlatCAMTranslation as fcTranslate
-fcTranslate.apply_language('FlatCAMGUI')
 
+fcTranslate.apply_language('FlatCAMGUI')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 class FlatCAMGUI(QtWidgets.QMainWindow):
     # Emitted when persistent window geometry needs to be retained

+ 5 - 2
FlatCAMObj.py

@@ -24,8 +24,11 @@ import itertools
 
 import gettext
 import FlatCAMTranslation as fcTranslate
-fcTranslate.apply_language('FlatCAMObj')
 
+fcTranslate.apply_language('FlatCAMObj')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 class ObjectDeleted(Exception):
     # Interrupts plotting process if FlatCAMObj has been deleted
@@ -3176,7 +3179,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
 
         self.ui.plot_cb.stateChanged.connect(self.on_plot_cb_click)
         self.ui.generate_cnc_button.clicked.connect(self.on_generatecnc_button_click)
-        self.ui.paint_tool_button.clicked.connect(self.app.paint_tool.run)
+        self.ui.paint_tool_button.clicked.connect(lambda: self.app.paint_tool.run(toggle=False))
         self.ui.pp_geometry_name_cb.activated.connect(self.on_pp_changed)
 
     def set_tool_offset_visibility(self, current_row):

+ 13 - 2
FlatCAMTool.py

@@ -71,9 +71,9 @@ class FlatCAMTool(QtWidgets.QWidget):
         if separator is True:
             pos.addSeparator()
 
-        self.menuAction.triggered.connect(self.run)
+        self.menuAction.triggered.connect(lambda: self.run(toggle=True))
 
-    def run(self):
+    def run(self, toggle=True):
 
         if self.app.tool_tab_locked is True:
             return
@@ -89,5 +89,16 @@ class FlatCAMTool(QtWidgets.QWidget):
         # Switch notebook to tool page
         self.app.ui.notebook.setCurrentWidget(self.app.ui.tool_tab)
 
+        if toggle:
+            # if the splitter is hidden, display it, else hide it but only if the current widget is the same
+            if self.app.ui.splitter.sizes()[0] == 0:
+                self.app.ui.splitter.setSizes([1, 1])
+            else:
+                try:
+                    if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
+                        self.app.ui.splitter.setSizes([0, 1])
+                except AttributeError:
+                    pass
+
         self.show()
 

+ 4 - 1
ObjectCollection.py

@@ -20,8 +20,11 @@ from PyQt5.QtCore import Qt
 
 import gettext
 import FlatCAMTranslation as fcTranslate
-fcTranslate.apply_language('ObjectCollection')
 
+fcTranslate.apply_language('ObjectCollection')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 class KeySensitiveListView(QtWidgets.QTreeView):
     """

+ 4 - 1
ObjectUI.py

@@ -20,8 +20,11 @@ from camlib import Excellon
 
 import gettext
 import FlatCAMTranslation as fcTranslate
-fcTranslate.apply_language('ObjectUI')
 
+fcTranslate.apply_language('ObjectUI')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 class ObjectUI(QtWidgets.QWidget):
     """

+ 5 - 0
README.md

@@ -14,6 +14,11 @@ CAD program, and create G-Code for Isolation routing.
 - added a fix in the Gerber parser when adding the geometry in the self.apertures dict for the case that the current aperture is None (Allegro does that)
 - finished support for internationalization by adding a set of .po/.mo files for the English language. Unfortunately the final action can be done only when Beta will be out of Beta (no more changes) or when I will decide to stop working on this app.
 - changed the tooltip for 'feedrate_rapids' parameter to point out that this parameter is useful only for the Marlin postprocessor
+- fix app crash for the case that there are no translation files
+- fixed some forgotten strings to be prepared for internationalization in ToolCalculators
+- fixed Tools menu no longer working due of changes
+- added some test translation for the ToolCalculators (in Romanian)
+- fixed bug in ToolCutOut where for each tool invocation the signals were reconnected
 
 8.03.2019
 

+ 4 - 1
camlib.py

@@ -72,8 +72,11 @@ log.addHandler(handler)
 
 import gettext
 import FlatCAMTranslation as fcTranslate
-fcTranslate.apply_language('camlib')
 
+fcTranslate.apply_language('camlib')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 class ParseError(Exception):
     pass

+ 10 - 16
flatcamTools/ToolCalculators.py

@@ -14,7 +14,11 @@ import math
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolCalculators')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class ToolCalculator(FlatCAMTool):
@@ -96,21 +100,21 @@ class ToolCalculator(FlatCAMTool):
         self.tipDia_label.setToolTip(_('This is the diameter of the tool tip.\n'
                                      'The manufacturer specifies it.'))
 
-        self.tipAngle_label = QtWidgets.QLabel("Tip Angle:")
+        self.tipAngle_label = QtWidgets.QLabel(_("Tip Angle:"))
         self.tipAngle_entry = FCEntry()
         # self.tipAngle_entry.setFixedWidth(70)
         self.tipAngle_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
         self.tipAngle_label.setToolTip(_("This is the angle of the tip of the tool.\n"
                                        "It is specified by manufacturer."))
 
-        self.cutDepth_label = QtWidgets.QLabel("Cut Z:")
+        self.cutDepth_label = QtWidgets.QLabel(_("Cut Z:"))
         self.cutDepth_entry = FCEntry()
         # self.cutDepth_entry.setFixedWidth(70)
         self.cutDepth_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
         self.cutDepth_label.setToolTip(_("This is the depth to cut into the material.\n"
                                        "In the CNCJob is the CutZ parameter."))
 
-        self.effectiveToolDia_label = QtWidgets.QLabel("Tool Diameter:")
+        self.effectiveToolDia_label = QtWidgets.QLabel(_("Tool Diameter:"))
         self.effectiveToolDia_entry = FCEntry()
         # self.effectiveToolDia_entry.setFixedWidth(70)
         self.effectiveToolDia_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
@@ -234,21 +238,11 @@ class ToolCalculator(FlatCAMTool):
         self.calculate_plate_button.clicked.connect(self.on_calculate_eplate)
 
 
-    def run(self, toggle=False):
+    def run(self, toggle=True):
         self.app.report_usage("ToolCalculators()")
 
-        if toggle:
-            # if the splitter is hidden, display it, else hide it but only if the current widget is the same
-            if self.app.ui.splitter.sizes()[0] == 0:
-                self.app.ui.splitter.setSizes([1, 1])
-            else:
-                try:
-                    if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
-                        self.app.ui.splitter.setSizes([0, 1])
-                except AttributeError:
-                    pass
-
-        FlatCAMTool.run(self)
+        FlatCAMTool.run(self, toggle=toggle)
+
         self.set_tool_ui()
 
         self.app.ui.notebook.setTabText(2, "Calc. Tool")

+ 14 - 21
flatcamTools/ToolCutOut.py

@@ -5,7 +5,11 @@ from shapely.geometry import box
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolCutOut')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class CutOut(FlatCAMTool):
@@ -262,26 +266,23 @@ class CutOut(FlatCAMTool):
         # true if we want to repeat the gap without clicking again on the button
         self.repeat_gap = False
 
+        ## Signals
+        self.ff_cutout_object_btn.clicked.connect(self.on_freeform_cutout)
+        self.rect_cutout_object_btn.clicked.connect(self.on_rectangular_cutout)
+
+        self.type_obj_combo.currentIndexChanged.connect(self.on_type_obj_index_changed)
+        self.man_geo_creation_btn.clicked.connect(self.on_manual_geo)
+        self.man_gaps_creation_btn.clicked.connect(self.on_manual_gap_click)
+
     def on_type_obj_index_changed(self, index):
         obj_type = self.type_obj_combo.currentIndex()
         self.obj_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
         self.obj_combo.setCurrentIndex(0)
 
-    def run(self, toggle=False):
+    def run(self, toggle=True):
         self.app.report_usage("ToolCutOut()")
 
-        if toggle:
-            # if the splitter is hidden, display it, else hide it but only if the current widget is the same
-            if self.app.ui.splitter.sizes()[0] == 0:
-                self.app.ui.splitter.setSizes([1, 1])
-            else:
-                try:
-                    if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
-                        self.app.ui.splitter.setSizes([0, 1])
-                except AttributeError:
-                    pass
-
-        FlatCAMTool.run(self)
+        FlatCAMTool.run(self, toggle=toggle)
         self.set_tool_ui()
 
         self.app.ui.notebook.setTabText(2, "Cutout Tool")
@@ -297,14 +298,6 @@ class CutOut(FlatCAMTool):
         self.gapsize.set_value(float(self.app.defaults["tools_cutoutgapsize"]))
         self.gaps.set_value(4)
 
-        ## Signals
-        self.ff_cutout_object_btn.clicked.connect(self.on_freeform_cutout)
-        self.rect_cutout_object_btn.clicked.connect(self.on_rectangular_cutout)
-
-        self.type_obj_combo.currentIndexChanged.connect(self.on_type_obj_index_changed)
-        self.man_geo_creation_btn.clicked.connect(self.on_manual_geo)
-        self.man_gaps_creation_btn.clicked.connect(self.on_manual_gap_click)
-
         self.gapFinished.connect(self.on_gap_finished)
 
     def on_freeform_cutout(self):

+ 6 - 13
flatcamTools/ToolDblSided.py

@@ -8,7 +8,11 @@ from PyQt5 import QtCore
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolDblSided')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class DblSidedTool(FlatCAMTool):
@@ -267,21 +271,10 @@ class DblSidedTool(FlatCAMTool):
     def install(self, icon=None, separator=None, **kwargs):
         FlatCAMTool.install(self, icon, separator, shortcut='ALT+D', **kwargs)
 
-    def run(self, toggle=False):
+    def run(self, toggle=True):
         self.app.report_usage("Tool2Sided()")
 
-        if toggle:
-            # if the splitter is hidden, display it, else hide it but only if the current widget is the same
-            if self.app.ui.splitter.sizes()[0] == 0:
-                self.app.ui.splitter.setSizes([1, 1])
-            else:
-                try:
-                    if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
-                        self.app.ui.splitter.setSizes([0, 1])
-                except AttributeError:
-                    pass
-
-        FlatCAMTool.run(self)
+        FlatCAMTool.run(self, toggle=toggle)
         self.set_tool_ui()
 
         self.app.ui.notebook.setTabText(2, _("2-Sided Tool"))

+ 6 - 12
flatcamTools/ToolFilm.py

@@ -13,7 +13,11 @@ from PyQt5 import QtGui, QtCore, QtWidgets
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolFilm')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class Film(FlatCAMTool):
@@ -176,21 +180,11 @@ class Film(FlatCAMTool):
         self.tf_box_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
         self.tf_box_combo.setCurrentIndex(0)
 
-    def run(self, toggle=False):
+    def run(self, toggle=True):
         self.app.report_usage("ToolFilm()")
 
-        if toggle:
-            # if the splitter is hidden, display it, else hide it but only if the current widget is the same
-            if self.app.ui.splitter.sizes()[0] == 0:
-                self.app.ui.splitter.setSizes([1, 1])
-            else:
-                try:
-                    if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
-                        self.app.ui.splitter.setSizes([0, 1])
-                except AttributeError:
-                    pass
+        FlatCAMTool.run(self, toggle=toggle)
 
-        FlatCAMTool.run(self)
         self.set_tool_ui()
 
         self.app.ui.notebook.setTabText(2, _("Film Tool"))

+ 6 - 13
flatcamTools/ToolImage.py

@@ -13,7 +13,11 @@ from PyQt5 import QtGui, QtCore, QtWidgets
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolImage')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class ToolImage(FlatCAMTool):
@@ -143,21 +147,10 @@ class ToolImage(FlatCAMTool):
         ## Signals
         self.import_button.clicked.connect(self.on_file_importimage)
 
-    def run(self, toggle=False):
+    def run(self, toggle=True):
         self.app.report_usage("ToolImage()")
 
-        if toggle:
-            # if the splitter is hidden, display it, else hide it but only if the current widget is the same
-            if self.app.ui.splitter.sizes()[0] == 0:
-                self.app.ui.splitter.setSizes([1, 1])
-            else:
-                try:
-                    if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
-                        self.app.ui.splitter.setSizes([0, 1])
-                except AttributeError:
-                    pass
-
-        FlatCAMTool.run(self)
+        FlatCAMTool.run(self, toggle=toggle)
         self.set_tool_ui()
 
         self.app.ui.notebook.setTabText(2, _("Image Tool"))

+ 5 - 1
flatcamTools/ToolMeasurement.py

@@ -16,7 +16,11 @@ from math import sqrt
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolMeasurement')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class Measurement(FlatCAMTool):
@@ -165,7 +169,7 @@ class Measurement(FlatCAMTool):
 
         self.measure_btn.clicked.connect(self.toggle)
 
-    def run(self):
+    def run(self, toggle):
         self.app.report_usage("ToolMeasurement()")
 
         if self.app.tool_tab_locked is True:

+ 5 - 1
flatcamTools/ToolMove.py

@@ -15,7 +15,11 @@ from copy import copy
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolMove')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class ToolMove(FlatCAMTool):
@@ -45,7 +49,7 @@ class ToolMove(FlatCAMTool):
     def install(self, icon=None, separator=None, **kwargs):
         FlatCAMTool.install(self, icon, separator, shortcut='M', **kwargs)
 
-    def run(self):
+    def run(self, toggle):
         self.app.report_usage("ToolMove()")
 
         if self.app.tool_tab_locked is True:

+ 6 - 12
flatcamTools/ToolNonCopperClear.py

@@ -13,7 +13,11 @@ import time
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolNonCopperClear')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class NonCopperClear(FlatCAMTool, Gerber):
@@ -255,20 +259,10 @@ class NonCopperClear(FlatCAMTool, Gerber):
     def install(self, icon=None, separator=None, **kwargs):
         FlatCAMTool.install(self, icon, separator, shortcut='ALT+N', **kwargs)
 
-    def run(self, toggle=False):
+    def run(self, toggle=True):
         self.app.report_usage("ToolNonCopperClear()")
 
-        if toggle:
-            # if the splitter is hidden, display it, else hide it but only if the current widget is the same
-            if self.app.ui.splitter.sizes()[0] == 0:
-                self.app.ui.splitter.setSizes([1, 1])
-            else:
-                try:
-                    if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
-                        self.app.ui.splitter.setSizes([0, 1])
-                except AttributeError:
-                    pass
-        FlatCAMTool.run(self)
+        FlatCAMTool.run(self, toggle=toggle)
         self.set_tool_ui()
 
         self.build_ui()

+ 6 - 13
flatcamTools/ToolPaint.py

@@ -12,7 +12,11 @@ from ObjectCollection import *
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolPaint')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class ToolPaint(FlatCAMTool, Gerber):
@@ -313,21 +317,10 @@ class ToolPaint(FlatCAMTool, Gerber):
     def install(self, icon=None, separator=None, **kwargs):
         FlatCAMTool.install(self, icon, separator, shortcut='ALT+P', **kwargs)
 
-    def run(self, toggle=False):
+    def run(self, toggle=True):
         self.app.report_usage("ToolPaint()")
 
-        if toggle:
-            # if the splitter is hidden, display it, else hide it but only if the current widget is the same
-            if self.app.ui.splitter.sizes()[0] == 0:
-                self.app.ui.splitter.setSizes([1, 1])
-            else:
-                try:
-                    if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
-                        self.app.ui.splitter.setSizes([0, 1])
-                except AttributeError:
-                    pass
-
-        FlatCAMTool.run(self)
+        FlatCAMTool.run(self, toggle=toggle)
         self.set_tool_ui()
 
         self.app.ui.notebook.setTabText(2, _("Paint Tool"))

+ 6 - 13
flatcamTools/ToolPanelize.py

@@ -13,7 +13,11 @@ import time
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolPanelize')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class Panelize(FlatCAMTool):
@@ -209,21 +213,10 @@ class Panelize(FlatCAMTool):
         # flag to signal the constrain was activated
         self.constrain_flag = False
 
-    def run(self, toggle=False):
+    def run(self, toggle=True):
         self.app.report_usage("ToolPanelize()")
 
-        if toggle:
-            # if the splitter is hidden, display it, else hide it but only if the current widget is the same
-            if self.app.ui.splitter.sizes()[0] == 0:
-                self.app.ui.splitter.setSizes([1, 1])
-            else:
-                try:
-                    if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
-                        self.app.ui.splitter.setSizes([0, 1])
-                except AttributeError:
-                    pass
-
-        FlatCAMTool.run(self)
+        FlatCAMTool.run(self, toggle=toggle)
         self.set_tool_ui()
 
         self.app.ui.notebook.setTabText(2, "Panel. Tool")

+ 6 - 13
flatcamTools/ToolProperties.py

@@ -13,7 +13,11 @@ from FlatCAMObj import *
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolProperties')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class Properties(FlatCAMTool):
@@ -60,25 +64,14 @@ class Properties(FlatCAMTool):
         self.vlay.addWidget(self.treeWidget)
         self.vlay.setStretch(0,0)
 
-    def run(self, toggle=False):
+    def run(self, toggle=True):
         self.app.report_usage("ToolProperties()")
 
         if self.app.tool_tab_locked is True:
             return
         self.set_tool_ui()
 
-        if toggle:
-            # if the splitter is hidden, display it, else hide it but only if the current widget is the same
-            if self.app.ui.splitter.sizes()[0] == 0:
-                self.app.ui.splitter.setSizes([1, 1])
-            else:
-                try:
-                    if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
-                        self.app.ui.splitter.setSizes([0, 1])
-                except AttributeError:
-                    pass
-
-        FlatCAMTool.run(self)
+        FlatCAMTool.run(self, toggle=toggle)
         self.properties()
 
     def install(self, icon=None, separator=None, **kwargs):

+ 4 - 0
flatcamTools/ToolShell.py

@@ -15,7 +15,11 @@ import html
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolShell')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class TermWidget(QWidget):

+ 6 - 13
flatcamTools/ToolSolderPaste.py

@@ -27,7 +27,11 @@ from io import StringIO
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolSolderPaste')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class SolderPaste(FlatCAMTool):
@@ -423,21 +427,10 @@ class SolderPaste(FlatCAMTool):
 
         self.app.object_status_changed.connect(self.update_comboboxes)
 
-    def run(self, toggle=False):
+    def run(self, toggle=True):
         self.app.report_usage("ToolSolderPaste()")
 
-        if toggle:
-            # if the splitter is hidden, display it, else hide it but only if the current widget is the same
-            if self.app.ui.splitter.sizes()[0] == 0:
-                self.app.ui.splitter.setSizes([1, 1])
-            else:
-                try:
-                    if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
-                        self.app.ui.splitter.setSizes([0, 1])
-                except AttributeError:
-                    pass
-
-        FlatCAMTool.run(self)
+        FlatCAMTool.run(self, toggle=toggle)
         self.set_tool_ui()
         self.build_ui()
 

+ 6 - 13
flatcamTools/ToolTransform.py

@@ -14,7 +14,11 @@ from FlatCAMObj import *
 
 import gettext
 import FlatCAMTranslation as fcTranslate
+
 fcTranslate.apply_language('ToolTransform')
+import builtins
+if '_' not in builtins.__dict__:
+    _ = gettext.gettext
 
 
 class ToolTransform(FlatCAMTool):
@@ -374,21 +378,10 @@ class ToolTransform(FlatCAMTool):
         self.offx_entry.returnPressed.connect(self.on_offx)
         self.offy_entry.returnPressed.connect(self.on_offy)
 
-    def run(self, toggle=False):
+    def run(self, toggle=True):
         self.app.report_usage("ToolTransform()")
 
-        if toggle:
-            # if the splitter is hidden, display it, else hide it but only if the current widget is the same
-            if self.app.ui.splitter.sizes()[0] == 0:
-                self.app.ui.splitter.setSizes([1, 1])
-            else:
-                try:
-                    if self.app.ui.tool_scroll_area.widget().objectName() == self.toolName:
-                        self.app.ui.splitter.setSizes([0, 1])
-                except AttributeError:
-                    pass
-                
-        FlatCAMTool.run(self)
+        FlatCAMTool.run(self, toggle=toggle)
         self.set_tool_ui()
 
         self.app.ui.notebook.setTabText(2, _("Transform Tool"))

BIN
locale/en/LC_MESSAGES/ToolCalculators.mo


+ 50 - 38
locale/en/LC_MESSAGES/ToolCalculators.po

@@ -5,8 +5,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"POT-Creation-Date: 2019-03-10 13:01+0200\n"
-"PO-Revision-Date: 2019-03-10 13:21+0200\n"
+"POT-Creation-Date: 2019-03-10 16:22+0200\n"
+"PO-Revision-Date: 2019-03-10 16:24+0200\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -17,35 +17,35 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "Language: en\n"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:14
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:26
 msgid "Calculators"
 msgstr "Calculators"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:15
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:27
 msgid "V-Shape Tool Calculator"
 msgstr "V-Shape Tool Calculator"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:16
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:28
 msgid "Units Calculator"
 msgstr "Units Calculator"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:17
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:29
 msgid "ElectroPlating Calculator"
 msgstr "ElectroPlating Calculator"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:58
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:70
 msgid "Here you enter the value to be converted from INCH to MM"
 msgstr "Here you enter the value to be converted from INCH to MM"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:63
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:75
 msgid "Here you enter the value to be converted from MM to INCH"
 msgstr "Here you enter the value to be converted from MM to INCH"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:84
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:96
 msgid "Tip Diameter:"
 msgstr "Tip Diameter:"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:88
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:100
 msgid ""
 "This is the diameter of the tool tip.\n"
 "The manufacturer specifies it."
@@ -53,7 +53,11 @@ msgstr ""
 "This is the diameter of the tool tip.\n"
 "The manufacturer specifies it."
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:95
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:103
+msgid "Tip Angle:"
+msgstr "Tip Angle:"
+
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:107
 msgid ""
 "This is the angle of the tip of the tool.\n"
 "It is specified by manufacturer."
@@ -61,7 +65,11 @@ msgstr ""
 "This is the angle of the tip of the tool.\n"
 "It is specified by manufacturer."
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:102
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:110
+msgid "Cut Z:"
+msgstr "Cut Z:"
+
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:114
 msgid ""
 "This is the depth to cut into the material.\n"
 "In the CNCJob is the CutZ parameter."
@@ -69,7 +77,11 @@ msgstr ""
 "This is the depth to cut into the material.\n"
 "In the CNCJob is the CutZ parameter."
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:109
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:117
+msgid "Tool Diameter:"
+msgstr "Tool Diameter:"
+
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:121
 msgid ""
 "This is the tool diameter to be entered into\n"
 "FlatCAM Gerber section.\n"
@@ -79,12 +91,12 @@ msgstr ""
 "FlatCAM Gerber section.\n"
 "In the CNCJob section it is called >Tool dia<."
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:121
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:204
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:133
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:216
 msgid "Calculate"
 msgstr "Calculate"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:124
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:136
 msgid ""
 "Calculate either the Cut Z or the effective tool diameter,\n"
 "  depending on which is desired and which is known. "
@@ -92,7 +104,7 @@ msgstr ""
 "Calculate either the Cut Z or the effective tool diameter,\n"
 "  depending on which is desired and which is known. "
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:142
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:154
 msgid ""
 "This calculator is useful for those who plate the via/pad/drill holes,\n"
 "using a method like grahite ink or calcium hypophosphite ink or palladium "
@@ -102,27 +114,27 @@ msgstr ""
 "using a method like grahite ink or calcium hypophosphite ink or palladium "
 "chloride."
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:151
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:163
 msgid "Board Length:"
 msgstr "Board Length:"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:155
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:167
 msgid "This is the board length. In centimeters."
 msgstr "This is the board length. In centimeters."
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:157
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:169
 msgid "Board Width:"
 msgstr "Board Width:"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:161
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:173
 msgid "This is the board width.In centimeters."
 msgstr "This is the board width.In centimeters."
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:163
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:175
 msgid "Current Density:"
 msgstr "Current Density:"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:167
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:179
 msgid ""
 "Current density to pass through the board. \n"
 "In Amps per Square Feet ASF."
@@ -130,11 +142,11 @@ msgstr ""
 "Current density to pass through the board. \n"
 "In Amps per Square Feet ASF."
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:171
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:183
 msgid "Copper Growth:"
 msgstr "Copper Growth:"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:175
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:187
 msgid ""
 "How thick the copper growth is intended to be.\n"
 "In microns."
@@ -142,11 +154,11 @@ msgstr ""
 "How thick the copper growth is intended to be.\n"
 "In microns."
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:180
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:192
 msgid "Current Value:"
 msgstr "Current Value:"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:184
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:196
 msgid ""
 "This is the current intensity value\n"
 "to be set on the Power Supply. In Amps."
@@ -154,11 +166,11 @@ msgstr ""
 "This is the current intensity value\n"
 "to be set on the Power Supply. In Amps."
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:188
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:200
 msgid "Time:"
 msgstr "Time:"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:192
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:204
 msgid ""
 "This is the calculated time required for the procedure.\n"
 "In minutes."
@@ -166,7 +178,7 @@ msgstr ""
 "This is the calculated time required for the procedure.\n"
 "In minutes."
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:207
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:219
 msgid ""
 "Calculate the current intensity value and the procedure time,\n"
 "  depending on the parameters above"
@@ -174,14 +186,14 @@ msgstr ""
 "Calculate the current intensity value and the procedure time,\n"
 "  depending on the parameters above"
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:294
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:305
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:306
 #: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:317
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:332
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:345
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:359
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:370
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:381
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:392
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:329
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:344
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:357
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:371
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:382
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:393
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:404
 msgid "[ERROR_NOTCL]Wrong value format entered, use a number."
 msgstr "[ERROR_NOTCL]Wrong value format entered, use a number."

+ 49 - 37
locale_template/ToolCalculators.pot

@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2019-03-10 13:01+0200\n"
+"POT-Creation-Date: 2019-03-10 16:22+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -15,147 +15,159 @@ msgstr ""
 "Generated-By: pygettext.py 1.5\n"
 
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:14
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:26
 msgid "Calculators"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:15
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:27
 msgid "V-Shape Tool Calculator"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:16
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:28
 msgid "Units Calculator"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:17
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:29
 msgid "ElectroPlating Calculator"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:58
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:70
 msgid "Here you enter the value to be converted from INCH to MM"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:63
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:75
 msgid "Here you enter the value to be converted from MM to INCH"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:84
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:96
 msgid "Tip Diameter:"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:88
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:100
 msgid ""
 "This is the diameter of the tool tip.\n"
 "The manufacturer specifies it."
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:95
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:103
+msgid "Tip Angle:"
+msgstr ""
+
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:107
 msgid ""
 "This is the angle of the tip of the tool.\n"
 "It is specified by manufacturer."
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:102
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:110
+msgid "Cut Z:"
+msgstr ""
+
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:114
 msgid ""
 "This is the depth to cut into the material.\n"
 "In the CNCJob is the CutZ parameter."
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:109
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:117
+msgid "Tool Diameter:"
+msgstr ""
+
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:121
 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 ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:121
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:204
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:133
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:216
 msgid "Calculate"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:124
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:136
 msgid ""
 "Calculate either the Cut Z or the effective tool diameter,\n"
 "  depending on which is desired and which is known. "
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:142
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:154
 msgid ""
 "This calculator is useful for those who plate the via/pad/drill holes,\n"
 "using a method like grahite ink or calcium hypophosphite ink or palladium chloride."
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:151
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:163
 msgid "Board Length:"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:155
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:167
 msgid "This is the board length. In centimeters."
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:157
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:169
 msgid "Board Width:"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:161
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:173
 msgid "This is the board width.In centimeters."
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:163
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:175
 msgid "Current Density:"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:167
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:179
 msgid ""
 "Current density to pass through the board. \n"
 "In Amps per Square Feet ASF."
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:171
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:183
 msgid "Copper Growth:"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:175
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:187
 msgid ""
 "How thick the copper growth is intended to be.\n"
 "In microns."
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:180
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:192
 msgid "Current Value:"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:184
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:196
 msgid ""
 "This is the current intensity value\n"
 "to be set on the Power Supply. In Amps."
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:188
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:200
 msgid "Time:"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:192
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:204
 msgid ""
 "This is the calculated time required for the procedure.\n"
 "In minutes."
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:207
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:219
 msgid ""
 "Calculate the current intensity value and the procedure time,\n"
 "  depending on the parameters above"
 msgstr ""
 
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:294
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:305
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:306
 #: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:317
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:332
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:345
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:359
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:370
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:381
-#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:392
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:329
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:344
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:357
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:371
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:382
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:393
+#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:404
 msgid "[ERROR_NOTCL]Wrong value format entered, use a number."
 msgstr ""