From a59310ab4a35a66d9904847e0a8bfbde424d7be7 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Fri, 13 Nov 2020 20:27:48 +0200 Subject: [PATCH] - Milling Tool - added plot awareness and connection to the Plot button in the tool; updated translation strings --- CHANGELOG.md | 4 +- appTools/ToolExtract.py | 8 +- appTools/ToolMilling.py | 34 +- locale/de/LC_MESSAGES/strings.mo | Bin 378556 -> 378556 bytes locale/de/LC_MESSAGES/strings.po | 502 +++++++++++++------------- locale/en/LC_MESSAGES/strings.mo | Bin 355164 -> 355232 bytes locale/en/LC_MESSAGES/strings.po | 537 +++++++++++++--------------- locale/es/LC_MESSAGES/strings.mo | Bin 380415 -> 380415 bytes locale/es/LC_MESSAGES/strings.po | 502 +++++++++++++------------- locale/fr/LC_MESSAGES/strings.mo | Bin 381157 -> 381157 bytes locale/fr/LC_MESSAGES/strings.po | 502 +++++++++++++------------- locale/it/LC_MESSAGES/strings.mo | Bin 366700 -> 366700 bytes locale/it/LC_MESSAGES/strings.po | 502 +++++++++++++------------- locale/pt_BR/LC_MESSAGES/strings.mo | Bin 368524 -> 368524 bytes locale/pt_BR/LC_MESSAGES/strings.po | 502 +++++++++++++------------- locale/ro/LC_MESSAGES/strings.mo | Bin 375795 -> 375795 bytes locale/ro/LC_MESSAGES/strings.po | 502 +++++++++++++------------- locale/ru/LC_MESSAGES/strings.po | 500 +++++++++++++------------- locale/tr/LC_MESSAGES/strings.mo | Bin 371854 -> 371854 bytes locale/tr/LC_MESSAGES/strings.po | 502 +++++++++++++------------- locale_template/strings.pot | 489 ++++++++++++------------- 21 files changed, 2580 insertions(+), 2506 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fdd358b0..3bc9beec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,7 +22,9 @@ CHANGELOG for FlatCAM beta - Milling Tool - made sure that on target object change the UI is build again - Geo Editor - Text sub-tool - fixed font size control not shown; fixes issue #470 - Geo Editor - fixed an issue with having a translatable text empty; updated the translation strings from sources -- added a message warning the user that the file is no longer available when it tries to open a file from the recent file, that was moved or deleted +- added a message warning the user that the file is no longer available when it tries to open a file from the Menu -> Recent files, that was moved or deleted +- fixed a tooltip in the Extract Tool for the Extract Cutout button +- Milling Tool - added plot awareness and connection to the Plot button in the tool; updated translation strings 12.11.2020 diff --git a/appTools/ToolExtract.py b/appTools/ToolExtract.py index 2331ce90..f2300a75 100644 --- a/appTools/ToolExtract.py +++ b/appTools/ToolExtract.py @@ -973,10 +973,10 @@ class ExtractUI: grid3.addWidget(self.e_sm_button, 24, 0, 1, 2) # EXTRACT CUTOUT - self.extract_sm_label = FCLabel('%s' % _("Extract Cutout").upper()) - self.extract_sm_label.setToolTip( + self.extract_cut_label = FCLabel('%s' % _("Extract Cutout").upper()) + self.extract_cut_label.setToolTip( _("Extract a cutout from a given Gerber file.")) - grid3.addWidget(self.extract_sm_label, 26, 0, 1, 2) + grid3.addWidget(self.extract_cut_label, 26, 0, 1, 2) # Margin self.margin_cut_label = FCLabel('%s:' % _("Margin")) @@ -1015,7 +1015,7 @@ class ExtractUI: self.e_cut_button = QtWidgets.QPushButton(_("Extract Cutout")) self.e_cut_button.setIcon(QtGui.QIcon(self.app.resource_location + '/extract32.png')) self.e_cut_button.setToolTip( - _("Extract soldermask from a given Gerber file.") + _("Extract a cutout from a given Gerber file.") ) self.e_cut_button.setStyleSheet(""" QPushButton diff --git a/appTools/ToolMilling.py b/appTools/ToolMilling.py index 3c11e1c0..ed98b029 100644 --- a/appTools/ToolMilling.py +++ b/appTools/ToolMilling.py @@ -378,6 +378,32 @@ class ToolMilling(AppTool, Excellon): self.ui.offset_type_combo.set_value(0) # 'Path' + # handle the Plot checkbox + self.plot_cb_handler() + + def plot_cb_handler(self): + # load the Milling object + self.obj_name = self.ui.object_combo.currentText() + + # Get source object. + try: + self.target_obj = self.app.collection.get_by_name(self.obj_name) + except Exception: + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), str(self.obj_name))) + return + + try: + self.ui.plot_cb.stateChanged.disconnect() + except (AttributeError, TypeError): + pass + + self.ui.plot_cb.stateChanged.connect(self.on_plot_clicked) + if self.target_obj is not None: + self.ui.plot_cb.set_value(self.target_obj.options['plot']) + + def on_plot_clicked(self, state): + self.target_obj.options['plot'] = True if state else False + def rebuild_ui(self): # read the table tools uid current_uid_list = [] @@ -392,8 +418,6 @@ class ToolMilling(AppTool, Excellon): new_tools[new_uid] = deepcopy(self.iso_tools[current_uid]) new_uid += 1 - self.iso_tools = new_tools - # the tools table changed therefore we need to rebuild it QtCore.QTimer.singleShot(20, self.build_ui) @@ -766,6 +790,9 @@ class ToolMilling(AppTool, Excellon): self.ui_connect() def on_target_changed(self, val): + # handle the Plot checkbox + self.plot_cb_handler() + obj_type = 1 if val == 'exc' else 2 self.ui.object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex())) self.ui.object_combo.setCurrentIndex(0) @@ -821,6 +848,9 @@ class ToolMilling(AppTool, Excellon): self.build_ui() def on_object_changed(self): + # handle the Plot checkbox + self.plot_cb_handler() + # load the Milling object self.obj_name = self.ui.object_combo.currentText() diff --git a/locale/de/LC_MESSAGES/strings.mo b/locale/de/LC_MESSAGES/strings.mo index e22d40a1daebdbbbb2e408b266368fe850a2b190..27ad10aeaf5b5b2dcd7bf026a9dd5c176e86a1c7 100644 GIT binary patch delta 35 pcmdnfE54^!yrG4$g=q`3fG(?%ft8VIyQnTR5VLF-)n#2i69C4`3LgLf delta 35 pcmdnfE54^!yrG4$g=q`3fG(?{g_VJ2yQnTR5VLF-)n#2i69C6#3Mc>o diff --git a/locale/de/LC_MESSAGES/strings.po b/locale/de/LC_MESSAGES/strings.po index 37bb3ae7..d87118b0 100644 --- a/locale/de/LC_MESSAGES/strings.po +++ b/locale/de/LC_MESSAGES/strings.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-11-13 18:09+0200\n" -"PO-Revision-Date: 2020-11-13 18:09+0200\n" +"POT-Creation-Date: 2020-11-13 20:25+0200\n" +"PO-Revision-Date: 2020-11-13 20:25+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: de\n" @@ -113,7 +113,7 @@ msgstr "Lesezeichen" #: appGUI/MainGUI.py:3049 appGUI/MainGUI.py:3271 appGUI/MainGUI.py:3497 #: appObjects/FlatCAMCNCJob.py:1766 appObjects/ObjectCollection.py:127 #: appTools/ToolCorners.py:332 appTools/ToolFilm.py:243 -#: appTools/ToolFilm.py:391 appTools/ToolImage.py:111 appTools/ToolMove.py:269 +#: appTools/ToolFilm.py:391 appTools/ToolImage.py:113 appTools/ToolMove.py:269 #: appTools/ToolPcbWizard.py:189 appTools/ToolPcbWizard.py:212 #: appTools/ToolQRCode.py:531 appTools/ToolQRCode.py:580 app_Main.py:1658 #: app_Main.py:2850 app_Main.py:4580 app_Main.py:8377 app_Main.py:8416 @@ -132,7 +132,7 @@ msgstr "Abgebrochen." #: appTools/ToolFilm.py:590 appTools/ToolFilm.py:605 appTools/ToolFilm.py:655 #: appTools/ToolFilm.py:869 appTools/ToolFilm.py:879 appTools/ToolFilm.py:928 #: appTools/ToolSolderPaste.py:1099 app_Main.py:2858 app_Main.py:9648 -#: app_Main.py:9856 app_Main.py:9991 app_Main.py:10057 app_Main.py:10811 +#: app_Main.py:9856 app_Main.py:9991 app_Main.py:10057 app_Main.py:10832 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -293,8 +293,8 @@ msgstr "" #: appObjects/FlatCAMObj.py:719 appObjects/FlatCAMObj.py:782 #: appTools/ToolDrilling.py:1860 appTools/ToolDrilling.py:1925 #: appTools/ToolDrilling.py:2163 appTools/ToolIsolation.py:3063 -#: appTools/ToolMilling.py:1263 appTools/ToolMilling.py:1367 -#: appTools/ToolMilling.py:1540 appTools/ToolMilling.py:1870 +#: appTools/ToolMilling.py:1293 appTools/ToolMilling.py:1397 +#: appTools/ToolMilling.py:1570 appTools/ToolMilling.py:1900 #: appTools/ToolNCC.py:4002 appTools/ToolPaint.py:2831 #: appTools/ToolPcbWizard.py:404 appTools/ToolProperties.py:413 #: appTools/ToolProperties.py:476 appTools/ToolSolderPaste.py:1168 @@ -340,7 +340,7 @@ msgstr "Stellen Sie die maximale Werkzeugtoleranz ein." #: appDatabase.py:272 appDatabase.py:590 #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:45 -#: appTools/ToolMilling.py:2142 appTools/ToolNCC.py:4167 +#: appTools/ToolMilling.py:2172 appTools/ToolNCC.py:4167 msgid "Operation" msgstr "Operation" @@ -496,8 +496,8 @@ msgstr "" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 #: appTools/ToolCalculators.py:280 appTools/ToolCutOut.py:2257 -#: appTools/ToolDrilling.py:2241 appTools/ToolMilling.py:861 -#: appTools/ToolMilling.py:2219 +#: appTools/ToolDrilling.py:2241 appTools/ToolMilling.py:891 +#: appTools/ToolMilling.py:2249 msgid "Cut Z" msgstr "Schnitttiefe Z" @@ -547,7 +547,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:98 #: appObjects/FlatCAMGeometry.py:2040 appTools/ToolCalibration.py:769 #: appTools/ToolDrilling.py:1349 appTools/ToolDrilling.py:2287 -#: appTools/ToolMilling.py:1477 appTools/ToolMilling.py:2265 +#: appTools/ToolMilling.py:1507 appTools/ToolMilling.py:2295 msgid "Travel Z" msgstr "Bewegungshöhe Z (Travel)" @@ -599,7 +599,7 @@ msgstr "" #: appDatabase.py:489 appGUI/ObjectUI.py:1275 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:186 #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:148 -#: appTools/ToolMilling.py:2286 appTools/ToolSolderPaste.py:1327 +#: appTools/ToolMilling.py:2316 appTools/ToolSolderPaste.py:1327 msgid "Feedrate X-Y" msgstr "Vorschub X-Y" @@ -616,7 +616,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:201 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:171 #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:161 -#: appTools/ToolDrilling.py:2308 appTools/ToolMilling.py:2304 +#: appTools/ToolDrilling.py:2308 appTools/ToolMilling.py:2334 #: appTools/ToolSolderPaste.py:1339 msgid "Feedrate Z" msgstr "Vorschub Z" @@ -660,7 +660,7 @@ msgstr "" "Wird nicht benutzt, wenn leer." #: appDatabase.py:553 appDatabase.py:1052 appGUI/ObjectUI.py:1363 -#: appTools/ToolDrilling.py:2362 appTools/ToolMilling.py:2389 +#: appTools/ToolDrilling.py:2362 appTools/ToolMilling.py:2419 msgid "Dwell" msgstr "Warten zum Beschleunigen" @@ -710,7 +710,7 @@ msgstr "Klären" #: appGUI/preferences/geometry/GeometryEditorPrefGroupUI.py:56 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:183 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:137 -#: appTools/ToolIsolation.py:3245 appTools/ToolMilling.py:2056 +#: appTools/ToolIsolation.py:3245 appTools/ToolMilling.py:2086 #: appTools/ToolNCC.py:4185 msgid "Milling Type" msgstr "Fräsart" @@ -758,7 +758,7 @@ msgstr "Konventionell" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:182 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:161 #: appTools/ToolDrilling.py:2410 appTools/ToolIsolation.py:3230 -#: appTools/ToolMilling.py:2174 appTools/ToolNCC.py:4208 +#: appTools/ToolMilling.py:2204 appTools/ToolNCC.py:4208 #: appTools/ToolPaint.py:2973 msgid "Overlap" msgstr "Überlappung" @@ -805,7 +805,7 @@ msgstr "" #: appTools/ToolCorners.py:587 appTools/ToolCutOut.py:2302 #: appTools/ToolCutOut.py:2614 appTools/ToolExtract.py:982 #: appTools/ToolFiducials.py:815 appTools/ToolInvertGerber.py:231 -#: appTools/ToolInvertGerber.py:239 appTools/ToolMilling.py:2161 +#: appTools/ToolInvertGerber.py:239 appTools/ToolMilling.py:2191 #: appTools/ToolNCC.py:4252 appTools/ToolNCC.py:4354 msgid "Margin" msgstr "Marge" @@ -818,7 +818,7 @@ msgstr "Marge" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 #: appTools/ToolCopperThieving.py:1286 appTools/ToolCorners.py:589 -#: appTools/ToolFiducials.py:817 appTools/ToolMilling.py:2163 +#: appTools/ToolFiducials.py:817 appTools/ToolMilling.py:2193 #: appTools/ToolNCC.py:4254 appTools/ToolNCC.py:4356 msgid "Bounding box margin." msgstr "Begrenzungsrahmenrand." @@ -831,7 +831,7 @@ msgstr "Begrenzungsrahmenrand." #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:196 -#: appTools/ToolExtract.py:754 appTools/ToolMilling.py:2189 +#: appTools/ToolExtract.py:754 appTools/ToolMilling.py:2219 #: appTools/ToolNCC.py:4229 appTools/ToolPaint.py:3009 #: appTools/ToolPunchGerber.py:1118 msgid "Method" @@ -855,7 +855,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:343 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:215 -#: appTools/ToolMilling.py:2199 appTools/ToolNCC.py:4244 +#: appTools/ToolMilling.py:2229 appTools/ToolNCC.py:4244 #: appTools/ToolPaint.py:3023 msgid "Standard" msgstr "Standard" @@ -866,7 +866,7 @@ msgstr "Standard" #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:343 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:215 -#: appTools/ToolMilling.py:2199 appTools/ToolNCC.py:4244 +#: appTools/ToolMilling.py:2229 appTools/ToolNCC.py:4244 #: appTools/ToolPaint.py:3023 msgid "Seed" msgstr "Keim" @@ -877,7 +877,7 @@ msgstr "Keim" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:230 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:215 #: appParsers/ParseGerber.py:423 appParsers/ParseHPGL2.py:200 -#: appTools/ToolMilling.py:2199 appTools/ToolNCC.py:4244 +#: appTools/ToolMilling.py:2229 appTools/ToolNCC.py:4244 #: appTools/ToolPaint.py:3023 msgid "Lines" msgstr "Linien" @@ -1008,7 +1008,7 @@ msgstr "" #: appDatabase.py:840 appGUI/ObjectUI.py:1703 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:321 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:170 -#: appTools/ToolIsolation.py:3232 appTools/ToolMilling.py:2176 +#: appTools/ToolIsolation.py:3232 appTools/ToolMilling.py:2206 msgid "How much (percentage) of the tool width to overlap each tool pass." msgstr "" "Wie viel (Prozent) der Werkzeugbreite, um jeden Werkzeugdurchlauf zu " @@ -1056,7 +1056,7 @@ msgid "Int" msgstr "Innerhalb" #: appDatabase.py:904 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:59 -#: appTools/ToolDrilling.py:2243 appTools/ToolMilling.py:2221 +#: appTools/ToolDrilling.py:2243 appTools/ToolMilling.py:2251 msgid "" "Drill depth (negative)\n" "below the copper surface." @@ -1086,7 +1086,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:80 #: appTools/ToolCutOut.py:2278 appTools/ToolDrilling.py:2265 -#: appTools/ToolMilling.py:2243 +#: appTools/ToolMilling.py:2273 msgid "" "Use multiple passes to limit\n" "the cut depth in each pass. Will\n" @@ -1102,12 +1102,12 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:92 #: appTools/ToolCutOut.py:2289 appTools/ToolDrilling.py:2278 -#: appTools/ToolMilling.py:2256 +#: appTools/ToolMilling.py:2286 msgid "Depth of each pass (positive)." msgstr "Tiefe jedes Durchgangs (positiv)." #: appDatabase.py:973 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:100 -#: appTools/ToolDrilling.py:2289 appTools/ToolMilling.py:2267 +#: appTools/ToolDrilling.py:2289 appTools/ToolMilling.py:2297 msgid "" "Tool height when travelling\n" "across the XY plane." @@ -1116,7 +1116,7 @@ msgstr "" "über die XY-Ebene." #: appDatabase.py:999 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:173 -#: appTools/ToolDrilling.py:2310 appTools/ToolMilling.py:2306 +#: appTools/ToolDrilling.py:2310 appTools/ToolMilling.py:2336 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -1131,12 +1131,12 @@ msgstr "" #: appDatabase.py:1014 appGUI/ObjectUI.py:1304 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:67 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:318 -#: appTools/ToolDrilling.py:2325 appTools/ToolMilling.py:2321 +#: appTools/ToolDrilling.py:2325 appTools/ToolMilling.py:2351 msgid "Feedrate Rapids" msgstr "Vorschubgeschwindigkeit" #: appDatabase.py:1016 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:320 -#: appTools/ToolDrilling.py:2327 appTools/ToolMilling.py:2323 +#: appTools/ToolDrilling.py:2327 appTools/ToolMilling.py:2353 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -1153,13 +1153,13 @@ msgstr "" #: appDatabase.py:1037 appGUI/ObjectUI.py:1347 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:217 #: appObjects/FlatCAMGeometry.py:2056 appTools/ToolDrilling.py:1365 -#: appTools/ToolDrilling.py:2347 appTools/ToolMilling.py:1493 -#: appTools/ToolMilling.py:2374 +#: appTools/ToolDrilling.py:2347 appTools/ToolMilling.py:1523 +#: appTools/ToolMilling.py:2404 msgid "Spindle speed" msgstr "Spulengeschwindigkeit" #: appDatabase.py:1039 appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:188 -#: appTools/ToolDrilling.py:2349 appTools/ToolMilling.py:2376 +#: appTools/ToolDrilling.py:2349 appTools/ToolMilling.py:2406 msgid "" "Speed of the spindle\n" "in RPM (optional)" @@ -1425,10 +1425,10 @@ msgstr "Abbrechen" #: appTools/ToolFiducials.py:980 appTools/ToolFiducials.py:991 #: appTools/ToolFilm.py:1514 appTools/ToolFilm.py:1525 #: appTools/ToolFollow.py:698 appTools/ToolFollow.py:709 -#: appTools/ToolImage.py:321 appTools/ToolImage.py:332 +#: appTools/ToolImage.py:326 appTools/ToolImage.py:337 #: appTools/ToolInvertGerber.py:302 appTools/ToolInvertGerber.py:313 #: appTools/ToolIsolation.py:3510 appTools/ToolIsolation.py:3521 -#: appTools/ToolMilling.py:2704 appTools/ToolMilling.py:2715 +#: appTools/ToolMilling.py:2734 appTools/ToolMilling.py:2745 #: appTools/ToolNCC.py:4609 appTools/ToolNCC.py:4620 #: appTools/ToolOptimal.py:615 appTools/ToolOptimal.py:626 #: appTools/ToolPaint.py:3250 appTools/ToolPaint.py:3261 @@ -1462,10 +1462,10 @@ msgstr "Der bearbeitete Wert liegt außerhalb des Bereichs" #: appTools/ToolFiducials.py:986 appTools/ToolFiducials.py:993 #: appTools/ToolFilm.py:1520 appTools/ToolFilm.py:1527 #: appTools/ToolFollow.py:704 appTools/ToolFollow.py:711 -#: appTools/ToolImage.py:327 appTools/ToolImage.py:334 +#: appTools/ToolImage.py:332 appTools/ToolImage.py:339 #: appTools/ToolInvertGerber.py:308 appTools/ToolInvertGerber.py:315 #: appTools/ToolIsolation.py:3516 appTools/ToolIsolation.py:3523 -#: appTools/ToolMilling.py:2710 appTools/ToolMilling.py:2717 +#: appTools/ToolMilling.py:2740 appTools/ToolMilling.py:2747 #: appTools/ToolNCC.py:4615 appTools/ToolNCC.py:4622 #: appTools/ToolOptimal.py:621 appTools/ToolOptimal.py:628 #: appTools/ToolPaint.py:3256 appTools/ToolPaint.py:3263 @@ -1727,12 +1727,12 @@ msgid "Click on reference location ..." msgstr "Klicken Sie auf die Referenzposition ..." #: appEditors/AppExcEditor.py:2124 appObjects/FlatCAMExcellon.py:329 -#: appTools/ToolDrilling.py:590 appTools/ToolMilling.py:693 +#: appTools/ToolDrilling.py:590 appTools/ToolMilling.py:717 msgid "Total Drills" msgstr "Bohrungen insgesamt" #: appEditors/AppExcEditor.py:2156 appObjects/FlatCAMExcellon.py:363 -#: appTools/ToolDrilling.py:617 appTools/ToolMilling.py:720 +#: appTools/ToolDrilling.py:617 appTools/ToolMilling.py:744 msgid "Total Slots" msgstr "Schlitz insgesamt" @@ -1777,8 +1777,8 @@ msgstr "" #: appEditors/AppExcEditor.py:3080 appEditors/AppGerberEditor.py:4211 #: appObjects/AppObject.py:164 appObjects/FlatCAMGeometry.py:2151 #: appParsers/ParseExcellon.py:972 appTools/ToolPcbWizard.py:318 -#: appTools/ToolSolderPaste.py:894 app_Main.py:7759 app_Main.py:10227 -#: app_Main.py:10287 app_Main.py:10418 app_Main.py:10483 +#: appTools/ToolSolderPaste.py:894 app_Main.py:7759 app_Main.py:10233 +#: app_Main.py:10299 app_Main.py:10433 app_Main.py:10498 msgid "An internal error has occurred. See shell.\n" msgstr "Ein interner Fehler ist aufgetreten. Siehe Shell.\n" @@ -1811,7 +1811,7 @@ msgstr "Name:" #: appEditors/AppExcEditor.py:3947 appGUI/ObjectUI.py:631 #: appGUI/ObjectUI.py:976 appTools/ToolIsolation.py:3051 -#: appTools/ToolMilling.py:1848 appTools/ToolNCC.py:3990 +#: appTools/ToolMilling.py:1878 appTools/ToolNCC.py:3990 #: appTools/ToolPaint.py:2818 appTools/ToolSolderPaste.py:1157 msgid "Tools Table" msgstr "Werkzeugtabelle" @@ -1850,14 +1850,14 @@ msgstr "" #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:268 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:130 #: appTools/ToolCutOut.py:2213 appTools/ToolIsolation.py:3132 -#: appTools/ToolMilling.py:1964 appTools/ToolNCC.py:4083 +#: appTools/ToolMilling.py:1994 appTools/ToolNCC.py:4083 #: appTools/ToolNCC.py:4094 appTools/ToolPaint.py:2900 msgid "Tool Dia" msgstr "Werkzeugdurchm" #: appEditors/AppExcEditor.py:4002 appGUI/ObjectUI.py:1091 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:57 -#: appTools/ToolIsolation.py:3134 appTools/ToolMilling.py:1966 +#: appTools/ToolIsolation.py:3134 appTools/ToolMilling.py:1996 #: appTools/ToolNCC.py:4085 msgid "Diameter for the new tool" msgstr "Durchmesser für das neue Werkzeug" @@ -2258,7 +2258,7 @@ msgstr "Runden" #: appTools/ToolDrilling.py:2686 appTools/ToolExtract.py:700 #: appTools/ToolExtract.py:831 appTools/ToolFollow.py:643 #: appTools/ToolInvertGerber.py:254 appTools/ToolIsolation.py:3446 -#: appTools/ToolMilling.py:2627 appTools/ToolNCC.py:4452 +#: appTools/ToolMilling.py:2657 appTools/ToolNCC.py:4452 #: appTools/ToolPaint.py:3153 appTools/ToolPunchGerber.py:1060 #: appTools/ToolPunchGerber.py:1227 appTools/ToolQRCode.py:795 msgid "Square" @@ -2331,8 +2331,8 @@ msgstr "Textwerkzeug" #: appObjects/FlatCAMGeometry.py:1025 appTools/ToolDrilling.py:748 #: appTools/ToolDrilling.py:1088 appTools/ToolDrilling.py:2214 #: appTools/ToolIsolation.py:687 appTools/ToolIsolation.py:3207 -#: appTools/ToolMilling.py:1011 appTools/ToolMilling.py:1238 -#: appTools/ToolMilling.py:2024 appTools/ToolNCC.py:329 +#: appTools/ToolMilling.py:1041 appTools/ToolMilling.py:1268 +#: appTools/ToolMilling.py:2054 appTools/ToolNCC.py:329 #: appTools/ToolNCC.py:2387 appTools/ToolNCC.py:4157 appTools/ToolPaint.py:301 #: appTools/ToolPaint.py:2958 app_Main.py:1968 app_Main.py:2564 #: app_Main.py:2670 @@ -2800,7 +2800,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:70 #: appTools/ToolCalibration.py:881 appTools/ToolDrilling.py:2638 -#: appTools/ToolFilm.py:994 appTools/ToolMilling.py:2581 +#: appTools/ToolFilm.py:994 appTools/ToolMilling.py:2611 #: appTools/ToolNCC.py:3979 appTools/ToolPaint.py:2806 #: appTools/ToolPanelize.py:695 appTools/ToolTransform.py:552 msgid "Object" @@ -3112,7 +3112,7 @@ msgstr "Linie" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:326 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:290 #: appTools/ToolDrilling.py:2687 appTools/ToolFollow.py:644 -#: appTools/ToolIsolation.py:3447 appTools/ToolMilling.py:2628 +#: appTools/ToolIsolation.py:3447 appTools/ToolMilling.py:2658 #: appTools/ToolNCC.py:4453 appTools/ToolPaint.py:3154 msgid "Polygon" msgstr "Polygon" @@ -3594,7 +3594,7 @@ msgstr "Fügen Sie der Blendenliste eine neue Blende hinzu." #: appGUI/MainGUI.py:2406 appGUI/MainGUI.py:5002 appGUI/ObjectUI.py:1132 #: appObjects/FlatCAMGeometry.py:601 appObjects/FlatCAMGeometry.py:609 #: appTools/ToolDrilling.py:213 appTools/ToolIsolation.py:71 -#: appTools/ToolIsolation.py:3191 appTools/ToolMilling.py:2004 +#: appTools/ToolIsolation.py:3191 appTools/ToolMilling.py:2034 #: appTools/ToolNCC.py:69 appTools/ToolNCC.py:4141 appTools/ToolPaint.py:142 #: appTools/ToolPaint.py:2944 appTools/ToolSolderPaste.py:163 #: appTools/ToolSolderPaste.py:1211 app_Main.py:6346 @@ -3882,7 +3882,7 @@ msgstr "Code" #: appEditors/appGCodeEditor.py:696 appGUI/ObjectUI.py:1008 #: appGUI/ObjectUI.py:2039 appTools/ToolIsolation.py:3063 -#: appTools/ToolMilling.py:1914 appTools/ToolNCC.py:4002 +#: appTools/ToolMilling.py:1944 appTools/ToolNCC.py:4002 #: appTools/ToolPaint.py:2831 msgid "TT" msgstr "TT" @@ -3891,7 +3891,7 @@ msgstr "TT" #: appGUI/ObjectUI.py:2049 #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:70 #: appObjects/FlatCAMObj.py:499 appTools/ToolDrilling.py:2163 -#: appTools/ToolMilling.py:1870 appTools/ToolMilling.py:2065 +#: appTools/ToolMilling.py:1900 appTools/ToolMilling.py:2095 #: appTools/ToolProperties.py:165 msgid "Drills" msgstr "Bohrer" @@ -3901,7 +3901,7 @@ msgstr "Bohrer" #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:158 #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:71 #: appObjects/FlatCAMObj.py:501 appTools/ToolDrilling.py:2163 -#: appTools/ToolMilling.py:1870 appTools/ToolMilling.py:2066 +#: appTools/ToolMilling.py:1900 appTools/ToolMilling.py:2096 #: appTools/ToolProperties.py:167 msgid "Slots" msgstr "Schlüssel" @@ -4233,9 +4233,9 @@ msgstr "Neu" #: appTools/ToolCopperThieving.py:1340 appTools/ToolCopperThieving.py:1354 #: appTools/ToolCutOut.py:2163 appTools/ToolCutOut.py:2567 #: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:771 -#: appTools/ToolFilm.py:992 appTools/ToolFilm.py:1015 appTools/ToolImage.py:135 -#: appTools/ToolImage.py:190 appTools/ToolIsolation.py:3362 -#: appTools/ToolIsolation.py:3413 appTools/ToolMilling.py:1824 +#: appTools/ToolFilm.py:992 appTools/ToolFilm.py:1015 appTools/ToolImage.py:140 +#: appTools/ToolImage.py:195 appTools/ToolIsolation.py:3362 +#: appTools/ToolIsolation.py:3413 appTools/ToolMilling.py:1854 #: appTools/ToolNCC.py:3965 appTools/ToolNCC.py:4430 appTools/ToolPaint.py:3130 #: appTools/ToolPanelize.py:148 appTools/ToolPanelize.py:168 #: appTools/ToolPanelize.py:713 appTools/ToolTransform.py:126 @@ -4262,8 +4262,8 @@ msgstr "Erzeugt ein neues, leeres Geometrieobjekt." #: appTools/ToolCopperThieving.py:165 appTools/ToolCopperThieving.py:1340 #: appTools/ToolCopperThieving.py:1354 appTools/ToolCutOut.py:2162 #: appTools/ToolDblSided.py:528 appTools/ToolDblSided.py:769 -#: appTools/ToolFilm.py:991 appTools/ToolFilm.py:1014 appTools/ToolImage.py:116 -#: appTools/ToolImage.py:137 appTools/ToolImage.py:190 +#: appTools/ToolFilm.py:991 appTools/ToolFilm.py:1014 appTools/ToolImage.py:118 +#: appTools/ToolImage.py:142 appTools/ToolImage.py:195 #: appTools/ToolIsolation.py:3363 appTools/ToolIsolation.py:3413 #: appTools/ToolNCC.py:3966 appTools/ToolNCC.py:4430 appTools/ToolPaint.py:3130 #: appTools/ToolPanelize.py:148 appTools/ToolPanelize.py:168 @@ -4292,7 +4292,7 @@ msgstr "Erzeugt ein neues, leeres Gerber-Objekt." #: appTools/ToolCopperThieving.py:1354 appTools/ToolDblSided.py:530 #: appTools/ToolDblSided.py:728 appTools/ToolDblSided.py:770 #: appTools/ToolFilm.py:1270 appTools/ToolIsolation.py:3413 -#: appTools/ToolMilling.py:1825 appTools/ToolNCC.py:4430 +#: appTools/ToolMilling.py:1855 appTools/ToolNCC.py:4430 #: appTools/ToolPaint.py:3130 appTools/ToolPanelize.py:148 #: appTools/ToolPunchGerber.py:1128 appTools/ToolPunchGerber.py:1143 #: appTools/ToolTransform.py:126 appTools/ToolTransform.py:581 @@ -5141,7 +5141,7 @@ msgstr "Weiß" msgid "Black" msgstr "Schwarz" -#: appGUI/MainGUI.py:854 appTools/ToolMilling.py:2115 app_Main.py:8048 +#: appGUI/MainGUI.py:854 appTools/ToolMilling.py:2145 app_Main.py:8048 msgid "Custom" msgstr "Benutzerdefiniert" @@ -5254,7 +5254,7 @@ msgstr "Bohrwerkzeug" #: appGUI/MainGUI.py:1045 appGUI/MainGUI.py:2228 appGUI/ObjectUI.py:746 #: appGUI/ObjectUI.py:1799 appTools/ToolMilling.py:170 -#: appTools/ToolMilling.py:1764 +#: appTools/ToolMilling.py:1794 msgid "Milling Tool" msgstr "Fräswerkzeug" @@ -5620,7 +5620,7 @@ msgstr "Ja" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:148 #: appTools/ToolDrilling.py:2188 appTools/ToolIsolation.py:3107 -#: appTools/ToolMilling.py:1895 appTools/ToolNCC.py:4052 +#: appTools/ToolMilling.py:1925 appTools/ToolNCC.py:4052 #: appTools/ToolPaint.py:2869 appTranslation.py:112 appTranslation.py:214 #: app_Main.py:2548 app_Main.py:3575 app_Main.py:6027 app_Main.py:9051 msgid "No" @@ -5821,7 +5821,7 @@ msgstr "Strg+M" msgid "Ctrl+Q" msgstr "Strg+Q" -#: appGUI/MainGUI.py:4495 appTools/ToolPDF.py:41 +#: appGUI/MainGUI.py:4495 appTools/ToolPDF.py:42 msgid "PDF Import Tool" msgstr "PDF-Importwerkzeug" @@ -6279,7 +6279,7 @@ msgid "App Object" msgstr "Objekt" #: appGUI/ObjectUI.py:78 appTools/ToolDrilling.py:2113 -#: appTools/ToolIsolation.py:3016 appTools/ToolMilling.py:1800 +#: appTools/ToolIsolation.py:3016 appTools/ToolMilling.py:1830 msgid "" "BASIC is suitable for a beginner. Many parameters\n" "are hidden from the user in this mode.\n" @@ -6375,7 +6375,7 @@ msgstr "Zeichn" #: appGUI/ObjectUI.py:2028 appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:42 #: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:42 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:40 -#: appTools/ToolMilling.py:1856 +#: appTools/ToolMilling.py:1886 msgid "Plot (show) this object." msgstr "Plotten (zeigen) dieses Objekt." @@ -6582,7 +6582,7 @@ msgid "Solid circles." msgstr "Feste Kreise." #: appGUI/ObjectUI.py:682 appTools/ToolDrilling.py:2165 -#: appTools/ToolMilling.py:1872 +#: appTools/ToolMilling.py:1902 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -6598,8 +6598,8 @@ msgstr "" "Hier werden die Werkzeuge zur G-Code-Generierung ausgewählt." #: appGUI/ObjectUI.py:687 appGUI/ObjectUI.py:1020 appTools/ToolDrilling.py:2170 -#: appTools/ToolIsolation.py:3077 appTools/ToolMilling.py:1877 -#: appTools/ToolMilling.py:1924 appTools/ToolNCC.py:4016 +#: appTools/ToolIsolation.py:3077 appTools/ToolMilling.py:1907 +#: appTools/ToolMilling.py:1954 appTools/ToolNCC.py:4016 #: appTools/ToolPaint.py:2845 msgid "" "Tool Diameter. Its value\n" @@ -6609,7 +6609,7 @@ msgstr "" "ist die Schnittbreite in das Material." #: appGUI/ObjectUI.py:690 appTools/ToolDrilling.py:2173 -#: appTools/ToolMilling.py:1880 +#: appTools/ToolMilling.py:1910 msgid "" "The number of Drill holes. Holes that are drilled with\n" "a drill bit." @@ -6618,7 +6618,7 @@ msgstr "" "ein Bohrer." #: appGUI/ObjectUI.py:693 appTools/ToolDrilling.py:2176 -#: appTools/ToolMilling.py:1883 +#: appTools/ToolMilling.py:1913 msgid "" "The number of Slot holes. Holes that are created by\n" "milling them with an endmill bit." @@ -6679,7 +6679,7 @@ msgstr "" #: appGUI/ObjectUI.py:799 #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:79 -#: appTools/ToolMilling.py:2076 +#: appTools/ToolMilling.py:2106 msgid "Milling Diameter" msgstr "Fräsdurchmesser" @@ -6747,17 +6747,17 @@ msgstr "" #: appGUI/ObjectUI.py:995 appGUI/ObjectUI.py:2026 #: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:41 -#: appTools/ToolMilling.py:1855 +#: appTools/ToolMilling.py:1885 msgid "Plot Object" msgstr "Plotobjekt" #: appGUI/ObjectUI.py:1008 appGUI/ObjectUI.py:2039 appGUI/ObjectUI.py:2049 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:151 -#: appTools/ToolCopperThieving.py:1418 appTools/ToolMilling.py:1914 +#: appTools/ToolCopperThieving.py:1418 appTools/ToolMilling.py:1944 msgid "Dia" msgstr "Durchm" -#: appGUI/ObjectUI.py:1015 appTools/ToolMilling.py:1919 +#: appGUI/ObjectUI.py:1015 appTools/ToolMilling.py:1949 msgid "" "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" @@ -6838,7 +6838,7 @@ msgstr "" "Wenn Sie den V-Form-Werkzeugtyp automatisch auswählen, wird der " "Operationstyp als Isolation ausgewählt." -#: appGUI/ObjectUI.py:1052 appTools/ToolMilling.py:1939 +#: appGUI/ObjectUI.py:1052 appTools/ToolMilling.py:1969 msgid "" "Plot column. It is visible only for MultiGeo geometries, meaning geometries " "that holds the geometry\n" @@ -6869,19 +6869,19 @@ msgstr "" "Cut und Negativ für \"Inside\" Cut." #: appGUI/ObjectUI.py:1086 appTools/ToolIsolation.py:3128 -#: appTools/ToolMilling.py:1961 appTools/ToolNCC.py:66 appTools/ToolNCC.py:4079 +#: appTools/ToolMilling.py:1991 appTools/ToolNCC.py:66 appTools/ToolNCC.py:4079 #: appTools/ToolPaint.py:139 appTools/ToolPaint.py:2896 msgid "Add from DB" msgstr "Aus DB hinzufügen" #: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2224 #: appTools/ToolIsolation.py:61 appTools/ToolIsolation.py:3163 -#: appTools/ToolMilling.py:1978 appTools/ToolNCC.py:4113 +#: appTools/ToolMilling.py:2008 appTools/ToolNCC.py:4113 #: appTools/ToolPaint.py:2916 msgid "Search and Add" msgstr "Suchen und hinzufügen" -#: appGUI/ObjectUI.py:1106 appTools/ToolMilling.py:1981 +#: appGUI/ObjectUI.py:1106 appTools/ToolMilling.py:2011 msgid "" "Add a new tool to the Tool Table\n" "with the diameter specified above." @@ -6891,13 +6891,13 @@ msgstr "" #: appGUI/ObjectUI.py:1110 appObjects/FlatCAMGeometry.py:595 #: appTools/ToolCutOut.py:2236 appTools/ToolIsolation.py:66 -#: appTools/ToolIsolation.py:3174 appTools/ToolMilling.py:1985 +#: appTools/ToolIsolation.py:3174 appTools/ToolMilling.py:2015 #: appTools/ToolNCC.py:4124 appTools/ToolPaint.py:2927 msgid "Pick from DB" msgstr "Auswahl aus DB" #: appGUI/ObjectUI.py:1113 appTools/ToolCutOut.py:2239 -#: appTools/ToolIsolation.py:3177 appTools/ToolMilling.py:1988 +#: appTools/ToolIsolation.py:3177 appTools/ToolMilling.py:2018 #: appTools/ToolNCC.py:4127 appTools/ToolPaint.py:2930 msgid "" "Add a new tool to the Tool Table\n" @@ -6911,7 +6911,7 @@ msgstr "" "Menü: Optionen -> Extras Datenbank" #: appGUI/ObjectUI.py:1135 appTools/ToolIsolation.py:3194 -#: appTools/ToolMilling.py:2007 appTools/ToolNCC.py:4144 +#: appTools/ToolMilling.py:2037 appTools/ToolNCC.py:4144 #: appTools/ToolPaint.py:2947 appTools/ToolSolderPaste.py:1213 msgid "" "Delete a selection of tools in the Tool Table\n" @@ -6931,10 +6931,10 @@ msgstr "" #: appTools/ToolIsolation.py:521 appTools/ToolIsolation.py:629 #: appTools/ToolIsolation.py:634 appTools/ToolIsolation.py:664 #: appTools/ToolIsolation.py:687 appTools/ToolIsolation.py:700 -#: appTools/ToolIsolation.py:3207 appTools/ToolMilling.py:479 -#: appTools/ToolMilling.py:965 appTools/ToolMilling.py:970 -#: appTools/ToolMilling.py:1000 appTools/ToolMilling.py:1011 -#: appTools/ToolMilling.py:1015 appTools/ToolMilling.py:2024 +#: appTools/ToolIsolation.py:3207 appTools/ToolMilling.py:503 +#: appTools/ToolMilling.py:995 appTools/ToolMilling.py:1000 +#: appTools/ToolMilling.py:1030 appTools/ToolMilling.py:1041 +#: appTools/ToolMilling.py:1045 appTools/ToolMilling.py:2054 #: appTools/ToolNCC.py:271 appTools/ToolNCC.py:276 appTools/ToolNCC.py:306 #: appTools/ToolNCC.py:329 appTools/ToolNCC.py:342 appTools/ToolNCC.py:733 #: appTools/ToolNCC.py:4157 appTools/ToolPaint.py:244 appTools/ToolPaint.py:249 @@ -6945,7 +6945,7 @@ msgid "Parameters for" msgstr "Parameter für" #: appGUI/ObjectUI.py:1171 appTools/ToolDrilling.py:2217 -#: appTools/ToolIsolation.py:3210 appTools/ToolMilling.py:2027 +#: appTools/ToolIsolation.py:3210 appTools/ToolMilling.py:2057 #: appTools/ToolNCC.py:4160 appTools/ToolPaint.py:2961 msgid "" "The data used for creating GCode.\n" @@ -6999,7 +6999,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:77 #: appTools/ToolCutOut.py:2276 appTools/ToolDrilling.py:2262 -#: appTools/ToolMilling.py:2240 +#: appTools/ToolMilling.py:2270 msgid "Multi-Depth" msgstr "Mehrfache Tiefe" @@ -7015,7 +7015,7 @@ msgstr "" #: appGUI/ObjectUI.py:1277 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:188 -#: appTools/ToolMilling.py:2288 +#: appTools/ToolMilling.py:2318 msgid "" "Cutting speed in the XY\n" "plane in units per minute" @@ -7051,14 +7051,14 @@ msgstr "" #: appGUI/ObjectUI.py:1324 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:85 -#: appTools/ToolMilling.py:2343 +#: appTools/ToolMilling.py:2373 msgid "Re-cut" msgstr "Nachschneiden" #: appGUI/ObjectUI.py:1326 appGUI/ObjectUI.py:1338 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:87 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:99 -#: appTools/ToolMilling.py:2345 appTools/ToolMilling.py:2358 +#: appTools/ToolMilling.py:2375 appTools/ToolMilling.py:2388 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -7084,7 +7084,7 @@ msgstr "" #: appGUI/ObjectUI.py:1366 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:235 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:202 -#: appTools/ToolDrilling.py:2364 appTools/ToolMilling.py:2391 +#: appTools/ToolDrilling.py:2364 appTools/ToolMilling.py:2421 msgid "" "Pause to allow the spindle to reach its\n" "speed before cutting." @@ -7095,7 +7095,7 @@ msgstr "" #: appGUI/ObjectUI.py:1376 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:240 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:210 -#: appTools/ToolDrilling.py:2376 appTools/ToolMilling.py:2402 +#: appTools/ToolDrilling.py:2376 appTools/ToolMilling.py:2432 msgid "Number of time units for spindle to dwell." msgstr "Anzahl der Zeiteinheiten, in denen die Spindel verweilen soll." @@ -7103,7 +7103,7 @@ msgstr "Anzahl der Zeiteinheiten, in denen die Spindel verweilen soll." #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:131 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:108 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:334 -#: appTools/ToolDrilling.py:2559 appTools/ToolMilling.py:2504 +#: appTools/ToolDrilling.py:2559 appTools/ToolMilling.py:2534 msgid "Probe Z depth" msgstr "Sonde Z Tiefe" @@ -7111,7 +7111,7 @@ msgstr "Sonde Z Tiefe" #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:133 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:110 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:336 -#: appTools/ToolDrilling.py:2561 appTools/ToolMilling.py:2506 +#: appTools/ToolDrilling.py:2561 appTools/ToolMilling.py:2536 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." @@ -7122,7 +7122,7 @@ msgstr "" #: appGUI/ObjectUI.py:1401 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:123 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:347 -#: appTools/ToolDrilling.py:2578 appTools/ToolMilling.py:2523 +#: appTools/ToolDrilling.py:2578 appTools/ToolMilling.py:2553 msgid "Feedrate Probe" msgstr "Vorschubsonde" @@ -7130,18 +7130,18 @@ msgstr "Vorschubsonde" #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:146 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:349 -#: appTools/ToolDrilling.py:2580 appTools/ToolMilling.py:2525 +#: appTools/ToolDrilling.py:2580 appTools/ToolMilling.py:2555 msgid "The feedrate used while the probe is probing." msgstr "Der Vorschub während der Sondenmessung." #: appGUI/ObjectUI.py:1430 appTools/ToolDrilling.py:2462 -#: appTools/ToolIsolation.py:3289 appTools/ToolMilling.py:2426 +#: appTools/ToolIsolation.py:3289 appTools/ToolMilling.py:2456 #: appTools/ToolNCC.py:4317 appTools/ToolPaint.py:3056 msgid "Apply parameters to all tools" msgstr "Parameter auf alle Werkzeuge anwenden" #: appGUI/ObjectUI.py:1433 appTools/ToolDrilling.py:2465 -#: appTools/ToolIsolation.py:3292 appTools/ToolMilling.py:2429 +#: appTools/ToolIsolation.py:3292 appTools/ToolMilling.py:2459 #: appTools/ToolNCC.py:4320 appTools/ToolPaint.py:3059 msgid "" "The parameters in the current form will be applied\n" @@ -7151,19 +7151,19 @@ msgstr "" "Werkzeugtabelle zugeordnet." #: appGUI/ObjectUI.py:1444 appTools/ToolDrilling.py:2476 -#: appTools/ToolIsolation.py:3303 appTools/ToolMilling.py:2442 +#: appTools/ToolIsolation.py:3303 appTools/ToolMilling.py:2472 #: appTools/ToolNCC.py:4331 appTools/ToolPaint.py:3070 msgid "Common Parameters" msgstr "Allgemeine Parameter" #: appGUI/ObjectUI.py:1446 appTools/ToolDrilling.py:2478 -#: appTools/ToolIsolation.py:3305 appTools/ToolMilling.py:2444 +#: appTools/ToolIsolation.py:3305 appTools/ToolMilling.py:2474 #: appTools/ToolNCC.py:4333 appTools/ToolPaint.py:3072 msgid "Parameters that are common for all tools." msgstr "Parameter, die allen Werkzeugen gemeinsam sind." #: appGUI/ObjectUI.py:1451 appTools/ToolDrilling.py:2492 -#: appTools/ToolMilling.py:2449 +#: appTools/ToolMilling.py:2479 msgid "Tool change Z" msgstr "Werkzeugwechsel Z" @@ -7179,7 +7179,7 @@ msgstr "" #: appGUI/ObjectUI.py:1462 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:135 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:126 -#: appTools/ToolDrilling.py:2494 appTools/ToolMilling.py:2458 +#: appTools/ToolDrilling.py:2494 appTools/ToolMilling.py:2488 msgid "" "Z-axis position (height) for\n" "tool change." @@ -7190,14 +7190,14 @@ msgstr "" #: appGUI/ObjectUI.py:1490 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:154 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:142 -#: appTools/ToolDrilling.py:2525 appTools/ToolMilling.py:2473 +#: appTools/ToolDrilling.py:2525 appTools/ToolMilling.py:2503 msgid "End move Z" msgstr "Bewegung beenden Z" #: appGUI/ObjectUI.py:1492 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:156 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:144 -#: appTools/ToolDrilling.py:2527 appTools/ToolMilling.py:2475 +#: appTools/ToolDrilling.py:2527 appTools/ToolMilling.py:2505 msgid "" "Height of the tool after\n" "the last move at the end of the job." @@ -7208,14 +7208,14 @@ msgstr "" #: appGUI/ObjectUI.py:1509 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:174 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:159 -#: appTools/ToolDrilling.py:2545 appTools/ToolMilling.py:2492 +#: appTools/ToolDrilling.py:2545 appTools/ToolMilling.py:2522 msgid "End move X,Y" msgstr "Bewegung beenden X, Y" #: appGUI/ObjectUI.py:1511 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:176 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:161 -#: appTools/ToolDrilling.py:2547 appTools/ToolMilling.py:2494 +#: appTools/ToolDrilling.py:2547 appTools/ToolMilling.py:2524 msgid "" "End move X,Y position. In format (x,y).\n" "If no value is entered then there is no move\n" @@ -7226,7 +7226,7 @@ msgstr "" "auf der X, Y-Ebene am Ende des Jobs." #: appGUI/ObjectUI.py:1516 appTools/ToolDrilling.py:2552 -#: appTools/ToolMilling.py:2499 +#: appTools/ToolMilling.py:2529 msgid "X,Y coordinates" msgstr "Koordinaten X-Y" @@ -7234,7 +7234,7 @@ msgstr "Koordinaten X-Y" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:255 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:221 #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:237 -#: appTools/ToolDrilling.py:2596 appTools/ToolMilling.py:2541 +#: appTools/ToolDrilling.py:2596 appTools/ToolMilling.py:2571 #: appTools/ToolSolderPaste.py:1409 msgid "Preprocessor" msgstr "Postprozessor" @@ -7249,14 +7249,14 @@ msgstr "" "den Maschinencode (wie GCode, RML, HPGL)." #: appGUI/ObjectUI.py:1540 appTools/ToolDrilling.py:2613 -#: appTools/ToolMilling.py:2557 +#: appTools/ToolMilling.py:2587 msgid "Add exclusion areas" msgstr "Ausschlussbereiche hinzufügen" #: appGUI/ObjectUI.py:1543 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:210 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:411 -#: appTools/ToolDrilling.py:2616 appTools/ToolMilling.py:2560 +#: appTools/ToolDrilling.py:2616 appTools/ToolMilling.py:2590 msgid "" "Include exclusion areas.\n" "In those areas the travel of the tools\n" @@ -7270,7 +7270,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:230 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:431 #: appTools/ToolDrilling.py:2638 appTools/ToolDrilling.py:2657 -#: appTools/ToolMilling.py:2581 appTools/ToolMilling.py:2600 +#: appTools/ToolMilling.py:2611 appTools/ToolMilling.py:2630 msgid "Strategy" msgstr "Strategie" @@ -7278,22 +7278,22 @@ msgstr "Strategie" #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:242 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:443 #: appTools/ToolDrilling.py:2638 appTools/ToolDrilling.py:2670 -#: appTools/ToolMilling.py:2581 appTools/ToolMilling.py:2612 +#: appTools/ToolMilling.py:2611 appTools/ToolMilling.py:2642 msgid "Over Z" msgstr "Über Z" #: appGUI/ObjectUI.py:1566 appTools/ToolDrilling.py:2640 -#: appTools/ToolMilling.py:2583 +#: appTools/ToolMilling.py:2613 msgid "This is the Area ID." msgstr "Dies ist die Bereichs-ID." #: appGUI/ObjectUI.py:1568 appTools/ToolDrilling.py:2642 -#: appTools/ToolMilling.py:2585 +#: appTools/ToolMilling.py:2615 msgid "Type of the object where the exclusion area was added." msgstr "Typ des Objekts, zu dem der Ausschlussbereich hinzugefügt wurde." #: appGUI/ObjectUI.py:1570 appTools/ToolDrilling.py:2644 -#: appTools/ToolMilling.py:2587 +#: appTools/ToolMilling.py:2617 msgid "" "The strategy used for exclusion area. Go around the exclusion areas or over " "it." @@ -7302,7 +7302,7 @@ msgstr "" "herum oder darüber." #: appGUI/ObjectUI.py:1572 appTools/ToolDrilling.py:2646 -#: appTools/ToolMilling.py:2589 +#: appTools/ToolMilling.py:2619 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." @@ -7313,7 +7313,7 @@ msgstr "" #: appGUI/ObjectUI.py:1584 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:231 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:432 -#: appTools/ToolDrilling.py:2658 appTools/ToolMilling.py:2601 +#: appTools/ToolDrilling.py:2658 appTools/ToolMilling.py:2631 msgid "" "The strategy followed when encountering an exclusion area.\n" "Can be:\n" @@ -7331,7 +7331,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:235 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:436 #: appObjects/FlatCAMGeometry.py:355 appTools/ToolDrilling.py:689 -#: appTools/ToolDrilling.py:2662 appTools/ToolMilling.py:2605 +#: appTools/ToolDrilling.py:2662 appTools/ToolMilling.py:2635 msgid "Over" msgstr "Über" @@ -7339,14 +7339,14 @@ msgstr "Über" #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:236 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:437 #: appObjects/FlatCAMGeometry.py:355 appTools/ToolDrilling.py:689 -#: appTools/ToolDrilling.py:2663 appTools/ToolMilling.py:2606 +#: appTools/ToolDrilling.py:2663 appTools/ToolMilling.py:2636 msgid "Around" msgstr "Vermeiden" #: appGUI/ObjectUI.py:1596 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:243 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:444 -#: appTools/ToolDrilling.py:2671 appTools/ToolMilling.py:2613 +#: appTools/ToolDrilling.py:2671 appTools/ToolMilling.py:2643 msgid "" "The height Z to which the tool will rise in order to avoid\n" "an interdiction area." @@ -7355,12 +7355,12 @@ msgstr "" "ein Verbotsbereich." #: appGUI/ObjectUI.py:1606 appTools/ToolDrilling.py:2682 -#: appTools/ToolMilling.py:2623 +#: appTools/ToolMilling.py:2653 msgid "Add Area:" msgstr "Zone hinzufügen:" #: appGUI/ObjectUI.py:1607 appTools/ToolDrilling.py:2683 -#: appTools/ToolMilling.py:2624 +#: appTools/ToolMilling.py:2654 msgid "Add an Exclusion Area." msgstr "Fügen Sie einen Ausschlussbereich hinzu." @@ -7371,7 +7371,7 @@ msgstr "Fügen Sie einen Ausschlussbereich hinzu." #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:322 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:286 #: appTools/ToolDrilling.py:2689 appTools/ToolFollow.py:640 -#: appTools/ToolIsolation.py:3443 appTools/ToolMilling.py:2630 +#: appTools/ToolIsolation.py:3443 appTools/ToolMilling.py:2660 #: appTools/ToolNCC.py:4449 appTools/ToolPaint.py:3150 msgid "The kind of selection shape used for area selection." msgstr "Die Art der Auswahlform, die für die Bereichsauswahl verwendet wird." @@ -7381,22 +7381,22 @@ msgstr "Die Art der Auswahlform, die für die Bereichsauswahl verwendet wird." #: appGUI/preferences/utilities/FAExcPrefGroupUI.py:42 #: appGUI/preferences/utilities/FAGcoPrefGroupUI.py:32 #: appGUI/preferences/utilities/FAGrbPrefGroupUI.py:32 -#: appTools/ToolDrilling.py:2700 appTools/ToolMilling.py:2640 +#: appTools/ToolDrilling.py:2700 appTools/ToolMilling.py:2670 msgid "Delete All" msgstr "Alles löschen" #: appGUI/ObjectUI.py:1624 appTools/ToolDrilling.py:2701 -#: appTools/ToolMilling.py:2641 +#: appTools/ToolMilling.py:2671 msgid "Delete all exclusion areas." msgstr "Löschen Sie alle Ausschlussbereiche." #: appGUI/ObjectUI.py:1627 appTools/ToolDrilling.py:2704 -#: appTools/ToolMilling.py:2644 +#: appTools/ToolMilling.py:2674 msgid "Delete Selected" msgstr "Ausgewählte löschen" #: appGUI/ObjectUI.py:1628 appTools/ToolDrilling.py:2705 -#: appTools/ToolMilling.py:2645 +#: appTools/ToolMilling.py:2675 msgid "Delete all exclusion areas that are selected in the table." msgstr "Löschen Sie alle in der Tabelle ausgewählten Ausschlussbereiche." @@ -7421,7 +7421,7 @@ msgstr "Durchmesser für das Polierwerkzeug." #: appGUI/ObjectUI.py:1674 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:294 -#: appTools/ToolMilling.py:852 +#: appTools/ToolMilling.py:882 msgid "Pressure" msgstr "Druck" @@ -7436,7 +7436,7 @@ msgstr "" #: appGUI/ObjectUI.py:1718 #: appGUI/preferences/geometry/GeometryAdvOptPrefGroupUI.py:335 -#: appTools/ToolMilling.py:2191 +#: appTools/ToolMilling.py:2221 msgid "" "Algorithm for polishing:\n" "- Standard: Fixed step inwards.\n" @@ -7449,7 +7449,7 @@ msgstr "" "- Linienbasiert: Parallele Linien." #: appGUI/ObjectUI.py:1770 appGUI/ObjectUI.py:1773 -#: appTools/ToolDrilling.py:2727 appTools/ToolMilling.py:2667 +#: appTools/ToolDrilling.py:2727 appTools/ToolMilling.py:2697 msgid "Generate CNCJob object" msgstr "Generieren des CNC-Job-Objekts" @@ -8965,7 +8965,7 @@ msgstr "" "- Fräsen -> fräst die Bohrer / Schlitze" #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:63 -#: appTools/ToolMilling.py:2058 +#: appTools/ToolMilling.py:2088 msgid "" "Milling type:\n" "- Drills -> will mill the drills associated with this tool\n" @@ -8982,12 +8982,12 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:293 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:199 #: appTools/ToolCopperThieving.py:1671 appTools/ToolFilm.py:1168 -#: appTools/ToolMilling.py:2067 +#: appTools/ToolMilling.py:2097 msgid "Both" msgstr "Both" #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:81 -#: appTools/ToolMilling.py:2078 +#: appTools/ToolMilling.py:2108 msgid "The diameter of the tool who will do the milling" msgstr "Der Durchmesser des Werkzeugs, das das Fräsen übernimmt" @@ -11056,7 +11056,6 @@ msgstr "Bohrer extrahieren" #: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:234 #: appTools/ToolExtract.py:939 appTools/ToolExtract.py:965 -#: appTools/ToolExtract.py:1018 #, fuzzy #| msgid "Extract drills from a given Gerber file." msgid "Extract soldermask from a given Gerber file." @@ -11077,7 +11076,7 @@ msgid "Extract Cutout" msgstr "Zusätzlicher Schnitt" #: appGUI/preferences/tools/Tools2ExtractPrefGroupUI.py:254 -#: appTools/ToolExtract.py:978 +#: appTools/ToolExtract.py:978 appTools/ToolExtract.py:1018 #, fuzzy #| msgid "Extract drills from a given Gerber file." msgid "Extract a cutout from a given Gerber file." @@ -11998,7 +11997,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:156 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:140 #: appTools/ToolDrilling.py:2180 appTools/ToolIsolation.py:3099 -#: appTools/ToolMilling.py:1887 appTools/ToolNCC.py:4044 +#: appTools/ToolMilling.py:1917 appTools/ToolNCC.py:4044 #: appTools/ToolPaint.py:2861 msgid "Tool order" msgstr "Werkzeugbestellung" @@ -12009,7 +12008,7 @@ msgstr "Werkzeugbestellung" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:167 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:141 #: appTools/ToolDrilling.py:2181 appTools/ToolIsolation.py:3100 -#: appTools/ToolMilling.py:1888 appTools/ToolNCC.py:4045 +#: appTools/ToolMilling.py:1918 appTools/ToolNCC.py:4045 #: appTools/ToolNCC.py:4055 appTools/ToolPaint.py:2862 #: appTools/ToolPaint.py:2872 msgid "" @@ -12038,7 +12037,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:165 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:149 #: appTools/ToolDrilling.py:2189 appTools/ToolIsolation.py:3108 -#: appTools/ToolMilling.py:1896 appTools/ToolNCC.py:4053 +#: appTools/ToolMilling.py:1926 appTools/ToolNCC.py:4053 #: appTools/ToolPaint.py:2870 msgid "Forward" msgstr "Vorwärts" @@ -12048,13 +12047,13 @@ msgstr "Vorwärts" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:166 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:150 #: appTools/ToolDrilling.py:2190 appTools/ToolIsolation.py:3109 -#: appTools/ToolMilling.py:1897 appTools/ToolNCC.py:4054 +#: appTools/ToolMilling.py:1927 appTools/ToolNCC.py:4054 #: appTools/ToolPaint.py:2871 msgid "Reverse" msgstr "Rückwärts" #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:118 -#: appTools/ToolDrilling.py:2485 appTools/ToolMilling.py:2451 +#: appTools/ToolDrilling.py:2485 appTools/ToolMilling.py:2481 msgid "" "Include tool-change sequence\n" "in G-Code (Pause for tool change)." @@ -13321,39 +13320,39 @@ msgid "Document Editor" msgstr "Dokumenteditor" #: appObjects/FlatCAMExcellon.py:882 appObjects/FlatCAMExcellon.py:990 -#: appTools/ToolDrilling.py:1710 appTools/ToolMilling.py:1230 -#: appTools/ToolMilling.py:1346 appTools/ToolMilling.py:1520 +#: appTools/ToolDrilling.py:1710 appTools/ToolMilling.py:1260 +#: appTools/ToolMilling.py:1376 appTools/ToolMilling.py:1550 msgid "Please select one or more tools from the list and try again." msgstr "" "Bitte wählen Sie ein oder mehrere Werkzeuge aus der Liste aus und versuchen " "Sie es erneut." -#: appObjects/FlatCAMExcellon.py:887 appTools/ToolMilling.py:1237 +#: appObjects/FlatCAMExcellon.py:887 appTools/ToolMilling.py:1267 msgid "Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "Das Fräswerkzeug für BOHRER ist größer als die Lochgröße. Abgebrochen." #: appObjects/FlatCAMExcellon.py:910 appObjects/FlatCAMExcellon.py:1010 #: appTools/ToolDrilling.py:1860 appTools/ToolDrilling.py:1925 -#: appTools/ToolMilling.py:1263 appTools/ToolMilling.py:1367 -#: appTools/ToolMilling.py:1540 tclCommands/TclCommandDrillcncjob.py:195 +#: appTools/ToolMilling.py:1293 appTools/ToolMilling.py:1397 +#: appTools/ToolMilling.py:1570 tclCommands/TclCommandDrillcncjob.py:195 msgid "Tool_nr" msgstr "Werkzeugnummer" #: appObjects/FlatCAMExcellon.py:910 appObjects/FlatCAMExcellon.py:1010 #: appTools/ToolDrilling.py:1860 appTools/ToolDrilling.py:1925 -#: appTools/ToolMilling.py:1263 appTools/ToolMilling.py:1367 -#: appTools/ToolMilling.py:1540 tclCommands/TclCommandDrillcncjob.py:195 +#: appTools/ToolMilling.py:1293 appTools/ToolMilling.py:1397 +#: appTools/ToolMilling.py:1570 tclCommands/TclCommandDrillcncjob.py:195 msgid "Drills_Nr" msgstr "Bohrnummer" #: appObjects/FlatCAMExcellon.py:910 appObjects/FlatCAMExcellon.py:1010 #: appTools/ToolDrilling.py:1860 appTools/ToolDrilling.py:1925 -#: appTools/ToolMilling.py:1263 appTools/ToolMilling.py:1367 -#: appTools/ToolMilling.py:1540 tclCommands/TclCommandDrillcncjob.py:195 +#: appTools/ToolMilling.py:1293 appTools/ToolMilling.py:1397 +#: appTools/ToolMilling.py:1570 tclCommands/TclCommandDrillcncjob.py:195 msgid "Slots_Nr" msgstr "Schlitznummer" -#: appObjects/FlatCAMExcellon.py:999 appTools/ToolMilling.py:1355 +#: appObjects/FlatCAMExcellon.py:999 appTools/ToolMilling.py:1385 msgid "Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "" "Das Fräswerkzeug für SCHLITZ ist größer als die Lochgröße. Abgebrochen." @@ -13362,8 +13361,8 @@ msgstr "" #: appObjects/FlatCAMGeometry.py:1029 appTools/ToolDrilling.py:742 #: appTools/ToolDrilling.py:1045 appTools/ToolDrilling.py:1092 #: appTools/ToolIsolation.py:521 appTools/ToolIsolation.py:634 -#: appTools/ToolIsolation.py:700 appTools/ToolMilling.py:479 -#: appTools/ToolMilling.py:970 appTools/ToolMilling.py:1015 +#: appTools/ToolIsolation.py:700 appTools/ToolMilling.py:503 +#: appTools/ToolMilling.py:1000 appTools/ToolMilling.py:1045 #: appTools/ToolNCC.py:276 appTools/ToolNCC.py:342 appTools/ToolNCC.py:733 #: appTools/ToolPaint.py:249 appTools/ToolPaint.py:313 #: appTools/ToolPaint.py:663 @@ -13373,8 +13372,8 @@ msgstr "Mehrere Werkzeuge" #: appObjects/FlatCAMGeometry.py:962 appObjects/FlatCAMGeometry.py:998 #: appTools/ToolDrilling.py:791 appTools/ToolDrilling.py:1038 #: appTools/ToolDrilling.py:1076 appTools/ToolIsolation.py:629 -#: appTools/ToolIsolation.py:664 appTools/ToolMilling.py:965 -#: appTools/ToolMilling.py:1000 appTools/ToolNCC.py:271 appTools/ToolNCC.py:306 +#: appTools/ToolIsolation.py:664 appTools/ToolMilling.py:995 +#: appTools/ToolMilling.py:1030 appTools/ToolNCC.py:271 appTools/ToolNCC.py:306 #: appTools/ToolPaint.py:244 appTools/ToolPaint.py:279 app_Main.py:2438 msgid "No Tool Selected" msgstr "Kein Werkzeug ausgewählt" @@ -13463,12 +13462,12 @@ msgstr "" "Durchmesser'" #: appObjects/FlatCAMGeometry.py:2005 appTools/ToolDrilling.py:1311 -#: appTools/ToolMilling.py:1448 +#: appTools/ToolMilling.py:1478 msgid "Focus Z" msgstr "Fokus Z" #: appObjects/FlatCAMGeometry.py:2024 appTools/ToolDrilling.py:1333 -#: appTools/ToolMilling.py:1467 +#: appTools/ToolMilling.py:1497 msgid "Laser Power" msgstr "Laserleistung" @@ -13513,7 +13512,7 @@ msgstr "Abgebrochen. Leere Datei hat keine Geometrie" #: appObjects/FlatCAMGeometry.py:2470 appObjects/FlatCAMGeometry.py:2475 #: appObjects/FlatCAMGeometry.py:2627 appTools/ToolDrilling.py:2058 -#: appTools/ToolMilling.py:1597 +#: appTools/ToolMilling.py:1627 msgid "Generating CNC Code" msgstr "CNC-Code generieren" @@ -13555,12 +13554,12 @@ msgstr "" "Aber jetzt gibt es nur einen Wert, nicht zwei." #: appObjects/FlatCAMGeometry.py:3027 appTools/ToolDrilling.py:1431 -#: appTools/ToolMilling.py:1668 +#: appTools/ToolMilling.py:1698 msgid "Delete failed. There are no exclusion areas to delete." msgstr "Löschen fehlgeschlagen. Es sind keine Ausschlussbereiche zu löschen." #: appObjects/FlatCAMGeometry.py:3044 appTools/ToolDrilling.py:1448 -#: appTools/ToolMilling.py:1685 +#: appTools/ToolMilling.py:1715 msgid "Delete failed. Nothing is selected." msgstr "Löschen fehlgeschlagen. Es ist nichts ausgewählt." @@ -13980,7 +13979,7 @@ msgstr "" #: appTools/ToolEtchCompensation.py:455 appTools/ToolExtract.py:1031 #: appTools/ToolFiducials.py:962 appTools/ToolFilm.py:1443 #: appTools/ToolFollow.py:673 appTools/ToolInvertGerber.py:284 -#: appTools/ToolIsolation.py:3493 appTools/ToolMilling.py:2687 +#: appTools/ToolIsolation.py:3493 appTools/ToolMilling.py:2717 #: appTools/ToolNCC.py:4492 appTools/ToolOptimal.py:594 #: appTools/ToolPaint.py:3179 appTools/ToolPanelize.py:888 #: appTools/ToolPunchGerber.py:1308 appTools/ToolQRCode.py:912 @@ -13996,7 +13995,7 @@ msgstr "Reset Werkzeug" #: appTools/ToolEtchCompensation.py:458 appTools/ToolExtract.py:1034 #: appTools/ToolFiducials.py:965 appTools/ToolFilm.py:1446 #: appTools/ToolFollow.py:676 appTools/ToolInvertGerber.py:287 -#: appTools/ToolIsolation.py:3496 appTools/ToolMilling.py:2690 +#: appTools/ToolIsolation.py:3496 appTools/ToolMilling.py:2720 #: appTools/ToolNCC.py:4495 appTools/ToolOptimal.py:597 #: appTools/ToolPaint.py:3182 appTools/ToolPanelize.py:891 #: appTools/ToolPunchGerber.py:1311 appTools/ToolQRCode.py:915 @@ -14190,7 +14189,7 @@ msgstr "" "Diese vier Punkte sollten in den vier sein\n" "(so viel wie möglich) Ecken des Objekts." -#: appTools/ToolCalibration.py:888 appTools/ToolImage.py:195 +#: appTools/ToolCalibration.py:888 appTools/ToolImage.py:200 #: appTools/ToolPanelize.py:674 appTools/ToolProperties.py:176 msgid "Object Type" msgstr "Objekttyp" @@ -14215,7 +14214,7 @@ msgstr "" "Enthalten die erwarteten Kalibrierungspunkte sowie\n" "die gemessenen." -#: appTools/ToolCalibration.py:930 appTools/ToolMilling.py:1817 +#: appTools/ToolCalibration.py:930 appTools/ToolMilling.py:1847 #: appTools/ToolSub.py:705 appTools/ToolSub.py:758 msgid "Target" msgstr "Ziel" @@ -14476,13 +14475,14 @@ msgstr "'Copper Thieving' Werkzeug fertig." #: appTools/ToolFollow.py:171 appTools/ToolInvertGerber.py:99 #: appTools/ToolIsolation.py:957 appTools/ToolIsolation.py:1022 #: appTools/ToolIsolation.py:1426 appTools/ToolIsolation.py:1453 -#: appTools/ToolMilling.py:410 appTools/ToolMilling.py:831 -#: appTools/ToolMilling.py:1502 appTools/ToolNCC.py:913 appTools/ToolNCC.py:982 -#: appTools/ToolNCC.py:1414 appTools/ToolNCC.py:1464 appTools/ToolNCC.py:1497 -#: appTools/ToolPaint.py:1007 appTools/ToolPaint.py:1094 -#: appTools/ToolPanelize.py:192 appTools/ToolPanelize.py:206 -#: appTools/ToolSub.py:163 appTools/ToolSub.py:181 appTools/ToolSub.py:391 -#: appTools/ToolSub.py:404 tclCommands/TclCommandCopperClear.py:97 +#: appTools/ToolMilling.py:392 appTools/ToolMilling.py:434 +#: appTools/ToolMilling.py:861 appTools/ToolMilling.py:1532 +#: appTools/ToolNCC.py:913 appTools/ToolNCC.py:982 appTools/ToolNCC.py:1414 +#: appTools/ToolNCC.py:1464 appTools/ToolNCC.py:1497 appTools/ToolPaint.py:1007 +#: appTools/ToolPaint.py:1094 appTools/ToolPanelize.py:192 +#: appTools/ToolPanelize.py:206 appTools/ToolSub.py:163 appTools/ToolSub.py:181 +#: appTools/ToolSub.py:391 appTools/ToolSub.py:404 +#: tclCommands/TclCommandCopperClear.py:97 #: tclCommands/TclCommandCopperClear.py:284 tclCommands/TclCommandPaint.py:99 #: tclCommands/TclCommandPaint.py:288 tclCommands/TclCommandScale.py:81 msgid "Could not retrieve object" @@ -14791,7 +14791,7 @@ msgstr "Alle Formularausschnitte sind abgeschlossen." #: appTools/ToolFollow.py:175 appTools/ToolInvertGerber.py:105 #: appTools/ToolIsolation.py:961 appTools/ToolIsolation.py:1026 #: appTools/ToolIsolation.py:1430 appTools/ToolIsolation.py:1457 -#: appTools/ToolMilling.py:1506 appTools/ToolNCC.py:917 appTools/ToolNCC.py:986 +#: appTools/ToolMilling.py:1536 appTools/ToolNCC.py:917 appTools/ToolNCC.py:986 #: appTools/ToolNCC.py:1418 appTools/ToolPaint.py:1011 #: appTools/ToolPanelize.py:197 tclCommands/TclCommandBbox.py:71 #: tclCommands/TclCommandNregions.py:71 @@ -15488,7 +15488,7 @@ msgid "Jump to Half Point" msgstr "Springe zum halben Punkt" #: appTools/ToolDrilling.py:1250 appTools/ToolIsolation.py:768 -#: appTools/ToolMilling.py:1154 appTools/ToolNCC.py:449 +#: appTools/ToolMilling.py:1184 appTools/ToolNCC.py:449 #: appTools/ToolPaint.py:378 msgid "Current Tool parameters were applied to all tools." msgstr "Aktuelle Werkzeugparameter wurden auf alle Werkzeuge angewendet." @@ -15509,7 +15509,7 @@ msgstr "Gescheitert. Bohrpunkte innerhalb der Sperrzonen." msgid "Starting G-Code" msgstr "G-Code starten" -#: appTools/ToolDrilling.py:1771 appTools/ToolMilling.py:1535 +#: appTools/ToolDrilling.py:1771 appTools/ToolMilling.py:1565 msgid "Generating CNCJob..." msgstr "CNCJob generieren ..." @@ -15541,7 +15541,7 @@ msgstr "" "Die diktierende Präprozessor-JSON-Datei\n" "Gcode-Ausgabe für Excellon-Objekte." -#: appTools/ToolDrilling.py:2730 appTools/ToolMilling.py:2670 +#: appTools/ToolDrilling.py:2730 appTools/ToolMilling.py:2700 msgid "" "Generate the CNC Job.\n" "If milling then an additional Geometry object will be created.\n" @@ -16014,15 +16014,23 @@ msgstr "" "- 'Referenzobjekt' - verarbeitet den von einem anderen Objekt angegebenen " "Bereich." -#: appTools/ToolImage.py:65 +#: appTools/ToolImage.py:67 msgid "Image Tool" msgstr "Bildwerkzeug" -#: appTools/ToolImage.py:94 appTools/ToolImage.py:97 +#: appTools/ToolImage.py:96 appTools/ToolImage.py:99 msgid "Import IMAGE" msgstr "BILD importieren" -#: appTools/ToolImage.py:141 app_Main.py:10110 app_Main.py:10160 +#: appTools/ToolImage.py:134 appTools/ToolPDF.py:111 app_Main.py:10103 +#: app_Main.py:10156 app_Main.py:10245 app_Main.py:10283 app_Main.py:10348 +#: app_Main.py:10505 app_Main.py:10592 +#, fuzzy +#| msgid "No object available." +msgid "File no longer available." +msgstr "Kein Objekt vorhanden." + +#: appTools/ToolImage.py:146 app_Main.py:10113 app_Main.py:10166 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -16030,22 +16038,22 @@ msgstr "" "Nicht unterstützte Art wird als Parameter ausgewählt. Nur Geometrie und " "Gerber werden unterstützt" -#: appTools/ToolImage.py:149 appTools/ToolPcbWizard.py:336 app_Main.py:10126 -#: app_Main.py:10181 tclCommands/TclCommandImportSvg.py:76 +#: appTools/ToolImage.py:154 appTools/ToolPcbWizard.py:336 app_Main.py:10129 +#: app_Main.py:10187 tclCommands/TclCommandImportSvg.py:76 msgid "Importing" msgstr "Importieren" -#: appTools/ToolImage.py:161 appTools/ToolPDF.py:155 app_Main.py:10124 -#: app_Main.py:10179 app_Main.py:10257 app_Main.py:10320 app_Main.py:10386 -#: app_Main.py:10451 app_Main.py:10508 +#: appTools/ToolImage.py:166 appTools/ToolPDF.py:160 app_Main.py:10127 +#: app_Main.py:10185 app_Main.py:10266 app_Main.py:10332 app_Main.py:10401 +#: app_Main.py:10466 app_Main.py:10526 msgid "Opened" msgstr "Geöffnet" -#: appTools/ToolImage.py:166 +#: appTools/ToolImage.py:171 msgid "Image as Object" msgstr "Bild als Objekt" -#: appTools/ToolImage.py:197 +#: appTools/ToolImage.py:202 msgid "" "Specify the type of object to create from the image.\n" "It can be of type: Gerber or Geometry." @@ -16053,23 +16061,23 @@ msgstr "" "Geben Sie den Objekttyp an, der aus dem Bild erstellt werden soll.\n" "Es kann vom Typ sein: Gerber oder Geometrie." -#: appTools/ToolImage.py:206 +#: appTools/ToolImage.py:211 msgid "DPI value" msgstr "DPI-Wert" -#: appTools/ToolImage.py:207 +#: appTools/ToolImage.py:212 msgid "Specify a DPI value for the image." msgstr "Geben Sie einen DPI-Wert für das Bild an." -#: appTools/ToolImage.py:213 +#: appTools/ToolImage.py:218 msgid "Level of detail" msgstr "Detaillierungsgrad" -#: appTools/ToolImage.py:222 +#: appTools/ToolImage.py:227 msgid "Image type" msgstr "Bildtyp" -#: appTools/ToolImage.py:224 +#: appTools/ToolImage.py:229 msgid "" "Choose a method for the image interpretation.\n" "B/W means a black & white image. Color means a colored image." @@ -16077,12 +16085,12 @@ msgstr "" "Wählen Sie eine Methode für die Bildinterpretation.\n" "B / W steht für ein Schwarzweißbild. Farbe bedeutet ein farbiges Bild." -#: appTools/ToolImage.py:233 appTools/ToolImage.py:248 -#: appTools/ToolImage.py:261 appTools/ToolImage.py:274 +#: appTools/ToolImage.py:238 appTools/ToolImage.py:253 +#: appTools/ToolImage.py:266 appTools/ToolImage.py:279 msgid "Mask value" msgstr "Maskenwert" -#: appTools/ToolImage.py:235 +#: appTools/ToolImage.py:240 msgid "" "Mask for monochrome image.\n" "Takes values between [0 ... 255].\n" @@ -16098,7 +16106,7 @@ msgstr "" "0 bedeutet kein Detail und 255 bedeutet alles\n" "(das ist total schwarz)." -#: appTools/ToolImage.py:250 +#: appTools/ToolImage.py:255 msgid "" "Mask for RED color.\n" "Takes values between [0 ... 255].\n" @@ -16110,7 +16118,7 @@ msgstr "" "Legt fest, wie viel Details enthalten sind\n" "in der resultierenden Geometrie." -#: appTools/ToolImage.py:263 +#: appTools/ToolImage.py:268 msgid "" "Mask for GREEN color.\n" "Takes values between [0 ... 255].\n" @@ -16122,7 +16130,7 @@ msgstr "" "Legt fest, wie viel Details enthalten sind\n" "in der resultierenden Geometrie." -#: appTools/ToolImage.py:276 +#: appTools/ToolImage.py:281 msgid "" "Mask for BLUE color.\n" "Takes values between [0 ... 255].\n" @@ -16134,11 +16142,11 @@ msgstr "" "Legt fest, wie viel Details enthalten sind\n" "in der resultierenden Geometrie." -#: appTools/ToolImage.py:284 +#: appTools/ToolImage.py:289 msgid "Import image" msgstr "Bild importieren" -#: appTools/ToolImage.py:286 +#: appTools/ToolImage.py:291 msgid "Open a image of raster type and then import it in FlatCAM." msgstr "Öffnen Sie ein Bild vom Raster-Typ und importieren Sie es in FlatCAM." @@ -16437,15 +16445,15 @@ msgstr "" "Verwenden Sie in der Gerber-Funktion ein negatives Werkzeug\n" "Durchmesser oben." -#: appTools/ToolMilling.py:1256 +#: appTools/ToolMilling.py:1286 msgid "Generating drills milling geometry..." msgstr "Generieren von Bohrfräsgeometrie ..." -#: appTools/ToolMilling.py:1361 +#: appTools/ToolMilling.py:1391 msgid "Generating slot milling geometry..." msgstr "Schlitzfräsgeometrie erzeugen ..." -#: appTools/ToolMilling.py:1791 +#: appTools/ToolMilling.py:1821 #, fuzzy #| msgid "Create CNCJob with toolpaths for drilling or milling holes." msgid "" @@ -16454,13 +16462,13 @@ msgstr "" "Erstellen Sie einen CNCJob mit Werkzeugwegen zum Bohren oder Fräsen von " "Löchern." -#: appTools/ToolMilling.py:1819 +#: appTools/ToolMilling.py:1849 #, fuzzy #| msgid "Excellon object for drilling/milling operation." msgid "Object for milling operation." msgstr "Excellon-Objekt für Bohr- / Fräsarbeiten." -#: appTools/ToolMilling.py:1850 +#: appTools/ToolMilling.py:1880 #, fuzzy #| msgid "" #| "Tools in this Excellon object\n" @@ -16470,7 +16478,7 @@ msgstr "" "Werkzeuge in diesem Excellon-Objekt\n" "Wann werden zum Bohren verwendet." -#: appTools/ToolMilling.py:1928 +#: appTools/ToolMilling.py:1958 #, fuzzy #| msgid "" #| "The Tool Type (TT) can be:\n" @@ -16513,13 +16521,13 @@ msgstr "" "Wenn Sie den V-Form-Werkzeugtyp automatisch auswählen, wird der " "Operationstyp als Isolation ausgewählt." -#: appTools/ToolMilling.py:2095 +#: appTools/ToolMilling.py:2125 #, fuzzy #| msgid "Offset Z" msgid "Offset Type" msgstr "Versatz Z" -#: appTools/ToolMilling.py:2098 +#: appTools/ToolMilling.py:2128 #, fuzzy #| msgid "" #| "The value for the Offset can be:\n" @@ -16545,7 +16553,7 @@ msgstr "" "- Out (Seite) -> Der Werkzeugschnitt folgt der Geometrielinie an der " "Außenseite." -#: appTools/ToolMilling.py:2118 +#: appTools/ToolMilling.py:2148 #, fuzzy #| msgid "" #| "The value to offset the cut when \n" @@ -16563,7 +16571,7 @@ msgstr "" "Der Wert kann für \"außerhalb\" positiv sein\n" "Cut und Negativ für \"Inside\" Cut." -#: appTools/ToolMilling.py:2145 +#: appTools/ToolMilling.py:2175 msgid "" "- Isolation -> informative - lower Feedrate as it uses a milling bit with a " "fine tip.\n" @@ -16572,7 +16580,7 @@ msgid "" "- Polish -> adds a painting sequence over the whole area of the object" msgstr "" -#: appTools/ToolMilling.py:2543 +#: appTools/ToolMilling.py:2573 msgid "" "The preprocessor JSON file that dictates\n" "Gcode output for Geometry (Milling) Objects." @@ -16929,36 +16937,36 @@ msgstr "" "Dies ermöglicht die Bestimmung des richtigen Werkzeugs\n" "Verwendung zur Isolierung oder zum Löschen von Kupfer." -#: appTools/ToolPDF.py:91 appTools/ToolPDF.py:95 +#: appTools/ToolPDF.py:92 appTools/ToolPDF.py:96 msgid "Open PDF" msgstr "PDF öffnen" -#: appTools/ToolPDF.py:98 +#: appTools/ToolPDF.py:99 msgid "Open PDF cancelled" msgstr "PDF öffnen abgebrochen" -#: appTools/ToolPDF.py:123 +#: appTools/ToolPDF.py:128 msgid "Parsing ..." msgstr "Analyse ..." -#: appTools/ToolPDF.py:139 app_Main.py:10351 +#: appTools/ToolPDF.py:144 app_Main.py:10366 msgid "Failed to open" msgstr "Gescheitert zu öffnen" -#: appTools/ToolPDF.py:208 appTools/ToolPcbWizard.py:331 app_Main.py:10300 +#: appTools/ToolPDF.py:213 appTools/ToolPcbWizard.py:331 app_Main.py:10312 msgid "No geometry found in file" msgstr "Keine Geometrie in der Datei gefunden" -#: appTools/ToolPDF.py:211 appTools/ToolPDF.py:284 +#: appTools/ToolPDF.py:216 appTools/ToolPDF.py:289 #, python-format msgid "Rendering PDF layer #%d ..." msgstr "PDF-Ebene rendern #%d ..." -#: appTools/ToolPDF.py:215 appTools/ToolPDF.py:288 +#: appTools/ToolPDF.py:220 appTools/ToolPDF.py:293 msgid "Open PDF file failed." msgstr "Öffnen der PDF-Datei fehlgeschlagen." -#: appTools/ToolPDF.py:220 appTools/ToolPDF.py:293 +#: appTools/ToolPDF.py:225 appTools/ToolPDF.py:298 msgid "Rendered" msgstr "Gerendert" @@ -17306,7 +17314,7 @@ msgstr "PcbWizard-INF-Datei wurde geladen." msgid "Main PcbWizard Excellon file loaded." msgstr "Haupt-PcbWizard Excellon-Datei geladen." -#: appTools/ToolPcbWizard.py:310 app_Main.py:10280 +#: appTools/ToolPcbWizard.py:310 app_Main.py:10292 msgid "This is not Excellon file." msgstr "Dies ist keine Excellon-Datei." @@ -19039,7 +19047,7 @@ msgid "Set alpha level ..." msgstr "Alpha-Level einstellen ..." #: app_Main.py:8369 app_Main.py:8408 app_Main.py:8452 app_Main.py:8518 -#: app_Main.py:9259 app_Main.py:10521 app_Main.py:10583 +#: app_Main.py:9259 app_Main.py:10539 app_Main.py:10604 msgid "" "Canvas initialization started.\n" "Canvas initialization finished in" @@ -19234,51 +19242,51 @@ msgstr "Gerberdatei exportiert nach" msgid "DXF file exported to" msgstr "DXF-Datei exportiert nach" -#: app_Main.py:10134 app_Main.py:10189 +#: app_Main.py:10137 app_Main.py:10195 msgid "Import failed." msgstr "Import fehlgeschlagen." -#: app_Main.py:10219 app_Main.py:10410 app_Main.py:10475 +#: app_Main.py:10225 app_Main.py:10425 app_Main.py:10490 msgid "Failed to open file" msgstr "Datei konnte nicht geöffnet werden" -#: app_Main.py:10222 app_Main.py:10413 app_Main.py:10478 +#: app_Main.py:10228 app_Main.py:10428 app_Main.py:10493 msgid "Failed to parse file" msgstr "Datei konnte nicht analysiert werden" -#: app_Main.py:10234 +#: app_Main.py:10240 msgid "Object is not Gerber file or empty. Aborting object creation." msgstr "" "Objekt ist keine Gerberdatei oder leer. Objekterstellung wird abgebrochen." -#: app_Main.py:10239 app_Main.py:10303 app_Main.py:10363 app_Main.py:10437 -#: app_Main.py:10490 tclCommands/TclCommandOpenDXF.py:81 +#: app_Main.py:10248 app_Main.py:10315 app_Main.py:10378 app_Main.py:10452 +#: app_Main.py:10508 tclCommands/TclCommandOpenDXF.py:81 msgid "Opening ..." msgstr "Eröffnung ..." -#: app_Main.py:10250 +#: app_Main.py:10259 msgid "Open Gerber failed. Probable not a Gerber file." msgstr "Open Gerber ist fehlgeschlagen. Wahrscheinlich keine Gerber-Datei." -#: app_Main.py:10283 +#: app_Main.py:10295 msgid "Cannot open file" msgstr "Kann Datei nicht öffnen" -#: app_Main.py:10313 +#: app_Main.py:10325 msgid "Open Excellon file failed. Probable not an Excellon file." msgstr "" "Die Excellon-Datei konnte nicht geöffnet werden. Wahrscheinlich keine " "Excellon-Datei." -#: app_Main.py:10345 +#: app_Main.py:10360 msgid "Reading GCode file" msgstr "GCode-Datei wird gelesen" -#: app_Main.py:10358 +#: app_Main.py:10373 msgid "This is not GCODE" msgstr "Dies ist kein GCODE" -#: app_Main.py:10376 +#: app_Main.py:10391 msgid "" "Failed to create CNCJob Object. Probable not a GCode file. Try to load it " "from File menu.\n" @@ -19290,76 +19298,76 @@ msgstr "" "Der Versuch, ein FlatCAM CNCJob-Objekt aus einer G-Code-Datei zu erstellen, " "ist während der Verarbeitung fehlgeschlagen" -#: app_Main.py:10432 +#: app_Main.py:10447 msgid "Object is not HPGL2 file or empty. Aborting object creation." msgstr "" "Objekt ist keine HPGL2-Datei oder leer. Objekterstellung wird abgebrochen." -#: app_Main.py:10444 +#: app_Main.py:10459 msgid "Failed. Probable not a HPGL2 file." msgstr "Gescheitert. Wahrscheinlich keine HPGL2-Datei." -#: app_Main.py:10470 +#: app_Main.py:10485 msgid "TCL script file opened in Code Editor." msgstr "TCL-Skriptdatei im Code-Editor geöffnet." -#: app_Main.py:10501 +#: app_Main.py:10519 msgid "Failed to open TCL Script." msgstr "TCL-Skript konnte nicht geöffnet werden." -#: app_Main.py:10524 +#: app_Main.py:10542 msgid "Opening FlatCAM Config file." msgstr "Öffnen der FlatCAM Config-Datei." -#: app_Main.py:10551 +#: app_Main.py:10569 msgid "Failed to open config file" msgstr "Fehler beim Öffnen der Konfigurationsdatei" -#: app_Main.py:10580 +#: app_Main.py:10601 msgid "Loading Project ... Please Wait ..." msgstr "Projekt wird geladen ... Bitte warten ..." -#: app_Main.py:10586 +#: app_Main.py:10607 msgid "Opening FlatCAM Project file." msgstr "Öffnen der FlatCAM-Projektdatei." -#: app_Main.py:10601 app_Main.py:10605 app_Main.py:10623 +#: app_Main.py:10622 app_Main.py:10626 app_Main.py:10644 msgid "Failed to open project file" msgstr "Projektdatei konnte nicht geöffnet werden" -#: app_Main.py:10663 +#: app_Main.py:10684 msgid "Loading Project ... restoring" msgstr "Projekt wird geladen ... wird wiederhergestellt" -#: app_Main.py:10667 +#: app_Main.py:10688 msgid "Project loaded from" msgstr "Projekt geladen von" -#: app_Main.py:10699 +#: app_Main.py:10720 msgid "Saving Project ..." msgstr "Projekt Speichern ..." -#: app_Main.py:10721 app_Main.py:10757 +#: app_Main.py:10742 app_Main.py:10778 msgid "Project saved to" msgstr "Projekt gespeichert in" -#: app_Main.py:10728 +#: app_Main.py:10749 msgid "The object is used by another application." msgstr "Das Objekt wird von einer anderen Anwendung verwendet." -#: app_Main.py:10742 +#: app_Main.py:10763 msgid "Failed to verify project file" msgstr "Fehler beim Überprüfen der Projektdatei" -#: app_Main.py:10742 app_Main.py:10750 app_Main.py:10760 +#: app_Main.py:10763 app_Main.py:10771 app_Main.py:10781 msgid "Retry to save it." msgstr "Versuchen Sie erneut, es zu speichern." -#: app_Main.py:10750 app_Main.py:10760 +#: app_Main.py:10771 app_Main.py:10781 msgid "Failed to parse saved project file" msgstr "Fehler beim Parsen der Projektdatei" -#: app_Main.py:10796 +#: app_Main.py:10817 msgid "Save cancelled because source file is empty. Try to export the file." msgstr "" "Speichern abgebrochen, da die Quelldatei leer ist. Versuchen Sie, die Datei " diff --git a/locale/en/LC_MESSAGES/strings.mo b/locale/en/LC_MESSAGES/strings.mo index bfe2f8ec02d0096f620371966c6c2f0cf33dcffb..3b39ab661a2f0f761a7a10e87641b5a5e4ae6b52 100644 GIT binary patch delta 68067 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 delta 68010 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
    62Aq@JG>@IUnaEg?A=ntYFif)S)967g(!p@^> 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